टाइमज़ोन, लोकेल और सिस्टम भाषा
टाइमज़ोन कैसे सेट करें, टाइम सिंक्रोनाइज़ेशन चालू करें, 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 से दोबारा लॉग इन करें।
कंसोल में कीबोर्ड लेआउट
/hosting/vds/m/<id> पैनल के “Console” टैब में “Screen” (VNC) व्यू कीस्ट्रोक को जैसा है वैसा ही पास करता है। अगर आपको वहीं सिरिलिक टाइप करना है:
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 दोबारा गिनें |
बैकअप जॉब और लॉगिंग सेट करने से पहले टाइम ज़ोन बदलें। लाइव मशीन पर टाइम ज़ोन बदलने का मतलब है एक साथ सभी शेड्यूल की समीक्षा करना।