עדכון שעון קיץ/חורף בלינוקס

הערה: היום בלילה עוברים לשעון קיץ ולכן אני מקפיץ את המאמר שכתבתי בנושא.

שעון קיץ וחורף בלינוקס:

כדי שלינוקס יעדכן שעון קיץ/חורף באופן אוטומטי יש לבצע את הפעולות הבאות:

תחילה יש לוודא שהמחשב נמצא באזור הזמן הנכון. ב- gnome יש ללחוץ על השעון ולבחור ב- "כוון תאריך ושעה". נקבל את המסך הבא:

tz01.png

יש לוודא שאנו מכוונים ל- Asia/Jerusalem. במידה ולא נלחץ על Timezone, נקבל את מפת כדור הארץ ונבחר בירושלים. כמובן שבמחשב המריץ לינוקס לא חייבת להיות סביבה גרפית כלשהי, ולכן יש לדעת כיצד לבדוק ולכוון את אזור הזמן ללא שימוש באפליקציה גרפית כלשהי. אחלק את ההסבר לשניים: שינוי אזור זמן למשתמש מסוים ושינוי אזור זמן לשרת עצמו.
שינוי אזור זמן למשתמש מסוים:
מקישים את הפקודה date ומקבלים את התשובה הבאה: Sat Sep 1 18:28:59 IDT 2007.
IDT מציין שאנו באזור זמן ישראל. במידה ואנו לא מוגדרים באזור הזמן הנכון, יש להקיש את הפקודה tzselect

ilan@etch:~$ tzselect
Please identify a location so that time zone rules can be set correctly.
Please select a continent or ocean.
1) Africa
2) Americas
3) Antarctica
4) Arctic Ocean
5) Asia
6) Atlantic Ocean
7) Australia
8) Europe
9) Indian Ocean
10) Pacific Ocean
11) none – I want to specify the time zone using the Posix TZ format.
#? 5
Please select a country.
1) Afghanistan           18) Israel                35) Palestine
2) Armenia               19) Japan                 36) Philippines
3) Azerbaijan            20) Jordan                37) Qatar
4) Bahrain               21) Kazakhstan            38) Russia
5) Bangladesh            22) Korea (North)         39) Saudi Arabia
6) Bhutan                23) Korea (South)         40) Singapore
7) Brunei                24) Kuwait                41) Sri Lanka
8) Cambodia              25) Kyrgyzstan            42) Syria
9) China                 26) Laos                  43) Taiwan
10) Cyprus                27) Lebanon               44) Tajikistan
11) East Timor            28) Macau                 45) Thailand
12) Georgia               29) Malaysia              46) Turkmenistan
13) Hong Kong             30) Mongolia              47) United Arab Emirates
14) India                 31) Myanmar (Burma)       48) Uzbekistan
15) Indonesia             32) Nepal                 49) Vietnam
16) Iran                  33) Oman                  50) Yemen
17) Iraq                  34) Pakistan
#? 18

The following information has been given:

Israel

Therefore TZ='Asia/Jerusalem' will be used.
Local time is now:      Fri Sep 14 18:19:01 IDT 2007.
Universal Time is now:  Fri Sep 14 15:19:01 UTC 2007.
Is the above information OK?
1) Yes
2) No
#? 1

You can make this change permanent for yourself by appending the line
TZ='Asia/Jerusalem'; export TZ
to the file '.profile' in your home directory; then log out and log in again.

Here is that TZ value again, this time on standard output so that you
can use the /usr/bin/tzselect command in shell scripts:
Asia/Jerusalem
ilan@etch:~$

 

הסבר:
בהתחלה בוחרים באופציה 5 (אסיה), אח"כ באופציה 18 (ישראל) ומאשרים. מקבלים תשובה שעברנו לאזור זמן: TZ='Asia/Jerusalem שזה אזור הזמן הרצוי לנו. אך השינוי שעשינו כרגע הוא שינוי זמני. כדי שהשינוי יהיה קבוע יש לערוך את הקובץ profile./~ ולהוסיף בסופו את הפקודה הבאה:

export TZ TZ='Asia/Jerusalem';

מאחר שלינוקס יכולה לשרת מאות משתמשים, הפרוסים באזורים גאוגרפיים שונים, ניתן לקבוע לכל משתמש את אזור הזמן המתאים לו.
שינוי אזור זמן לשרת:
מריצים את הפקודה: ls -l /etc/localtime. ניתן לראות שהקובץ מצביע על Asia/Jerusalem.

etch:/home/ilan# ls -l /etc/localtime
lrwxrwxrwx 1 root root 34 2007-09-14 18:34 /etc/localtime -> /usr/share/zoneinfo/Asia/Jerusalem


