কম্পিউটার ঘড়ি পারফেক্ট নয়। কয়েক দিন, সপ্তাহ বা মাসের পর, সেগুলো ড্রিফট করে এবং আসল সময় দেখাতে বন্ধ করে দেয়। সরল কথায়, ড্রিফট করার পর সেগুলো দেখাতে পারে "১০:৩০" যখন আসলে "১০:৩৩"। পুরনো কম্পিউটারে কম্পিউটার ঘড়ি ম্যানুয়ালি পিরিয়ডিক্যালি রি-অ্যাডজাস্ট করা সাধারণ অভ্যাস ছিল। কিন্তু, ইন্টারনেট কানেকশন সবজায়গা পাওয়া যাওয়ার পর, আধুনিক অপারেটিং সিস্টেম NTP সার্ভারের সাহায্যে ঘড়ি আটোমেটিক্যালি অ্যাডজাস্ট করতে শুরু করল।
NTP কী?
NTP হল Network Time Protocol-এর এক্রোনিম। এটি একটি অ্যালগরিদম যা নেটওয়ার্ক কানেকশনের মাধ্যমে কম্পিউটার ক্লক সিঙ্ক্রোনাইজ করে এবং সেগুলো সঠিক রাখে।
লিনাক্সে টাইম সিঙ্ক্রোনাইজেশন ইনেবল করার পদ্ধতি
সৌভাগ্যক্রমে, অধিকাংশ ডিস্ট্রিবিউশন টাইম সিঙ্ক্রোনাইজেশনের এক বা একাধিক ফর্ম আউট-অফ-দ-বক্স বাস্তবায়ন করে। আপনি যদি কখনো আপনার কম্পিউটার ক্লক আপনার ফোনের ক্লক থেকে ড্রিফট হওয়া লক্ষ্য না করেন, তবে আপনার কাছে почти নিশ্চিতভাবে একটি NTP ক্লায়েন্ট/ডেমন ইতিমধ্যে রান করছে।
systemd সহ লিনাক্স OS-এ
অধিকাংশ লিনাক্স ডিস্ট্রিবিউশন systemd अपना लिया है, এবং এর সাথে আসে "systemd-timesyncd" ডেমন। এর মানে উবুন্টু, ডেবিয়ান, ফেডোরা, আর্চ লিনাক্স, ওপেনএসইউএসই, মঞ্জারো এবং অন্যগুলোর মতো ডিস্ট্রোতে আপনার কাছে ইতিমধ্যে একটি NTP ক্লায়েন্ট প্রি-ইনস্টলড আছে। এই ডিস্ট্রোতে, এবং এগুলোর ওপর ভিত্তি করে বने অন্যান্য ডিস্ট্রোতে (যেমন elementary OS, Zorin OS), NTP সিঙ্ক ইনেবল আছে কিনা চেক করতে নিচের কমান্ড রান করুন:
timedatectl
আউটপুটে আপনি যদি Network time on: yes দেখেন, তবে আপনার কম্পিউটার ক্লক NTP-এর মাধ্যমে আটোমেটিক্যালি পিরিয়ডিক্যালি অ্যাডজাস্ট হচ্ছে। কখনো কখনো আপনি NTP synchronized: noও লক্ষ্য করতে পারেন যা মানে পারে ক্লক "systemd-timesyncd"-র বجز অন্য কোনো টুল দিয়ে সিঙ্ক হয়েছে। এটি এর মানেও হতে পারে systemd-timesyncd এখনো সিঙ্ক করলো না কিন্তু পরে করবে।
আপনি যদি Network time on: no দেখেন, NTP টাইম সিঙ্ক্রোনাইজেশন ইনেবল করতে নিচের কমান্ড রান করুন।
sudo timedatectl set-ntp true
এই ডিস্ট্রিবিউশনগুলোতে আপনার করণীয় बस এতটুকু।
systemd ছাড়া লিনাক্স OS-এ
MX Linux খুব জনপ্রিয় হয়ে যাওয়ার কারণে, এই OS-র উদাহরণ দিতে উপযুক্ত মনে হয়। এটি একটি স্পেশ্যাল কেস। এতে "কিছুটা" systemd আছে, কিন্তু "কিছুটা" নেই। timedatectl রিপোর্ট করে নেটওয়ার্ক টাইম "on", কিন্তু systemd-timesyncd ব্যবহৃত হয় না।
তো এটি কীভাবে সিঙ্ক করে? আপনি নেক্সট কমান্ড দিয়ে চেক করতে পারেন যা আপনি যেকোনো অন্য লিনাক্স অপারেটিং সিস্টেমে ব্যবহার করতে পারেন।
sudo cat /var/log/syslog | grep ntp
MX Linux-এ আপনি নিচের ছবির মতো রেজাল্ট পাবেন।
এই ফিল্টারড লগ মেসেজ থেকে, আপনি দেখতে পাবেন যে "ntpdate" ক্লায়েন্ট একবার রান করেছিল। এটি একটি জনপ্রিয় ক্লায়েন্ট, অনেক লিনাক্স ডিস্ট্রিবিউশনে ডিফল্টভাবে ইনস্টলড। এটি লাইটওয়েট এবং শুধু ছিটকে NTP সার্ভার কুয়েরি করে। এটি ব্যাকগ্রাউন্ডে রান করে না এবং স্ক্রিপ্ট দ্বারা ট্রিগার হয়, সিঙ্ক করে, তারপর এক্সিট করে।
এর মানে টাইম অত্যধিক একুরেসি (মিলিসেকেন্ড বা মাইক্রোসেকেন্ড ভাবতে) সাথে সিঙ্ক হয় না, কিন্তু অধিকাংশ উদ্দেশ্যের জন্য এটি যথেষ্ট একুরেট। এটি নরমালি সেকেন্ডের আকারে একুরেট।
অন্য অপারেটিং সিস্টেমে আপনি "ntpd" দেখতে পেতে পারেন, যা একটি ডেমন, ব্যাকগ্রাউন্ডে luôn রান করে এবং অত্যন্ত একুরেট। এটি যত বেশি রান করে, তত বেশি প্রিসাইজ হয়।
যদি কোনো কারণে, আপনি systemd-যুক্ত OS-এ ntp বা ntpdate ইনস্টল করতে চান, প্রথমে systemd-এর NTP ক্লায়েন্ট ডিসেবল করুন।
sudo timedatectl set-ntp false
বেশক, নন-systemd ডিস্ট্রোর জন্য উপরের কমান্ড প্রয়োজন নেই।
ntpdate ক্লায়েন্ট ইনস্টল করুন
এটি হোম কম্পিউটার, ল্যাপটপ এবং অন্যান্য ডিভাইসের জন্য উপযুক্ত যা دائما ইন্টারনেটে কানেক্টেড নয়।
ডেবিয়ান, উবুন্টু, লিনাক্স মিন্ট, জোরিন এবং এগুলোর ওপর ভিত্তি করে বने অন্যান্য ডিস্ট্রোতে রান করুন:
sudo apt install ntpdate
উপরের সব ডেবিয়ান-ভিত্তিক ডিস্ট্রোতে এটি আউট-অফ-দ-বক্স কনফিগার করা থাকে যাতে এটি নতুন নেটওয়ার্ক কানেকশন দেখার পর রান করে। আপনি আপনার নেটওয়ার্ক থেকে ডিসকানেক্ট এবং রিকানেক্ট করে এখনই টাইম সিঙ্ক ফোর্স করতে পারেন।
ফেডোরায়, ntpdate ডিপ্রিকেটেড হবে, তাই পরবর্তি সেকশনে বর্ণিত ntpd ডেমন ব্যবহার করার সুপারিশ করা হয়। অন্যান্য সব ডিস্ট্রোর জন্যও একই সুপারিশ করা হয় দুটি কারণ থেকে:
- এগুলো কখনো কখনো ntpdate আলাদা প্যাকেজে অন্তর্ভুক্ত করে না বরং পরবর্তি সেকশনের ntpd-র সাথে বান্ডেল করে দেয়।
- এগুলো ntpdate-কে প্রতিটি নেটওয়ার্ক কানেকশনের পর আটোমেটিক্যালি রান করার জন্য অটোমেট করে না। আপনাকে নিজে ntpdate একটি স্ক্রিপ্টে ইনসার্ট করতে হবে যা নেটওয়ার্ক কানেক্ট হওয়ার পর আটোমেটিক্যালি রান করে।
এই কেসে, পরবর্তি সেকশনে নির্দেশনা অনুযায়ী ntpd ইনস্টল করা আরও সেন্সিবল।
ntpd ডেমন ইনস্টল করুন
ডেবিয়ান, উবুন্টু, জোরিন, মিন্ট এবং ডেবিয়ান বা উবুন্টু-ভিত্তিক অন্যান্য ডিস্ট্রোতে রান করুন:
sudo apt install ntp
এই ডিস্ট্রোগুলো ntpd অবিলম্বে শুরু করবে এবং তারপর প্রতিটি বুটে এটি আটোমেটিক্যালি লঞ্চ করবে; আপনার পক্ষ থেকে কোনো অতিরিক্ত অ্যাকশন প্রয়োজন নেই।
ফেডোরায়, নিচের কমান্ড দিয়ে ইনস্টল করুন:
sudo dnf install ntp
CentOS-এ, রান করুন:
sudo yum install ntp
Arch Linux-এ, ব্যবহার করুন:
sudo pacman -S ntp
openSUSE-এ, লিখুন:
sudo zypper install ntp
এরপর, সার্ভিসকে বুটে লঞ্চ করার জন্য ইনেবল করুন এবং তারপর শুরু করুন:
sudo systemctl enable ntpd sudo systemctl start ntpd
systemd ছাড়া চলা অন্যান্য ডিস্ট্রোর জন্য, আপনাকে এই কমান্ডগুলো রান করতে হতে পারে:
sudo update-rc.d ntpd enable sudo service ntpd start
বা আপনার OS-এর জন্য যেটি সমতুল্য।
আপনি যদি erroe পান যে ntpd অস্তিত্ব নেই, তবে উপরের কমান্ডগুলোর "ntpd"-কে "ntp"-দিয়ে রিপ্লেস করুন। কিছু ডিস্ট্রিবিউশন ntpd ডেমন সার্ভিস ফাইল ভিন্ন নামে রেখে।
উপসংহার
গ্রাফিক্যাল ইউজার ইন্টারফেস সহ লিনাক্স OS-এ এই স্টেপগুলো ফলো করতে হয় এটি রেয়ার। টাইম সিঙ্ক ইতিমধ্যে আপনার জন্য কনফিগার করা থাকা উচিত। কিন্তু এই স্টেপগুলো কমপক্ষে কখনো কখনো একটি সমস্যা ডিবাগ করতে সাহায্য করতে পারে। অনেক ডেস্কটপ এনভায়রনমেন্ট কন্ট্রোল প্যানেল আপনাকে টাইম সিঙ্ক্রোনাইজেশন ইনেবল এবং ডিসেবল করতে দেয়। ব্যাকগ্রাউন্ডে সেগুলো এই সেটিং কনফিগার করার জন্য মিলত জুলত কমান্ড ব্যবহার করে, তাই আপনি গ্রাফিক্যাল ইউজার ইন্টারফেস টুল ফেল করলে নিজে করুন।