كيفية استخدام الأمر timedatectl على نظام Linux

نشرت: 2022-06-16
تتكدس عدة ساعات حائط معًا ، وتظهر جميعها أوقاتًا مختلفة.
POR666 / Shutterstock.com

يتيح لك أمر Linux timedatectl ضبط الوقت والتاريخ والمنطقة الزمنية لساعة نظامك وساعتك في الوقت الفعلي. اترك لحظة ، وسنريك كيف يعمل كل شيء.

انها كلها مرتبطة

تعتبر معالجة الكمبيوتر للوقت أحد تلك الأشياء التي قد تتوقع أن تكون واضحة ومباشرة. على الأقل ، حتى تبدأ في النظر فيه.

ما هي حقبة يونكس ، وكيف يعمل وقت يونكس؟
ذات صلة ما هي حقبة يونكس ، وكيف يعمل وقت يونكس؟

تحسب ساعة نظام Linux عدد الثواني منذ عهد Unix. كان ذلك في تمام الساعة 00:00:00 يوم 1 يناير 1970 ، بالتوقيت العالمي المنسق. يشير التوقيت العالمي المنسق (UTC) إلى تنسيق التوقيت العالمي ، ولكن يُقال عادةً أنه التوقيت العالمي المنسق أو التوقيت العالمي فقط. هذا هو المعيار الزمني الذي من خلاله يدير العالم الوقت وينظمه. تطبق المناطق الزمنية المختلفة إزاحة على التوقيت العالمي المنسق (UTC) للحصول على التوقيت المحلي. بعض المناطق الزمنية تسبق التوقيت العالمي المنسق (UTC) والبعض الآخر خلفه.

ساعة النظام في أجهزة كمبيوتر Linux تعتمد على البرامج. من الواضح أنه لا يمكن تشغيله عند إيقاف تشغيل الكمبيوتر. يمكن تشغيل ساعة أخرى ، وهي ساعة في الوقت الحقيقي قائمة على الأجهزة ومدعومة بالبطارية ، عند إيقاف تشغيل الكمبيوتر. والغرض منه هو إخبار ساعة النظام بالوقت الذي يتم فيه تشغيل Linux. ما لم يكن الوصول إلى خادم بروتوكول وقت الشبكة (NTP) ممكنًا.

خوادم NTP هي خوادم توفر معلومات دقيقة عن الوقت لأجهزة الكمبيوتر التي تطلبها. إذا قمت بتشغيل جهاز الكمبيوتر أو الكمبيوتر المحمول الخاص بك ولم يكن هناك اتصال بالإنترنت - أو لم يتم تكوينه لاستخدام خوادم NTP - يتم استخدام ساعة الوقت الحقيقي لتشغيل ساعة النظام بدلاً من خادم NTP.

الإعلانات

تكون ساعة النظام دائمًا بالتوقيت العالمي المنسق (UTC). يحتاج أي تطبيق يحتاج إلى معرفة التوقيت المحلي إلى:

  • الوصول إلى ساعة النظام والحصول على التوقيت العالمي المنسق (UTC)
  • تعرف على المنطقة الزمنية الموجودة فيها وقم بتطبيق الإزاحة الصحيحة
  • ضع في الاعتبار ما إذا كان التوقيت الصيفي ساري المفعول

التحويل من التوقيت العالمي المنسق إلى التوقيت المحلي يتم بواسطة التطبيق ، وليس ساعة النظام. أو ، بشكل أكثر دقة ، يتم إجراء التحويل حسب مكتبات الوقت والتاريخ التي يرتبط بها التطبيق. هذا هو السبب في أنه من الضروري أن يعرف الكمبيوتر الخاص بك المنطقة الزمنية ، ووقت UTC ، وعدد الثواني التي مرت منذ حقبة Unix ، وما إذا كان التوقيت الصيفي ساريًا أم لا.

لماذا لا يزال نظام لينكس مثيرًا للانقسام بعد كل هذه السنوات
ذات صلة لماذا لا يزال نظام لينكس مثيرًا للانقسام بعد كل هذه السنوات

في توزيعات Linux المستندة إلى systemd ، نستخدم الأمر timedatectl لرؤية هذه الإعدادات والقيم أو تغييرها.

