אנדרואיד

תזמון עבודות של cron עם crontab

ª

ª

תוכן עניינים:

Anonim

Cron הוא דמון תזמון שמבצע משימות במרווחים מוגדרים. משימות אלה נקראות עבודות cron ומשמשות לרוב לאוטומציה של תחזוקת המערכת או ניהולן.

לדוגמה, אתה יכול להגדיר משימת cron לאוטומציה של משימות שחוזרות על עצמן כגון גיבוי מסדי נתונים או נתונים, עדכון המערכת באמצעות תיקוני האבטחה האחרונים, בדיקת השימוש בשטח הדיסק, שליחת דוא"ל וכן הלאה. יישומים מסוימים, כמו דרופל או מג'נטו, דורשים עבודות cron כדי לבצע משימות מסוימות.

ניתן לתזמן את עבודות ה- cron לפי דקה, שעה, יום בחודש, חודש, יום בשבוע או כל שילוב כזה.

מהו קובץ Crontab

Crontab (טבלת cron) הוא קובץ טקסט שמציין את לוח הזמנים של עבודות cron. ישנם שני סוגים של קבצי crontab. קבצי crontab ברחבי המערכת וקבצי crontab של משתמשים פרטניים.

קבצי crontab של משתמשים מאוחסנים לפי שם המשתמש, והמיקום שלהם משתנה לפי מערכות הפעלה. במערכת מבוססת Red Hat דוגמת CentOS, קבצי crontab מאוחסנים בספרייה /var/spool/cron ואילו בקבצי Debian ו- Ubuntu נשמרים בספרייה /var/spool/cron/crontabs .

למרות שאתה יכול לערוך את קבצי crontab באופן ידני, מומלץ להשתמש בפקודה crontab .

/etc/crontab והקבצים שנמצאים בספריית /etc/cron.d הם קבצי crontab בכל מערכת שניתן לערוך אותם רק על ידי מנהלי המערכת.

ברוב ההפצות לינוקס אתה יכול גם להכניס סקריפטים לספריות /etc/cron.{hourly, daily, weekly, monthly} , /etc/cron.{hourly, daily, weekly, monthly} , /etc/cron.{hourly, daily, weekly, monthly} , /etc/cron.{hourly, daily, weekly, monthly} יבוצעו כל hour/day/week/month .

תחביר ומפעילים של Crontab

כל שורה בקובץ crontab של המשתמש מכילה שישה שדות המופרדים על ידי רווח ואחריו הפקודה להפעלה.

* * * * * command(s) - - - - - | | | | | | | | | ----- Day of week (0 - 7) (Sunday=0 or 7) | | | ------- Month (1 - 12) | | --------- Day of month (1 - 31) | ----------- Hour (0 - 23) ------------- Minute (0 - 59)

חמשת השדות הראשונים עשויים להכיל ערך אחד או יותר, מופרדים על ידי פסיק או טווח של ערכים המופרדים על ידי מקף.

  • * מפעיל הכוכבית פירושו כל ערך או תמיד. אם יש לך את סמל הכוכבית בשדה שעה, פירוש הדבר שהמשימה תבוצע בכל שעה. , מפעיל הפסיק מאפשר לך לציין רשימת ערכים לחזרה. לדוגמה, אם יש לך 1, 3, 5 בשדה שעה המשימה תפעל בשעה 01:00, 03:00 וחמש בבוקר. - מפעיל המקף מאפשר לך לציין טווח ערכים. אם יש לך 1-5 בשדה יום השבוע, המשימה תפעל בכל יום חול (מיום שני עד שישי). / -מפעיל הסלאש מאפשר לך לציין ערכים שיחזרו על עצמם לאורך מרווח מסוים ביניהם. לדוגמה, אם יש לך */4 בשדה שעה, פירוש הדבר שהפעולה תבוצע כל ארבע שעות. זהה לציון 0, 4, 8, 12, 16, 20 . במקום כוכבית לפני מפעיל הקרע, תוכלו להשתמש גם בטווח של ערכים, 1-30/10 פירושם זהה ל 1, 11, 21 .

קבצי Crontab כוללים מערכת

התחביר של קבצי crontab ברחבי המערכת שונה במעט מ- crontabs של משתמשים. הוא מכיל שדה משתמש חובה נוסף שמציין איזה משתמש ינהל את עבודת ה- cron.

* * * * * command(s) * * * * * command(s)

קבצי מאקרו מוגדרים מראש

ישנן מספר פקודות מאקרו מיוחדות של לוח זמנים של Cron המשמשות לציון מרווחים נפוצים. אתה יכול להשתמש בקיצורי דרך במקום מפרט התאריך בן חמש העמודות.

  • @yearly (או @annually ) - הפעל את המשימה שצוינה פעם בשנה בחצות (12:00 בבוקר) של ה- 1 לינואר. שווה ל- 0 0 1 1 * . @monthly - הפעל את המשימה שצוינה פעם בחודש בחצות ביום הראשון של החודש. שווה ל- 0 0 1 * * . @weekly - הפעל את המשימה שצוינה פעם בשבוע בחצות ביום ראשון. שווה ל- 0 0 * * 0 . @daily - הפעל את המשימה שצוינה פעם ביום בחצות. שווה ל 0 0 * * * . @hourly - הפעל את המשימה שצוינה פעם בשעה בתחילת השעה. שווה ל 0 * * * * . @reboot - הרץ את המשימה שצוינה בעת הפעלת המערכת (זמן האתחול).