בספריה usr/share/zoneinfo/ מופיעים היבשות והמדינות השונות, ובמידה ורוצים לשנות את אזור הזמן לשרת יש לשנות את ערך המצביע של הקובץ etc/localtime/
דוגמא:
במידה והקובץ localtime לא מצביע על אזור הזמן הנכון (ירושלים) ניתן לתקן זאת ע"י עדכון הקישור הסימבולי כך:
ln -s /usr/share/zoneinfo/Asia/Jerusalem /etc/localtime

  • לאחר שקבענו את אזור הזמן הנכון כיצד אנו יודעים מתי יתחלף השעון משעון קיץ לשעון חורף ולהיפך?
    מריצים את הפקודה: zdump -v Asia/Jerusalem | grep 2007 ומקבלים את הפלט הבא:
    etch:/home/ilan# zdump -v Asia/Jerusalem | grep 2007
    Asia/Jerusalem  Thu Mar 29 23:59:59 2007 UTC = Fri Mar 30 01:59:59 2007 IST isdst=0 gmtoff=7200
    Asia/Jerusalem  Fri Mar 30 00:00:00 2007 UTC = Fri Mar 30 03:00:00 2007 IDT isdst=1 gmtoff=10800
    Asia/Jerusalem  Sat Sep 15 22:59:59 2007 UTC = Sun Sep 16 01:59:59 2007 IDT isdst=1 gmtoff=10800
    Asia/Jerusalem  Sat Sep 15 23:00:00 2007 UTC = Sun Sep 16 01:00:00 2007 IST isdst=0 gmtoff=7200
    etch:/home/ilan#


    הסבר:
    בשורה הראשונה רואים שעוברים משעון חורף (IST :Israel Standard Time) לשעון קיץ (IDT: Israel Daylight Time) ב: Fri Mar 30 01:59:59 2007. עד זמן זה אנו היינו ב- UTC-2 (יש לשים לב שהזחת הזמן נמדדת בשניות: 7200 מציין שעתיים), ולאחריו אנו עוברים (שורה שנייה) ל- UTC-3. בזמן הזזת השעון הזמן ב- UTC הוא: UTC = Fri Mar 30 03:00:00 2007 כשהזמן המקומי החדש הוא: Fri Mar 30 00:00:00 2007 . אופן דומה שורות 3- ו- 4 מתייחסות למעבר בין שעון קיץ לשעון חורף.

    [ratings]

  • My Signature
    הפוסט הזה פורסם בקטגוריה לינוקס ותוכנה חופשית, מחשבים.‏ קישור ישיר לפוסט.

    9 תגובות על עדכון שעון קיץ/חורף בלינוקס

    1. מאת oc666‏:

      למה יש הבדל בין זה:
      # zdump -v Asia/Jerusalem | grep 2007
      Asia/Jerusalem Thu Mar 29 23:59:59 2007 UTC = Fri Mar 30 01:59:59 2007 IST isdst=0
      Asia/Jerusalem Fri Mar 30 00:00:00 2007 UTC = Fri Mar 30 03:00:00 2007 IDT isdst=1
      Asia/Jerusalem Sat Sep 15 22:59:59 2007 UTC = Sun Sep 16 01:59:59 2007 IDT isdst=1
      Asia/Jerusalem Sat Sep 15 23:00:00 2007 UTC = Sun Sep 16 01:00:00 2007 IST isdst=0

      לבין זה:
      # zdump -v Israel | grep 2007
      Israel Thu Mar 29 23:59:59 2007 UTC = Fri Mar 30 01:59:59 2007 IST isdst=0
      Israel Fri Mar 30 00:00:00 2007 UTC = Fri Mar 30 03:00:00 2007 IDT isdst=1
      Israel Sat Sep 15 22:59:59 2007 UTC = Sun Sep 16 01:59:59 2007 IDT isdst=1
      Israel Sat Sep 15 23:00:00 2007 UTC = Sun Sep 16 01:00:00 2007 IST isdst=0

    2. מאת צפריר‏:

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

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

      בד"כ אין טעם לשנות את TZ . ואם כבר שיניתם את TZ, התוכן של ‎/etc/localtime חסר משמעות עבורכם.

    3. מאת צפריר‏:

      oc666: כל ההבדל הוא בשם של איזור הזמן. התוכן זהה.

    4. מאת ilanshavit‏:

      אין שום הבדל: ניתן להכניס את Israel במקום Asia/Jerusalem

    5. מאת ilanshavit‏:

      צפריר שלום:
      אכן ברמה של התחנה הבודדת יש צורך בבדיקת הפלט של הפקודה zdump בלבד, אך ניסיתי להקיף את הנושא ככל שניתן: בחלק הראשון אני מסביר כיצד לבדוק את אזור הזמן, תוך שימוש ב-gui. במידה ואזור הזמן תקין אין יותר מה לעשות. אך מה עושים אם לא מותקנת אפליקציה גרפית? משתמשים ב- zdump. אם הפלט של הפקודה לא נכון יש להשתמש ב- tzselect. אך כל מה שדובר עד עכשיו הוא ברמת המשתמש הבודד. יתכן שאתה מנהל (system administrator) שרת שנמצא בארה"ב שלו מאות משתמשים ברחבי העולם. יש צורך בבדיקת אזור הזמן של השרת (ברמת root) ויש צורך לדעת כיצד לעדכן למשתמשים את אזור הזמן שלהם. בקיצור: הנושא מבלבל כי יש לו היבטים שונים…

    6. פינגבק: תומר כהן - מחשבים ואינטרנט מנקודת מבט אישית » סליחה, מה השעה?

    7. מאת אורן‏:

      IST means "Israel *STANDARD* Time"
      Mamash lo kriti :)

    8. מאת ilanshavit‏:

      תודה אורן, תוקן.

    9. מאת ilanshavit‏:

      הסבר מקיף של ליאור קפלן לנושא:
      http://linmagazine.co.il/node/view/47514

    כתיבת תגובה

    האימייל שלך לא יוצג באתר. (*) שדות חובה מסומנים

    *

    תגי HTML מותרים: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>