টাইমজোন, লোকেল, এবং সিস্টেম ভাষা
কীভাবে টাইমজোন সেট করবেন, সময় সিঙ্ক্রোনাইজেশন চালু করবেন, UTF-8 লোকেল কনফিগার করবেন, এবং কেন লগ ও ডেটাবেস UTC-তে রাখা উচিত।
আপডেট: ২৩ আগস্ট, ২০২৬
একটি নতুন মেশিন সাধারণত 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 পুনরায় গণনা করুন |
ব্যাকআপ কাজ এবং লগিং সেট আপ করার আগে টাইম জোন পরিবর্তন করুন। একটি লাইভ মেশিনে টাইম জোন পরিবর্তন করার মানে হলো একসাথে সব শিডিউল পুনরায় দেখা।