הפעל עבודת קרון בכל דקה

Run Cron Job Every Minute



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

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







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

ישנם שימושים רבים אחרים של עבודות cron בלינוקס.



במאמר זה, אראה לך כיצד להריץ עבודות cron בכל דקה על לינוקס. אני אשתמש ב- Debian 9 Stretch להפגנה. אבל אתה יכול להשתמש בכל הפצת לינוקס מודרנית לבחירתך. בואו נתחיל.



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





כברירת מחדל, למשתמש אין crontab קובץ ב- Linux. אתה יכול ליצור א crontab קובץ עם הפקודה הבאה:

$crontab



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

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

תחביר הפעלת פקודה בכל דקה:

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

minute hour dayOfMonth month dayOfWeek commandToRun

פה,

  • דַקָה יכול להיות 0 ל 59 .
  • שָׁעָה יכול להיות גם 0 ל 59 .
  • יום בחודש יכול להיות 1 ל 31 .
  • חוֹדֶשׁ יכול להיות 1 ל 12 .
  • יום בשבוע יכול להיות 0 ל 7 . 0 ו 7 כלומר יום ראשון, 1 כלומר יום שני, 2 פירושו יום שלישי וכן הלאה.

כדי להריץ א commandToRun פקודה בכל דקה, עליך לכתוב זאת ב crontab קובץ כדלקמן:

* * * * *commandToRun

הפעלת עבודת Crob בכל דקה:

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

בתוך ה timer.sh סקריפט, יש לי רק את שורות הקודים הבאות. כל מה שהוא עושה זה ליצור קובץ חדש /home/shovon/bin/timer.log (אם הוא לא קיים כבר) ומוסיף לו את הפלט של פקודת התאריך.

כעת נוסיף את התסריט שלנו crontab ותן לזה לרוץ כל דקה עם השורה הבאה:

* * * * * /בית/shovon/אני/timer.sh

ברגע שאתה שומר את crontab קובץ ויציאה מעורך הטקסט, החדש crontab יש להתקין את הקובץ.

לאחר שחלפה דקה, יש קובץ חדש timer.log נוצר בספרייה הרצויה כפי שניתן לראות בחלק המסומן של צילום המסך למטה.

מ ה timer.log קובץ log, ברור שהתסריט timer.sh רץ כל דקה.

איתור שגיאות ממשרות Cron:

כדי לתפוס שגיאות ממשרת cron, תוכל לשלוח את השגיאות אל error.log קובץ ויציאות רגילות אל access.log קובץ למשל. כמובן שאתה יכול לתת שם לקבצים מה שאתה רוצה.

כדי להדגים זאת שיניתי את התסריט שלי timer.sh קצת. עכשיו השגיאות נשלחות אל error.log הקובץ ב / home / shovon / bin הספרייה והפלטים נשלחים אל access.log בתוך ה / home / shovon / bin מַדרִיך.

בהתחלה ה /tmp/i_must_be_here הקובץ אינו קיים, כך שאני מקבל את השגיאה ב- error.log קובץ כפי שאתה יכול לראות.

ה access.log הקובץ ריק כרגע.

עכשיו אני עומד ליצור את הקובץ /tmp/i_must_be_here

וכפי שאתה יכול לראות, הפלט נמצא ב- access.log קובץ עכשיו.

אם תרצה, תוכל לנתב את הפלט ואת השגיאות באותו קובץ כדלקמן:

כפי שאתה יכול לראות, יציאות STDIN ו- STDERR נשלחות אל out.log קוֹבֶץ.

לוודא שהמשימה האחרונה שסיימה לרוץ לפני שתריץ את העבודה שוב:

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

התסריט הפשוט הזה עושה בדיוק את זה.

כפי שאתה יכול לראות, טיימר.פיד הקובץ נוצר.

קריאת ה access.log קובץ מוכיח שעבודת cron אינה פועלת לפני שעבודת cron הקודמת מסיימת לפעול. כפי שאתה יכול לראות, הוא רץ בשעה 01:32:01 ובפעם הבאה הוא היה צריך לרוץ בשעה 01:33:01, אך הוא לא פעל. במקום זאת, הוא רץ בשעה 01:35:01, כשלוש דקות לאחר מכן.

ארגון פלט משרות Cron לניפוי באגים קל:

אתה יכול לעצב את הפלט בצורה יפה כדי שיהיה קל יותר לבצע איתור באגים בעבודת cron שלך.

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

כפי שאתה יכול לראות, הפלט, השגיאות והודעות ההצלחה מודפסות יפה בקובץ היומן.

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