الشروع في العمل مع timedatectl

لمعرفة البيانات الحالية والوقت والقيم الأخرى ، استخدم الأمر timedatectl مع عامل status .

 حالة timedatectl 

الإخراج من الأمر timedatectl باستخدام عامل الحالة

في الواقع ، يمكنك إسقاط الحالة وستظل تحصل على نفس النتيجة.

 تيميداتكتل 

الإخراج من الأمر timedatectl بدون عامل

تظهر كلا مجموعتي الإخراج:

  • التوقيت المحلي : الوقت الذي يعتقد الكمبيوتر أنه هو وفقًا لمنطقته الزمنية.
  • التوقيت العالمي: التوقيت العالمي المنسق (UTC).
  • وقت RTC : الوقت الذي تستخدمه ساعة الوقت الحقيقي. عادةً ما يكون هذا هو التوقيت العالمي المنسق (UTC).
  • المنطقة الزمنية : معلومات تتعلق بالمنطقة الزمنية التي تم تكوينها.
  • مزامنة ساعة النظام : ما إذا كانت ساعة النظام متزامنة مع خادم NTP.
  • خدمة NTP : ما إذا كانت خدمة NTP للكمبيوتر نشطة.
  • RTC بالتوقيت المحلي TZ : ما إذا كانت ساعة الوقت الفعلي تستخدم التوقيت المحلي بدلاً من التوقيت العالمي المنسق (UTC).

يمكنك معرفة عدد المناطق الزمنية التي يدعمها الأمر timedatectl عن طريق كتابة:

 timedatectl قائمة المناطق الزمنية | مرحاض -l 

حساب المناطق الزمنية الزمنية

الإعلانات

هذا أكثر بكثير من المناطق الزمنية في العالم. إذا قمنا بتوجيه الإخراج إلى grep وتصفية إدخالات "America" ​​وتوجيهها إلى less ، فيمكننا التمرير عبر قائمة أكثر قابلية للإدارة.

 timedatectl قائمة المناطق الزمنية | grep "أمريكا /" | أقل 

تصفية المناطق الزمنية الأمريكية باستخدام grep

أثناء قيامك بمراجعة هذه القائمة ، سترى أن "أمريكا" مأخوذة على أنها تحمل أوسع معانيها الممكنة. الشيء الثاني الذي ستلاحظه هو أن معظم الإدخالات ليست مناطق زمنية فعلية.

قائمة المناطق الزمنية "الأمريكية" في أقل

ضبط المنطقة الزمنية

إذا قمت بالاطلاع على قائمة المناطق الزمنية غير المفلترة التي يدعمها timedatectl ، فسترى الأماكن وكذلك المناطق الزمنية. لتعيين منطقة زمنية ، يمكنك تحديدها بالاسم مثل EST أو GMT ، أو يمكنك اختيار موقع في نفس المنطقة الزمنية مثلك ، مثل لندن أو نيويورك.

إعادة تعيين منطقتك الزمنية ليس شيئًا ستفعله كثيرًا ، ولكن ربما تكون قد انتقلت إلى المنزل أو كنت تعمل بعيدًا لفترة من الوقت وتريد توطين الكمبيوتر المحمول الخاص بك. إذا كنت بحاجة إلى إعادة تعيين منطقتك الزمنية ، فاختر موقعًا في المنطقة الزمنية التي تريد استخدامها.

سنقوم بتعيين هذا الكمبيوتر على التوقيت الجبلي ، وهو نفس المنطقة الزمنية مثل إدمونتون. سنرى بعد ذلك كيف تغيرت الإعدادات.

 timedatectl set-timezone "America / Edmonton"
 تيميداتكتل 

إعدادات المنطقة الزمنية والوقت الجديدة

لقد تم تغيير منطقتنا الزمنية ، وتغير التوقيت المحلي لدينا ، وزادت موازنتنا عن التوقيت العالمي المنسق (UTC).

ذات صلة: كيفية استخدام الأنابيب على نظام Linux

ضبط الوقت والتاريخ يدويًا

