لينكس timedatectl
يتيح لك الأمر ضبط الوقت والتاريخ والمنطقة الزمنية لساعة النظام والساعة الفعلية. خذ دقيقة وسنوضح لك كيفية عمل كل ذلك.
كل شيء نسبي
إن طريقة تعامل جهاز الكمبيوتر الخاص بك مع الوقت هي إحدى تلك الأشياء التي قد تتوقع أن تكون واضحة ومباشرة. على الأقل، حتى تبدأ في البحث عنها.
تحسب ساعة نظام Linux عدد الثواني منذ عصر Unix. كان ذلك في الساعة 00:00:00 في 1 يناير 1970، بتوقيت UTC. يشير UTC إلى التوقيت العالمي المنسق، ولكن يُقال عنه عادةً أنه توقيت عالمي منسق أو مجرد توقيت عالمي. هذا هو معيار الوقت الذي يدير به العالم الوقت وينظمه. تطبق المناطق الزمنية المختلفة إزاحة على UTC للحصول على وقتها المحلي. بعض المناطق الزمنية تسبق UTC والبعض الآخر متأخر عنه.
تعتمد ساعة النظام في أجهزة الكمبيوتر التي تعمل بنظام Linux على البرامج. ومن الواضح أنها لا تعمل عندما يكون الكمبيوتر متوقفًا عن التشغيل. وهناك ساعة أخرى، وهي ساعة الوقت الحقيقي التي تعتمد على البطارية، قادرة على العمل عندما يكون الكمبيوتر متوقفًا عن التشغيل. والغرض منها هو إخبار ساعة النظام بالوقت عند تشغيل Linux. ما لم يكن الوصول إلى خادم بروتوكول وقت الشبكة (NTP) ممكنًا.
خوادم NTP هي خوادم توفر معلومات دقيقة عن الوقت لأجهزة الكمبيوتر التي تطلبها. إذا قمت بتشغيل جهاز الكمبيوتر أو الكمبيوتر المحمول ولم يكن هناك اتصال بالإنترنت – أو لم يتم الاتصال به تم تكوينه لاستخدام خوادم NTP—يتم استخدام ساعة الوقت الحقيقي لتحضير ساعة النظام بدلاً من خادم NTP.
تكون ساعة النظام دائمًا بتوقيت UTC. أي تطبيق يحتاج إلى الحصول على الوقت المحلي يحتاج إلى:
- الوصول إلى ساعة النظام والحصول على UTC
- تعرف على المنطقة الزمنية التي تقع فيها وقم بتطبيق الإزاحة الصحيحة
- ضع في الاعتبار ما إذا كان التوقيت الصيفي ساري المفعول
يتم التحويل من التوقيت العالمي المنسق إلى التوقيت المحلي بواسطة التطبيق، وليس ساعة النظام. أو بشكل أكثر دقة، يتم التحويل بواسطة مكتبات الوقت والتاريخ التي يرتبط بها التطبيق. لهذا السبب من الضروري أن يعرف جهاز الكمبيوتر الخاص بك المنطقة الزمنية التي يقع فيها، وتوقيت التوقيت العالمي المنسق، وعدد الثواني التي مرت منذ عصر يونكس، وما إذا كان التوقيت الصيفي ساريًا.
في توزيعات Linux المستندة إلى systemd، نستخدم timedatectl
أمر لرؤية أو تغيير تلك الإعدادات والقيم.
البدء باستخدام timedatectl
لرؤية البيانات الحالية والوقت والقيم الأخرى، استخدم timedatectl
الأمر مع عامل الحالة.
timedatectl status
في الواقع، يمكنك إسقاط الحالة وسوف تحصل على نفس النتيجة.
timedatectl
تُظهر كلا المجموعتين من المخرجات:
- التوقيت المحلي:الوقت الذي يعتقده الكمبيوتر، وفقًا لمنطقته الزمنية.
- التوقيت العالمي:توقيت UTC.
- وقت RTC:الوقت الذي تستخدمه ساعة الوقت الحقيقي. عادةً ما يكون هذا هو التوقيت العالمي المنسق (UTC).
- المنطقة الزمنية:معلومات بخصوص المنطقة الزمنية المحددة.
- تمت مزامنة ساعة النظام:ما إذا كانت ساعة النظام متزامنة مع خادم NTP.
- خدمة NTP:ما إذا كانت خدمة NTP الخاصة بالكمبيوتر نشطة.
- RTC في TZ المحلية:ما إذا كانت الساعة في الوقت الحقيقي تستخدم الوقت المحلي بدلاً من UTC.
يمكنك رؤية عدد المناطق الزمنية timedatectl
يدعم الأمر عن طريق الكتابة:
timedatectl list-timezones | wc -l
هذا أكثر بكثير مما هو موجود المناطق الزمنية في العالمإذا قمنا بتوجيه الإخراج إلى grep
وتصفية الإدخالات الخاصة بـ “أمريكا” ووضعها في less
يمكننا التمرير خلال قائمة أكثر قابلية للإدارة.
timedatectl list-timezones | grep "America/" | less
عند مراجعة هذه القائمة، ستلاحظ أن كلمة “أمريكا” تحمل أوسع معنى ممكن. والشيء الثاني الذي ستلاحظه هو أن معظم الإدخالات ليست مناطق زمنية فعلية.
ضبط المنطقة الزمنية
إذا نظرت إلى القائمة غير المفلترة للمناطق الزمنية التي يدعمها timedatectl
سترى أماكن بالإضافة إلى مناطق زمنية. لتعيين منطقة زمنية، يمكنك تحديدها بالاسم مثل EST أو GMT، أو يمكنك اختيار موقع في نفس المنطقة الزمنية التي تعيش فيها، مثل لندن أو نيويورك.
إن إعادة ضبط منطقتك الزمنية ليست أمرًا ستفعله كثيرًا، ولكن ربما انتقلت إلى منزل جديد أو تعمل بعيدًا عن المنزل لفترة من الوقت وترغب في تحديد موقع الكمبيوتر المحمول. إذا كنت بحاجة إلى إعادة ضبط منطقتك الزمنية، فاختر موقعًا في المنطقة الزمنية التي تريد استخدامها.
سنضبط هذا الكمبيوتر على التوقيت الجبلي، وهو نفس المنطقة الزمنية لمدينة إدمونتون. وسنرى بعد ذلك كيف تغيرت الإعدادات.
timedatectl set-timezone "America/Edmonton"
timedatectl
لقد تغيرت منطقتنا الزمنية، وتغير وقتنا المحلي، وزاد انحرافنا عن توقيت UTC.
الضبط اليدوي للوقت والتاريخ
على الرغم من إمكانية ضبط الوقت والتاريخ يدويًا، إلا أنك لن تحتاج إلى ذلك عادةً. يُعد استخدام مزامنة الوقت وبروتوكول NTP الطريقة المفضلة للحفاظ على دقة الوقت والتاريخ على جهاز الكمبيوتر الخاص بك. إذا حاولت تغيير التاريخ أو الوقت على جهاز الكمبيوتر الخاص بك، فمن المحتمل أن تتلقى خطأً يخبرك بأن مزامنة الوقت قيد الاستخدام.
timedatectl set-time 10:30:00
استخدم هذا الأمر لإيقاف تشغيل خدمة مزامنة الوقت:
sudo systemctl stop systemd-timesyncd.service
يمكنك ضبط الوقت أو التاريخ أو كليهما باستخدام timedatectl
عامل ضبط الوقت. تكون التواريخ بترتيب السنة والشهر واليوم YYY-MM-DD، ويكون الوقت بترتيب الساعات والدقائق والثواني HH:MM:SS. سنقوم بتعيين الوقت والتاريخ باستخدام هذا الأمر:
timedatectl set-time "2022-01-30 10:30:00"
سوف نتحقق بعد ذلك من حدوث التغييرات باستخدام timedatectl
.
timedatectl
لقد تغير التاريخ والوقت. لاحظ أيضًا أن الكمبيوتر يستخدم توقيت UTC خاطئًا. كما تم إعلامنا أيضًا بعدم مزامنة ساعة النظام وأن خدمة NTP غير نشطة.
إذا كان لديك وصول إلى الإنترنت، فبمجرد استعادة خدمة مزامنة الوقت، سيتم استرداد الوقت وإعادة تعيين كافة التفاصيل بشكل صحيح.
sudo systemctl start systemd-timesyncd.service
timedatectl
RTC: UTC أو LTZ؟
من الممكن ضبط ساعة الوقت الفعلي لديك على توقيت منطقتك الزمنية المحلية بدلاً من توقيت UTC، وهو أمر ممكن، ولكن لا يُنصح به. إذا أجريت هذا التغيير، فسترى تحذيرًا بشأن التأثيرات الوخيمة التي قد يخلفها هذا على نظامك في المستقبل.
السبب وراء عرض هذه الطريقة هو أنك قد تواجه جهازًا يواجه مشكلات غريبة مع إعدادات الوقت. وهذه هي الطريقة التي يمكنك بها إعادة ضبط ساعة الوقت الفعلي إلى التوقيت العالمي المنسق (UTC).
أولاً، سنحتاج إلى ضبطه على المنطقة الزمنية المحلية.
timedatectl set-local-rtc 1
ثم سنسأل timedatectl
لمكانتها.
timedatectl
أعتقد أنهم أوضحوا مشاعرهم.
لاستعادة الساعة في الوقت الحقيقي إلى توقيت UTC، استخدم هذا الأمر:
timedatectl set-local-rtc 0
اضبطه وانسه
ما لم ترتكب خطأ أثناء تثبيت توزيع Linux الخاص بك، أو قمت بالانتقال، فعادةً لا يوجد سبب لتعديل إعدادات النظام والساعات في الوقت الفعلي.
اضبط ساعة النظام على منطقتك الزمنية، وساعة الوقت الحقيقي على UTC، وتأكد من أن نظامك يستطلع خادم بروتوكول وقت الشبكة. هذه هي الحالة الافتراضية بعد معظم عمليات التثبيت.
إذا تم ضبط كل شيء، فإن أنظمة الوقت في جهاز الكمبيوتر الخاص بك سوف تعتني بنفسها.