Cron

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה אל: ניווט, חיפוש

cron הוא כלי המשמש לתזמון עבודות במערכות הפעלה דמויות יוניקס. הכלי משמש בדרך כלל לתזמן משימות, פקודות או תסריטים במרווחים או בתאריכים קבועים, ולכן הוא נפוץ במיוחד בתחזוקה ובניהול מערכות. השם cron מגיע מהמילה היוונית לזמן, χρόνος כרונוס.

היסטוריה[עריכת קוד מקור | עריכה]

cron נכתב על ידי בריאן קרניהן למערכת ההפעלה יוניקס גרסה 7 אשר ראתה אור בשנת 1979. המימוש בגרסה זו היה פשוט: קריאת קובץ ההגדרות, בדיקת התאמה של כל תבנית זמן, הפסקה למשך דקה וחוזר חלילה. ב-UNIX System V בשנת 1983 נוסף ל-cron התמיכה בריבוי משתמשים ומשימות יחודיות לכל משתמש. בגרסה זו ובגרסאות נוספות שונה המימוש והתווסף אלגוריתם יעיל יותר לתזמוני המשימות.

כחלק מפרוייקט גנו ולינוקס, נכתבו מספר גרסאות מודרניות של cron. המוכר מביניהם הוא זה של פול ויקסי שנכתב בשנת 1987. גרסה 3 של cron זה נכתבה בשנת 1993, ובגרסה 4.1 בשנת 2004 שונה הפרוייקט לשם ISC cron.

פעולה[עריכת קוד מקור | עריכה]

cron מבצע עבודות על פי קובץ crontab, קובץ תצורה המכיל פקודות מעטפת המופעלות על פי לוח זמנים נתון. משתמשים יכולים להיות בעלי קובץ crontab משלהם, ולעיתים קרובות קיים גם קובץ תצורה גלובאלי, בדרך כלל ב-/etc/crontab, אשר רק מנהלי מערכת יכולים לערוך. כל שורה בקובץ מייצגת עבודה, ומורכבת מביטוי CRON, ולאחריו פקודת מעטפת לביצוע. ברוב המימושים של cron, קיים גם שדה המציין את המשתמש שאיתו תרוץ העבודה, רק בקובץ הגלובאלי.

דוגמא[עריכת קוד מקור | עריכה]

השורה הבאה מריצה תסריט פרל בשם test.pl בכל שעתיים:

0 */2 * * *  /home/username/test.pl

הרשאות[עריכת קוד מקור | עריכה]

כאשר הקובץ /etc/cron.allow קיים במערכת, רק המשתמשים הכתובים בו יכולים להריץ עבודות ב-cron. כאשר הקובץ /etc/cron.deny קיים, משתמשים הכתובים בו אינם יכולים להריץ עבודות ב-cron.

תחביר[עריכת קוד מקור | עריכה]

ביטוי CRON הוא מחרוזת הכוללת חמישה או שישה שדות מופרדים על ידי רווחים, המייצגת אוסף של זמנים.‏[1]

שדה חובה ערכים מותרים תווים מותרים
דקות כן 0-59 * / , -
שעות כן 0-23 * / , -
יום בחודש כן 1-31 * / , - ? L W
חודש כן 1-12 או JAN-DEC * / , -
יום בשבוע כן 0-6 או SUN-SAT * / , - ? L #
שנה לא 1970–2099 * / , -

תזמונים מוגדרים מראש[עריכת קוד מקור | עריכה]

ניתן להחליף כמה ערכים מוגדרים מראש בביטויי CRON.

ביטוי תיאור זהה ל-
@yearly או @annually רץ פעם בשנה בבוקר ה-1 בינואר 0 0 1 1 *
@monthly רץ פעם בחודש בחצות הבוקר של היום הראשון בחודש 0 0 1 * *
@weekly רץ פעם בשבוע בחצות יום ראשון 0 0 * * 0
@daily רץ פעם ביום בחצות 0 0 * * *
@hourly רץ פעם בשעה בתחילתה 0 * * * *
@reboot רץ בהפעלת התוכנית -

קישורים חיצוניים[עריכת קוד מקור | עריכה]

הערות שוליים[עריכת קוד מקור | עריכה]