على الرغم من إمكانية ضبط الوقت والتاريخ يدويًا ، فلن تحتاج إلى ذلك عادةً. يعد استخدام مزامنة الوقت و NTP الطريقة المفضلة للحفاظ على دقة وقت الكمبيوتر وتاريخه. إذا حاولت تغيير تاريخ أو وقت جهاز الكمبيوتر الخاص بك ، فمن المحتمل أن تحصل على خطأ ، يخبرك أن مزامنة الوقت قيد الاستخدام.

 ضبط الوقت 10:30:00 

رسالة خطأ لأن مزامنة الوقت سارية

الإعلانات

استخدم هذا الأمر لإيقاف تشغيل خدمة مزامنة الوقت:

 sudo systemctl توقف systemd-timesyncd.service

يمكنك ضبط الوقت أو التاريخ أو كليهما باستخدام عامل ضبط الوقت timedatectl . التواريخ بالترتيب العام-الشهر-اليوم YYY-MM-DD ، والوقت بالساعات-الدقائق-الثواني الترتيب HH: MM: SS. سنقوم بتعيين الوقت والتاريخ باستخدام هذا الأمر:

 ضبط الوقت timedatectl "2022-01-30 10:30:00"

سوف نتحقق بعد ذلك من حدوث التغييرات ، باستخدام timedatectl .

 تيميداتكتل 

ضبط الوقت والتاريخ يدويًا

لقد تغير التاريخ والوقت. لاحظ أيضًا أن الكمبيوتر يستخدم وقت UTC خاطئ. تم إبلاغنا أيضًا أن ساعة النظام لا تتم مزامنتها وأن خدمة NTP غير نشطة.

إذا كان لديك اتصال بالإنترنت ، فبمجرد استعادة خدمة مزامنة الوقت ، يتم استرداد الوقت وإعادة تعيين جميع التفاصيل بشكل صحيح.

 يبدأ نظام sudo systemctl systemd-timesyncd.service
 تيميداتكتل 

إعادة تشغيل خدمة NTP واستعادة قيم الوقت الصحيحة

RTC: UTC أو LTZ؟

من الممكن ضبط ساعة الوقت الفعلي على توقيت منطقتك الزمنية المحلية بدلاً من التوقيت العالمي المنسق (UTC) —هذا ممكن ، لكن غير مستحسن. إذا قمت بإجراء التغيير ، فسترى تحذيرًا بشأن الآثار الرهيبة التي قد تحدث على نظامك في المستقبل.

الإعلانات

السبب في إظهار هذه الطريقة لك هو أنك قد تصادف جهازًا يواجهون فيه مشكلات غريبة في إعدادات الوقت. هذه هي طريقة ضبط ساعة الوقت الحقيقي على التوقيت العالمي المنسق (UTC).

أولاً ، سنحتاج إلى ضبطه على المنطقة الزمنية المحلية.

 مجموعة timedatectl المحلية- rtc 1

ثم سنطلب timedatectl عن حالتها.

 تيميداتكتل 

ضبط ساعة الوقت الفعلي على المنطقة الزمنية المحلية والتحذير المصاحب لها

أعتقد أنهم أوضحوا مشاعرهم.

لاستعادة ساعة الوقت الحقيقي إلى التوقيت العالمي المنسق ، استخدم هذا الأمر:

 مجموعة timedatectl المحلية- rtc 0

اضبطها واتركها

ما لم تكن قد ارتكبت خطأ أثناء تثبيت توزيعة Linux الخاصة بك ، أو إذا انتقلت إلى مكان آخر ، فعادة ما لا يوجد سبب لتعديل إعدادات نظامك والساعات في الوقت الفعلي.

الإعلانات

اضبط ساعة النظام على منطقتك الزمنية ، وساعة الوقت الفعلي على التوقيت العالمي المنسق (UTC) ، وتأكد من قيام النظام باستقصاء خادم بروتوكول وقت الشبكة. هذه هي الحالة الافتراضية بعد معظم عمليات التثبيت.

إذا تم ضبطها جميعًا ، فستعتني أنظمة الوقت بجهاز الكمبيوتر الخاص بك بنفسها.

ذات صلة: كيفية مزامنة وقت خادم Linux الخاص بك مع خوادم وقت الشبكة (NTP)