[novashare_inline_content]
בניהול מערכות לינוקס ובמיוחד שרתים, ייתכן שתידרש לבצע מספר מסוים של פעולות חשובות על בסיס יומי. עם זאת, כדי להקל על חייך, תוכל לתזמן משימות ב-Linux באמצעות הפקודהat
, כך שהם מבוצעים בדייקנות ובזמנים מאוד ספציפיים. הנה איך לעשות את זה.
ההזמנהat
בלינוקס קורא לדמוןatd
לתזמן משימות. חשוב לציין זאתפקודה זו מאפשרת תזמון יחיד של משימה, בניגודcron
מה שמאפשר לך לתזמן משימות חוזרות.
מתקיןat
החבילהat
מותקן כברירת מחדל ברוב מערכות לינוקס. עם זאת, אתה יכול לוודא על ידי בדיקת הגרסה שלו, עם שורת הקוד הבאה:
at -V
אם הקונסולה מציגה "פקודה לא נמצאה", עליך להתקין אותה ולאחר מכן להפעיל את השירות שלה.
sudo apt install at && sudo systemctl start atd
תחביר פקודהat
תחביר פקודהat
הוא פשוט יחסית. עליך לציין בפרמטרים את השעה והתאריך של ביצוע המשימה.
at [OPTION...] heure/date
כאשר אתה משתמש בפקודהat
כדי לתזמן משימה, המנהל פותח את המעטפת שלו שבה אתה מכניס את המשימות לביצוע. לאחר מכן, תוכל להתחיל בביצוע באמצעות קיצור המקלדתCtrl + D.
אתה יכול לציין משתני זמן באמצעות פורמטים מסוימים:
- שעה ספציפית ביום:אנחנו יכולים לציין את השעה בפורמט
HH:MM
. אם הזמן שצוין כבר חלף, המשימה מבוצעת למחרת באותו זמן - מחוון זמן:ישנן מילות מפתח מוכרות שניתן להשתמש בהן כדי להתייחס לזמן בתור
noon
(12:00),midnight
(00:00), אוteatime
(16:00) - ביום ספציפי:כדי לתזמן משימה ספציפית ליותר מ-24 שעות, עליך להוסיף תאריך בטופס
MMDDYY
,MM/DD/YY
, אוDD.MM.YY
. - תקופה מסוימת בעתיד הקרוב: אפשר לציין את התקופה עם מילות המפתח
now
, או השלט+
ואחריו התקופה.
אם תציין את השעה ללא התאריך, הפקודה תבדוק אם היא יכולה לפעול באותו יום (בזמן אימותה) בשעה שצוינה. אם הזמן כבר חלף, המשימה תפעל למחרת בשעה שצוינה.
תזמן משימה עם הפקודהבְּ-(עם דוגמאות)
אנו נראה לך כמה דוגמאות לביצוע משימה עם הפקודהat
על לינוקס. שימו לב שהפקודה אינה מציגה משוב מביצועה על המסך. עם זאת, תוכל לבקש ממנו לשלוח לך מייל באמצעות האפשרות-m
, לאחר הוצאתו להורג. האימייל נמצא בדרך כלל במקום/var/spool/mail/$USER
אוֹ$USER
מייצג את שם המשתמש שהתחיל במשימה.
דוגמה 1:בצע משימה ברגע המדויק עם משוב באימייל.
# at -m now at> echo "Execution commande at" at> <EOT>
אל תשכח ללחוץCtrl+D
כדי לאמת את המשימה שלך.
ניתן לגשת לתוכן האימייל מהיומנים באמצעות הפקודה הבאה (חותמת הזמן המוצגת נוגעת למייל):
$ tail -f -n 13 /var/spool/mail/$USER
דוגמה 2:הפעל משימה תוך x דקות או x שעות.
תחביר זה מאפשר לך לבצע משימה על ידי הוספת משך זמן בשעה T.
אפשר גם להריץ סקריפט (קובץ) עם הפקודה. עבור הדוגמה הבאה, כתבנו תסריטtache_cmd_at.sh
שתיצור תיקיה ואחריה תאריך ושעת היצירה. הנה התוכן של הסקריפט המוצג למטה עם הפקודהcat
.
לכן אפשר לקרוא את הפקודה שתתבצע מהקובץ באמצעות האפשרות-f
ולהפעיל אותו תוך 2 דקות.
$ at -m now +2min -f tache_cmd_at.sh
נוכל לראות את התוצאה על ידי רישום התיקיות עםls
.
לביצוע תוך 2 שעות במקום 2 דקות, הפקודה הופכת להיות הבאה:
$ at -m now +2 hours -f tache_cmd_at.sh
דוגמה 3:לבצע משימה בתאריך מסוים.
כדי לבצע משימה בתאריך מסוים, אתה יכול להשתמש בפורמט הצרפתיDD.MM.YY
. לדוגמה, עבור משימה שבוצעה ב-22/05/22 בשעה 7:30 בבוקר:
$ at 07:30 22.05.22 -f tache_cmd_at.sh
רשימת משימות מתוזמנות
תור מאחסן משימות המתוזמנות עם הפקודהat
. אפשר לרשום אותם עם ההזמנותatq
אוֹat -l
. התוצאה כוללת אלמנטים מסוימים:
- מספר המשרה המאפשר לזהות את המשימה
- תאריך ביצוע המשימה
- השעה המדויקת שבה המשימה בוצעה
- שם התור
- שם המשתמש שתכנן את המשימה
מחק משימות מתוזמנות
אפשר כמובן למחוק משימה מתוזמנת. לשם כך, תזדקק למספר הייחודי שלו כדי להשיג זאת. המחיקה מתבצעת עם הפקודהatrm
.
$ atrm 14
לאחר מכן תוכל להציג את רשימת המשימות כדי לבדוק אם המחיקה יעילה.
שתף את המאמר הזה
[novashare_inline_content]
האם מצאתם מאמר זה שימושי?
אתה יכול גם אותנושלח רעיון למאמראם החיפוש שלך שונה.