المنطقة الزمنية واللغة والإعدادات المحلية
كيف تضبط المنطقة الزمنية، وتُفعّل مزامنة الوقت، وتُعدّ إعدادًا محليًا UTF-8، ولماذا ينبغي حفظ السجلات وقاعدة البيانات بالتوقيت UTC.
آخر تحديث 23 أغسطس 2026
عادةً ما تعمل الآلة الجديدة بتوقيت UTC مع مجموعة محدودة من اللغات المحلية. وطالما أنك لا تقرأ السجلات ولا تشغّل المهام المجدولة، فلن تلاحظ ذلك. لكن بمجرد أن تدخل cron والبريد الإلكتروني والتقارير في الصورة، يصبح الوقت والترميز مهمين للغاية.
المنطقة الزمنية
timedatectl
timedatectl list-timezones | grep Moscow
timedatectl set-timezone Europe/Moscow
يعرض timedatectl الوقت المحلي وUTC وحالة المزامنة. السطر System clock synchronized: yes يعني أن الساعة متزامنة عبر الشبكة.
إذا كانت المزامنة معطّلة:
timedatectl set-ntp true
systemctl status systemd-timesyncd
على AlmaLinux وCentOS Stream، يكون chronyd عادةً مسؤولاً عن الوقت:
systemctl enable --now chronyd
chronyc tracking
اللغة المحلية
تحدد اللغة المحلية لغة الرسائل والترميز وتنسيق الأرقام والتواريخ. الحد الأدنى المطلوب هو UTF-8؛ وإلا تحوّلت أسماء الملفات الروسية ومخرجات البرامج إلى علامات استفهام.
Debian وUbuntu:
apt install -y locales
dpkg-reconfigure locales
localectl set-locale LANG=ru_RU.UTF-8
AlmaLinux وCentOS Stream:
dnf install -y glibc-langpack-ru
localectl set-locale LANG=ru_RU.UTF-8
تحقّق:
locale
locale -a | grep -i utf
تنطبق التغييرات على الجلسات الجديدة—سجّل الدخول مرة أخرى عبر SSH.
تخطيط لوحة المفاتيح في الطرفية
تعرض شاشة “Screen” (VNC) في تبويب “Console” ضمن لوحة /hosting/vds/m/<id> ضغطات المفاتيح كما هي. إذا كنت بحاجة إلى كتابة الأحرف السيريلية هناك مباشرةً:
localectl set-keymap ru
لا تحتاج الخدمات إلى هذا—يكفيها UTF-8.
ما الذي يُترك بتوقيت UTC
من المنطقي إبقاء النظام نفسه وقاعدة البيانات بتوقيت UTC، وإظهار الوقت المحلي للأشخاص فقط.
- السجلات بتوقيت UTC قابلة للمقارنة عبر الآلات ولا تتغير عند تغيّر الساعات.
- قاعدة البيانات بتوقيت UTC لا تُفسد حسابات الفواصل الزمنية.
- يحسب cron الوقت حسب المنطقة الزمنية للنظام: إذا غيّرت المنطقة الزمنية، فأعد قراءة الجداول.
systemctl restart cron
crontab -l
الأخطاء الشائعة
| العَرَض | السبب | الحل |
|---|---|---|
setlocale: LC_ALL: cannot change locale | العميل يرسل لغته المحلية الخاصة، لكنها غير موجودة على الخادم | أنشئ اللغة المحلية أو أزل تمرير LANG على العميل |
| أحرف مشوّهة في أسماء الملفات | اللغة المحلية ليست UTF-8 | LANG=ru_RU.UTF-8 ثم سجّل الدخول مرة أخرى |
| “انحراف” الوقت بدقائق | المزامنة معطّلة | timedatectl set-ntp true |
| نُفّذت المهمة في الساعة الخاطئة | غيّرت المنطقة الزمنية لكن الجدول بقي كما هو | أعد حساب crontab |
غيّر المنطقة الزمنية قبل إعداد مهام النسخ الاحتياطي والتسجيل. على آلة قيد التشغيل، يعني تغيير المنطقة الزمنية مراجعة جميع الجداول دفعةً واحدة.