משרות Cron: הדרכה מלאה למתחילים

Cron Jobs Complete Beginners Tutorial



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

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







יסודות קרון ג'וב

בואו להבין כמה יסודות של עבודת cron.



מהו קרונד?

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



תחביר Cron Job

התחביר לעבודה cron הוא כדלקמן:





* * * * *פקודה/תַסרִיט

משמאל:

  • הראשון * מתאים לדקות (0-59)
  • השני * מתאים לשעות (0-23)
  • השלישי * מתאים ליום החודש (1-31)
  • הרביעי * תואם את חודש השנה (1-12)
  • החמישי * מתאים ליום השבוע (0-6, ראשון עד שבת)

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



  1. כוכבית (*): כדי לציין את כל הערכים האפשריים עבור שדה
  2. לזנק (-): ל ש ציין מגוון ערכים
  3. הפסיק (,): כדי לציין רשימת ערכים
  4. מפריד (/): כדי לציין ערך שלב

עריכת קובץ 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:

* /חֲמֵשׁ עֶשׂרֵה * * * *

שימוש בחוטים

ניתן להשתמש במחרוזות הבאות גם להגדרת עבודה:

  1. @לפי שעה: לבצע עבודה אחת לשעה, כלומר, 0 * * * *
  2. @חצות: לבצע עבודה פעם ביום, כלומר, 0 0 * * *
  3. @יום יומי: אותו דבר כמו חצות
  4. @שְׁבוּעִי: לבצע עבודה אחת לשבוע, כלומר, 0 0 * * 0
  5. @יַרחוֹן: לבצע עבודה אחת לחודש, כלומר, 0 0 1 * *
  6. @מדי שנה: לבצע עבודה אחת לשנה, כלומר, 0 0 1 1 *
  7. @שְׁנָתִי: אותו דבר כמו @מדי שנה
  8. @לְאַתחֵל: לבצע עבודה אחת בכל התחלה

לדוגמה, כדי להריץ סקריפט או פקודה מדי שבוע, הערך בקובץ 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, ליצור גיבוי ולהסיר אותן אם אין עוד צורך בכך.