כמה טיפים מדליקים לשימוש בפקודה date

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

הפקודה date היא האולר השוויצרי של המרות תאריכים. היא תעזור לנו להשתתף בכנסים ואירועי תרבות מכל העולם (כי תמיד נוכל לזהות באיזה שעה הם מתקיימים בשעון המקומי שלנו) ולבצע חישובים עם זמנים בלי לעזוב את שורת הפקודה. הנה כמה מהשימושים שאני אוהב ל date:

1. מה השעה עכשיו באיטליה?

מי אמר שעון עולמי ולא קיבל? דייט יודעת להמיר את השעה לכל אזור זמן בעולם ובצורה פשוטה. אם אתם יודעים את קוד איזור הזמן שאתם צריכים פשוט תכתבו אותו לפני date בצורה הבאה:

TZ='Europe/Rome' date

ואם אתם לא יודעים תמיד אפשר להשתמש ב tzselect.

2. באיזה שעה לפי שעון ישראל יתקיים אירוע מסוים בזום?

בואו נניח שיש כנס בין לאומי גדול בדיוק על הטכנולוגיה שאתם אוהבים והוא יעבור בשידור חי ביוטיוב. הכנס יתקיים בניו יורק ביום שלישי ה 1/9 בשעה 18:00 בערב. אבל רקע, מתי זה בשעון ישראל? נו, מזל שיש date:

date --date='TZ="America/New_York" 2020-09-01 18:00'

והתוצאה:

Wed 02 Sep 2020 01:00:00 IDT

גדול - עכשיו אפשר לכוון את השעון.

3. התחלת גיבוי "בעוד עשר דקות"

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

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

echo run job=BackupClient1 when=\"$(date --date @$(( $(date +%s) + 600)) "+%F %T")\"| sudo bconsole

איך זה עובד?

הפקודה הראשונה date +%s מדפיסה את הזמן בשניות מאז ה 1/1/1970. אני מוסיף 600 לפלט שלה (כי 600 שניות זה עשר דקות) ומעביר את התוצאה בתור תאריך קלט ל date. בנוסף אני מבקש מ date להדפיס את התאריך בפורמט ש bconsole מבינה ואת כל זה מעביר לפרמטר when שקובע מתי להתחיל את הגיבוי.

החיבור בין הרצת פקודה בתוך שורת הפקודה ופעולות חשבון בתוך שורת הפקודה עוזר לבצע את החישוב בקלות.