במדריך זה, נספק לך את המבוא הבסיסי של כל מה שאתה צריך להבין לתזמון עבודה עם cron. זה כולל תחביר בסיסי של cron, עריכת קובץ crontab, תזמון עבודה עם cron עם כמה דוגמאות, הצגת job cron וכו '.
יסודות קרון ג'וב
בואו להבין כמה יסודות של עבודת cron.
מהו קרונד?
קרונד הוא הדמון במערכת לינוקס שפועל ברקע ובודק כל דקה אם קיימת עבודה כלשהי בזמן זה. אם יש, הוא מבצע את התפקיד הזה, אחרת הוא נשאר לא פעיל.
תחביר Cron Job
התחביר לעבודה cron הוא כדלקמן:
* * * * *פקודה/תַסרִיט
משמאל:
- הראשון * מתאים לדקות (0-59)
- השני * מתאים לשעות (0-23)
- השלישי * מתאים ליום החודש (1-31)
- הרביעי * תואם את חודש השנה (1-12)
- החמישי * מתאים ליום השבוע (0-6, ראשון עד שבת)
כדי לציין מספר ערכים בשדה, השתמש בסמלי האופרטור הבאים:
- כוכבית (*): כדי לציין את כל הערכים האפשריים עבור שדה
- לזנק (-): ל ש ציין מגוון ערכים
- הפסיק (,): כדי לציין רשימת ערכים
- מפריד (/): כדי לציין ערך שלב
עריכת קובץ Crontab
Crontab הוא קובץ המכיל את העבודות המתוזמנות בתחביר ספציפי. ישנם שני סוגים של קבצי crontab; האחד עבור עבודות cron ספציפיות למערכת והשני עבור עבודות cron ספציפיות למשתמש.
עבודות מערכת cron
עבודות cron ברחבי המערכת ממוקמות ב /etc/crontab קובץ ו- /etc/cron.d ספרייה, והם עוברים דרך /etc/cron. לפי שעה , /etc/cron.daily , /etc/cron.weekly ו /etc/cron. מדי חודש. רק מנהל מערכת יכול לגשת לקבצים אלה.
מנהל מערכת יכול להגדיר עבודת cron באמצעות הפקודה הבאה:
$ננו /וכו/crontabלהלן תחביר המשרה ב /etc/crontab קוֹבֶץ:
פקודת שם משתמש של # דק 'שעה יום חודש חודש dayofweek* * * * *משתמש 1ifconfig
עבודות cron ספציפיות למשתמש
עבודות cron ספציפיות למשתמש ממוקמות ב- / var / spool / cron / crontabs מַדרִיך. למרות שניתן לערוך עבודות אלה באופן ידני, מומלץ לערוך עבודות אלה באמצעות הפקודה crontab -e.
משתמש רגיל יכול להגדיר עבודת cron באמצעות הפקודה הבאה:
$crontab-ולדוגמה, אם אתה מחובר כמשתמש בדיקה, הפעלת הפקודה crontab -e תערוך את קובץ crontab עבור משתמש הבדיקה. באופן דומה, אם אתה מחובר כמשתמש שורש, הפקודה crontab -e תערוך את קובץ crontab עבור משתמש השורש.
הנח את הפקודה שלהלן בטרמינל כדי לערוך את קובץ crontab עבור כל משתמש אחר:
$סודוcrontab-u <שם משתמש> -ולדוגמה, אם אתה מחובר כמשתמש test1 ורוצה לערוך את קובץ crontab עבור משתמש test2, הפקודה תהיה:
$סודוcrontab-utest2-ולהלן התחביר של עבודת cron שניתן להוסיף בקובץ crontab:
פקודה # m h יום יום חודש פעמיים בשבוע* * * * * ifconfig
אתה יכול לראות בעבודות ספציפיות למשתמש שאין שם משתמש רשום.
פקודות Crontab
הפקודה crontab משמשת לעריכה, רשימה והסרה של עבודות cron:
- crontab -e כדי לערוך את קובץ crontab של המשתמש הנוכחי
- crontab -l להצגת תוכן קובץ crontab
- crontab -u [שם משתמש] כדי לערוך קובץ crontab של כל משתמש אחר
- crontab -r כדי להסיר את קובץ crontab של המשתמש הנוכחי
- crontab -i כדי להציג הודעה לפני הסרת קובץ ה- crontab של המשתמש הנוכחי
קביעת עבודה עם קרון
עם Cron, אתה יכול להריץ עבודה בזמן, תאריך ומרווחים ספציפיים עם יחידה מינימלית בתוך דקות, כלומר, תוכל להריץ עבודה בכל דקה.
כדי לתזמן עבודה עם cron, פתח את קובץ crontab בשיטה שנדונה בסעיף הקודם. לאחר פתיחת קובץ crontab תתבקש לבחור עורך טקסט. הקלד מספר כדי לבחור את עורך הטקסט המועדף עליך. גלול מטה עד לתחתית הקובץ והוסף עבודות בתחביר שתואר לעיל. כל שורה בקובץ מציינת פקודה אחת. חמשת הערכים הראשונים בשורה מציינים את השעה המתוזמנת, והערך האחרון מציין איזו פקודה או סקריפט אמורים לפעול.
דוגמא:
השורה הבאה בקובץ crontab תתזמן את עבודת cron להפעלת הפקודה/סקריפט בכל דקה 30 במשך 5 שעות בכל יום בשבוע מיום שני עד שבת.
* /30 5 * * 1-6פקודה/תַסרִיט
דקות
בשדה זה אנו מציינים את הדקות שבהן אנו רוצים שהפקודה תבוצע. הוא מצוין מ- 0 עד 59. ה * בשדה זה פירושו להריץ את העבודה בכל דקה. בשורת crontab לעיל, ה- */30 אומר לעבודה cron להריץ את הפקודה/הסקריפט שצוין כל 30 דקות.
שעה (ות
בשדה זה אנו מציינים את השעות שבהן אנו רוצים שהפקודה תבוצע. הוא מצוין מ -0 עד 23. ה- * בתחום זה פירושו להריץ את העבודה כל שעה. בשורת crontab לעיל, הערך 5 אומר לעבודה cron להריץ את הפקודה/סקריפט שצוין כל חמש שעות.
יום בחודש
בשדה זה אנו מציינים את הימים הספציפיים של החודשים בהם אנו רוצים שהפקודה תבוצע. הוא מצוין מ -1 עד 31. ה * בתחום זה אומר כל יום. בשורת crontab למעלה, ה- * אומר לעבודה cron להפעיל את הפקודה/סקריפט שצוין מדי יום.
חודש בשנה
בשדה זה אנו מציינים את החודשים הספציפיים שבהם אנו רוצים שהפקודה תבוצע. הוא מצוין מ -1 עד 12. ה * בתחום זה פירושו כל חודש. בשורת crontab לעיל, ה- * אומר לעבודה cron להפעיל את הפקודה/סקריפט שצוין מדי חודש.
יום בשבוע
בשדה זה אנו מציינים את הימים מסוימים בשבוע בהם אנו רוצים שהפקודה תבוצע. הוא מצוין מ -0 עד 6 מיום ראשון עד שבת (0 ליום ראשון ו -6 לשבת). משמעות * בתחום זה היא כל יום בשבוע. בשורת crontab לעיל, ה- * אומר לעבודה cron להריץ את הפקודה/סקריפט שצוין כל יום בשבוע.
דוגמאות למשרות קרון
להלן מספר דוגמאות לעבודות cron:
הפעל עבודת cron כל 15 דקות
כדי לתזמן עבודת cron לרוץ כל 15 דקות, הוסף את השורה הבאה בקובץ crontab:
* /חֲמֵשׁ עֶשׂרֵה * * * *פקודה/תַסרִיטהפעל תפקיד cron בחמש בבוקר כל יום
כדי לתזמן עבודת cron לפעול בשעה 5 בבוקר מדי יום, הוסף את השורה הבאה בקובץ crontab:
0 5 * * *פקודה/תַסרִיטהפעל תפקיד cron בשעה 17:00 בכל יום
כדי לתזמן עבודת cron לפעול בשעה 17:00 בכל יום, הוסף את השורה הבאה בקובץ crontab:
0 17 * * *פקודה/תַסרִיטהפעל תפקיד cron בשעה 9 בבוקר ביום הראשון של כל חודש
כדי לתזמן עבודת cron לפעול בשעה 9 בבוקר ביום הראשון של כל חודש, הוסף את השורה הבאה בקובץ crontab:
0 9 1 * *פקודה/תַסרִיטהפעל עבודת cron כל שעה בכל 15 במרץ
כדי לתזמן עבודת cron בכל שעה בכל 15 במרץ, הוסף את השורה הבאה בקובץ crontab:
0 * חֲמֵשׁ עֶשׂרֵה 3 *פקודה/תַסרִיטהפעל עבודת cron כל 5 שעות
כדי לתזמן עבודת cron כל 5 שעות, הוסף את השורה הבאה בקובץ crontab:
0 * /5 * * *פקודה/תַסרִיטהפעל עבודת cron כל 15 דקות
כדי לתזמן עבודת cron לרוץ כל 15 דקות, הוסף את השורה הבאה בקובץ crontab:
* /חֲמֵשׁ עֶשׂרֵה * * * *שימוש בחוטים
ניתן להשתמש במחרוזות הבאות גם להגדרת עבודה:
- @לפי שעה: לבצע עבודה אחת לשעה, כלומר, 0 * * * *
- @חצות: לבצע עבודה פעם ביום, כלומר, 0 0 * * *
- @יום יומי: אותו דבר כמו חצות
- @שְׁבוּעִי: לבצע עבודה אחת לשבוע, כלומר, 0 0 * * 0
- @יַרחוֹן: לבצע עבודה אחת לחודש, כלומר, 0 0 1 * *
- @מדי שנה: לבצע עבודה אחת לשנה, כלומר, 0 0 1 1 *
- @שְׁנָתִי: אותו דבר כמו @מדי שנה
- @לְאַתחֵל: לבצע עבודה אחת בכל התחלה
לדוגמה, כדי להריץ סקריפט או פקודה מדי שבוע, הערך בקובץ crontab יהיה:
@פיקוד שבועי/תַסרִיטספריות Cron מוגדרות מראש
יש כמה ספריות cron שהוגדרו מראש ב- Linux שבהן הסקריפטים המאוחסנים מבוצעים אוטומטית. אם נציב סקריפט כלשהו מתחת לספריות אלה, הוא יבוצע אוטומטית בזמן שהוגדר.
- /etc/cron.daily
- /etc/cron. לפי שעה
- /etc/cron. מדי חודש
- /etc/cron.weekly
לדוגמה, כדי לבצע סקריפט אחת לחודש, יהיה עליך למקם אותו ב- /etc/cron.monthly.
צפה במשרות Cron
צפה בעבודות המשתמש הנוכחי
השתמש בפקודה הבאה כדי להציג את כל עבודות ה- cron המתוזמנות עבור המשתמש הנוכחי:
$crontab-ההצג עבודות עבור משתמשי השורש
כדי להציג את כל העבודות המתוזמנות של משתמש השורש, הנח את הפקודה הבאה במסוף:
$חתול /וכו/crontabיהיה עליך להתחבר כמשתמש שורש או להפעיל את הפקודה כ- sudo.
צפה בעבודות עבור שאר המשתמשים
כדי להציג את כל העבודות המתוזמנות של משתמש ספציפי, הנח את הפקודה הבאה במסוף והחליף את שם המשתמש בפועל:
$סודוcrontab-u <שם משתמש> -הכדי להפעיל פקודה זו, תזדקק להרשאות sudo.
צפה במשרות cron לפי שעה
כדי להציג את כל עבודות cron שהוגדרו לפעול מדי שעה, הנח את הפקודה הבאה במסוף:
$ls -ה /וכו/cron. לפי שעהצפה בעבודות cron יומיות
כדי להציג את כל עבודות cron המוגדרות להפעלה מדי יום, הנח את הפקודה הבאה במסוף:
$ls -ה /וכו/cron.daily/צפה בעבודות cron שבועיות
כדי להציג את כל עבודות cron שהוגדרו לפעול מדי שבוע, הנח את הפקודה הבאה במסוף:
$ls -ה /וכו/cron. שבועי/צפה בעבודות cron חודשיות
כדי להציג את כל עבודות cron המוגדרות להפעלה חודשית, הנח את הפקודה הבאה במסוף:
$ls -ה /וכו/cron. מדי חודש/גיבוי כל משרות Cron
מומלץ לשמור גיבוי של כל עבודות cron בקובץ, כך שתוכל לשחזר במקרה של מחיקה. כדי לבצע גיבוי של כל העבודות הנוכחיות, השתמש באופרטור ניתוב מחדש כדי להפנות את הפלט של crontab -l לקובץ.
$crontab-ה >backup_cron.txtהסרת כל משרות Cron המתוכננות
כדי להסיר את כל עבודות cron המתוזמנות, השתמש בדגל -r כדלקמן:
$crontab-rרשות קרון
אנו יכולים להגביל את הגישה לפקודת crontab באמצעות שני קבצים: / etc/cron.allow ו/etc/cron.deny.
- /etc/cron.allow - הוסף משתמשים (אחד לכל שורה) שברצונך לאפשר גישה לפקודות crontab. משתמשים אלה יכולים להריץ עבודות לוח זמנים.
- /etc/cron.deny - הוסף משתמשים (אחד לכל שורה) שברצונך למנוע גישה לפקודות crontab. משתמשים אלה אינם יכולים להריץ עבודות מתוזמנות.
מחוללי תחביר קרונטאב
ישנם כמה אתרים המאפשרים יצירת תחביר עבור קרונטאבס. אתרים אלה מקלים על יצירת ביטוי crontab מבלי לזכור את התחביר. למרות שישנם אתרים שונים הזמינים עבור מחוללי תחביר כגון crontabgenerator.com , crontab-generator.org , ו cronmaker.com . זה שאני בעיקר מעדיף ומצאתי מועיל הוא crontab.guru . בהתבסס על קלט המשתמש, הוא יוצר ביטוי crontab שתוכל להעתיק ולהדביק לקובץ crontab.
סיכום
במדריך זה הסברנו את היסודות של עבודות cron, התחביר שלה וכיצד להגדיר אותו. דנו גם כיצד ניתן לצפות בעבודות cron, ליצור גיבוי ולהסיר אותן אם אין עוד צורך בכך.