פיקוד Crontab של לינוקס

הפקודה crontab מאפשרת להתקין או לפתוח קובץ crontab לעריכה.

אתה יכול להשתמש בפקודת crontab כדי להציג, להוסיף, להסיר או לשנות עבודות cron באמצעות האפשרויות הבאות:

  • crontab -e - ערוך קובץ crontab, או צור קובץ אם הוא כבר לא קיים. crontab -l - הצגת תוכן קובץ crontab. crontab -r - הסר את קובץ ה- crontab הנוכחי שלך. crontab -i - הסר את קובץ ה- crontab הנוכחי שלך במהירות לפני ההסרה. crontab -u - ערוך קובץ crontab לשימוש אחר. נדרש הרשאות מנהל מערכת.

הפקודה crontab פותחת את קובץ crontab באמצעות העורך שצוין על ידי משתני הסביבה VISUAL או EDITOR .

משתני Crontab

הדמון של cron קובע אוטומטית מספר משתני סביבה.

  • נתיב ברירת המחדל מוגדר PATH=/usr/bin:/bin . אם הפקודה שאתה מתקשר נמצאת בנתיב שצוין cron, אתה יכול להשתמש בנתיב המוחלט לפקודה או לשנות את המשתנה cron $PATH . אינך יכול להוסיף באופן מרומז :$PATH כפי שתעשה עם סקריפט רגיל. פגז ברירת המחדל מוגדר /bin/sh . ניתן להגדיר מעטפת שונה על ידי שינוי משתנה ה- SHELL קורא לפקודה מתוך ספריית הבית של המשתמש. ניתן לבטל את המשתנה HOME על ידי הגדרות ב- crontab. הודעת הדוא"ל נשלחת לבעלים של crontab. כדי להחליף את התנהגות ברירת המחדל, אתה יכול להשתמש במשתנה הסביבתי MAILTO עם רשימה (מופרדת בפסיקים) של כל כתובות הדוא"ל שברצונך לקבל את הודעות הדוא"ל. אם MAILTO מוגדר אך ריק ( MAILTO="" ), לא נשלח דואר.

הגבלות Crontab

מנהלי מערכת יכולים לקבוע לאילו משתמשים יש גישה לפקודת crontab באמצעות קבצי /etc/cron.allow ו- /etc/cron.allow . הקבצים מורכבים מרשימה של שמות משתמש, שם משתמש אחד בכל שורה.

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

אם הקובץ /etc/cron.allow קיים, רק המשתמשים הרשומים בקובץ זה יכולים להשתמש בפקודת crontab .

אם אף אחד מהקבצים לא קיים, רק המשתמשים עם הרשאות הניהול יכולים להשתמש בפקודה crontab .

דוגמאות של Cron Jobs

להלן כמה דוגמאות לעבודות cron אשר יראו לך כיצד לתזמן משימה להפעלת תקופות זמן שונות.

  • הפעל פקודה בשעה 15:00 בכל יום מיום שני עד שישי:

    0 15 * * 1-5 command

    הפעל סקריפט כל 5 דקות והפנה מחדש את הפלט הסטנדרטי ל- dev null , רק השגיאה הסטנדרטית תישלח לכתובת הדואר האלקטרוני שצוינה:

    [email protected] */5 * * * * /path/to/script.sh > /dev/null

    הפעל שתי פקודות בכל יום שני בשעה 15:00 (השתמש במפעיל && בין הפקודות):

    0 15 * * Mon command1 && command2

    הפעל סקריפט PHP כל 2 דקות וכתוב את הפלט לקובץ:

    */2 * * * * /usr/bin/php /path/to/script.php >> /var/log/script.log

    הפעל תסריט כל יום, כל שעה, בשעה, משמונה בבוקר עד ארבע אחר הצהריים:

    00 08-16 * * * /path/to/script.sh

    הפעל תסריט ביום שני הראשון של כל חודש, בשעה 7 בבוקר

    0 7 1-7 * 1 /path/to/script.sh

    הפעל את התסריט בשעה 21:15 בערב, ב -1 ו -15 בכל חודש:

    15 9 1, 15 * * /path/to/script.sh

    הגדר משתני HOME , PATH , SHELL ו- MAILTO מותאמים אישית והפעל פקודה בכל דקה.

    HOME=/opt PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin SHELL=/usr/bin/zsh [email protected] */1 * * * * command

סיכום

למדת כיצד ליצור עבודות cron ולתזמן משימות בתאריך ובשעה מסוימים.

אל תהסס להשאיר תגובה אם יש לך שאלות.

מסוף cron cron