כיצד להשתמש SystemD טיימרים כתחליף Cron
בתור משתמש לינוקס אתה כנראה מכיר את cron. זה עבד כמו ללכת ל-יוניקס מבוסס זמן מתזמן עבודה במשך שנים רבות. עכשיו משתמשים רבים רואים טיימרים סיסטד מתחילים להחליף דומיננטיות של קרון.
מאמר זה ידון את היסודות של איך להגדיר טיימר שלך ולוודא שזה פועל כראוי על המערכת שלך.
קשורים : 4 חלופות Cron שימושי עבור לינוקס
הַתקָנָה?
אם אתה כבר משתמש ב- Systemd כמערכת init - הרבה הפצות פופולריות של Linux מפעילות אותו כברירת מחדל, כולל Arch, Debian, Fedora, Red Hat ו- Ubuntu - תראה טיימרים שכבר בשימוש. אין שום דבר אחר לעשות מאשר להשתמש בתכונה כבר מותקן.
רשימת טיימרים קיימים
הדרך הקלה ביותר שאתה יכול לבדוק שקיים טיימר במחשב שלך היא באמצעות הפקודה:
רשימת סיסטמלים - טיימרים
אתה לא צריך להפעיל את זה כמו שורש.
מערכת רשימת רשימה - טיימרים -
האפשרות --all
כאן מציגה גם טיימרים לא פעילים. אין כרגע טיימרים לא פעילים במערכת זו.
אתה צריך למצוא פלט דומה לתמונה הבאה:
אתה יכול לראות את התאריך והשעה כל טיימר יופעל, הספירה לאחור עד לנקודה זו, כמה זמן עבר מאז זה רץ האחרון, את שם היחידה של הטיימר עצמו, ואת השירות כל יחידת טיימר מופעל.
יש להתאים את כל הטיימרים לשירות תואם. בסעיף הבא תראה כיצד ליצור קובץ ".timer" המפעיל קובץ "service".
יצירת טיימר חדש
ניתן ליצור טיימר חדש על ידי הצבת קובץ .timer מותאם אישית ב- "/ etc / systemd / system /." בעת יצירת טיימר חדש עבור קובץ ה- DNS הדינמי DuckDNS שלי, סיימתי את הטקסט הבא:
[יחידה] תיאור = עדכון duckdns DNS דינמי [שעון עצר] OnCalendar = * - * - * 11:43:00 מתמיד = נכון [התקן] WantedBy = timers.target
1. [יחידה]
האפשרות "תיאור = ..." בקובץ תציג את השם / תיאור הטיימר עצמו. במקרה זה שלי "duckdns.timer" יעדכן את ה- DNS שלי על ידי אומר את הקובץ "duckdns.service" כדי להפעיל סדרה של פקודות.
אתה יכול לשנות את הניסוח אחרי "תיאור =" לומר מה שאתה רוצה.
2. [טיימר] סעיף
"OnCalendar = ..." כאן מראה דרך אחת לספר את הטיימר מתי להפעיל. *-*-*
מייצג "שנה-חודש יום, ואת כוכביות אומר שזה יפעל בכל יום של כל חודש של כל שנה מכאן ואילך. הזמן הבא הכוכביות מראה מה השעה של היום טיימר צריך לרוץ.
"מתמיד = נכון" רק אומר כי טיימר יפעל באופן אוטומטי אם הוא החמיץ את זמן ההתחלה הקודם. זה יכול לקרות כי המחשב היה כבוי לפני האירוע יכול להתרחש. אפשרות זו מומלצת אך מומלצת.
3. [התקנה]
לבסוף, "WantedBy = timers.target" מראה כי timers.target Systemd ישתמש בקובץ זה. Timer. שורה זו בקובץ מראה את שרשרת התלות מקובץ אחד לאחר. אתה לא צריך להשמיט או לשנות את הקו הזה.
אפשרויות אחרות
אתה יכול למצוא תכונות רבות אחרות על ידי סריקת דף האדם של Systemd עם man systemd.timer
. נווט אל הקטע "אפשרויות" כדי לגלות אפשרויות לדיוק, התמדה ורצף לאחר אתחול.
הפעלת טיימר
הפעל את כל טיימר שיצרת עם systemctl enable
ו systemctl start
התחביר.
מערכת sudo לאפשר duckdns.timer sudo systemctl להתחיל duckdns.timer
תסתכל שוב על systemctl list-timers
כדי לראות את הטיימר בפעולה.
אתה יכול לראות אם טיימר שלך רץ כצפוי על ידי בדיקת קובץ השירות המתאים עם systemctl status
. במקרה זה אתה יכול לראות כי טיימר שלי רץ בשעה 11:43:00 כמו שזה היה אמור.
סיכום
למרות שתוכניות רבות של צד שלישי, כולל DuckDNS, מגיעות עם סקריפטים המאפשרים להם לעדכן לפי הצורך, יצירת טיימרים ב- Systemd היא מיומנות מועילה לדעת. היצירה שלי של טיימר עבור DuckDNS כאן היה מיותר, אבל זה מראה איך סוגים אחרים של טיימרים SystemD יעבוד.
ידע זה יהיה מועיל, למשל, ליצירת והפעלה של סקריפטים משלך. אתה יכול אפילו להשתמש בו כדי לשנות טיימר קיים כדי להתאים טוב יותר את ההעדפות שלך. יתר על כן, זה תמיד טוב לדעת איך המחשב פועל, ומכיוון Systemd שולטת פונקציות בסיסיות רבות, זה חתיכה אחת של הפאזל יכול לעזור לך להבין טוב יותר את האופן שבו אירועים מופעלים מדי יום.
תודה שנסרת. בהצלחה עם יצירת טיימרים משלך.