এই নিবন্ধে, আমরা আপনাকে দেখাব কিভাবে সময়, তারিখ, টাইমজোন সেট করতে হয়, একটি NTP সার্ভারের সাথে সময় সিঙ্ক্রোনাইজ করতে হয় এবং CentOS লিনাক্সে সাধারণ সমস্যাগুলি ঠিক করতে হয়।
সার্ভারে দুই ধরনের ঘড়ি আছে:হার্ডওয়্যার একটি (রিয়েল-টাইম ঘড়ি) যেটি সার্ভার বন্ধ থাকলেও কাজ করছে এবং অপারেটিং সিস্টেম সফ্টওয়্যার ঘড়ি এই ঘড়ির সময় ভিন্ন হতে পারে। অপারেটিং সিস্টেম শুরু করার পরে, সফ্টওয়্যার ঘড়িটি একটি হার্ডওয়্যারের উপর ভিত্তি করে এবং OS দ্বারা সামঞ্জস্য করা যেতে পারে৷
বেশিরভাগ অ্যাপ্লিকেশন তাদের অপারেশনে সফ্টওয়্যার ঘড়ির সময় ব্যবহার করে৷
Hwclock:হার্ডওয়্যার টাইম কনফিগারেশন
Hwclock লিনাক্সে হার্ডওয়্যার সময় পরীক্ষা করতে ব্যবহৃত হয়:
hwclock --localtime
— সংশোধন ছাড়া হার্ডওয়্যার সময় পরীক্ষা করুনhwclock --utc
– হার্ডওয়্যার ঘড়ি UTC সময় দেখালে সময় প্রদর্শন করে
# hwclock --localtime
2020-10-12 06:12:02.912866-04:00
# hwclock --utc
2020-10-12 02:12:18.915319-04:00
সিস্টেমের সময় অনুযায়ী হার্ডওয়্যার সময় সেট করতে, এই কমান্ডটি চালান:# hwclock --systohc
আপনার পছন্দের হার্ডওয়্যার সময় সেট করতে, নিম্নলিখিতটি চালান:# hwclock --set --date "11 Oct 2020 17:30"
CentOS-এ ম্যানুয়াল টাইম কনফিগারেশন
Linux-এ, তারিখ অথবা timedatectl সরঞ্জামগুলি সফ্টওয়্যার সময় পরীক্ষা এবং সেট করতে ব্যবহৃত হয়। আপনি যদি তারিখ কল করেন কোনো প্যারামিটার ছাড়াই, এটি আপনার সার্ভারে বর্তমান সময় দেখাবে:
# date
Sun Oct 11 22:14:54 EDT 2020
আপনি যদি ম্যানুয়ালি সময় সেট করতে চান, আপনি তারিখ ব্যবহার করতে পারেন অতিরিক্ত পরামিতি সহ:
# date MMDDhhmm
যেমনঃ
# date 10261740
তারিখ, সময়, টাইমজোন, সিঙ্ক্রোনাইজেশন সেটিংস, ডে-লাইট সেভিং টাইম সেটিংস (DST), timedatectl সম্পর্কে বর্ধিত তথ্য পেতে ব্যবহৃত হয়. এটি একটি সার্ভারে সময় সেটিংস সম্পর্কে আরও বিস্তারিত তথ্য দেয়৷
Timedatectl সময় পরিবর্তন করার অনুমতি দেয়:
# timedatectl set-time '2020-10-11 17:51:00'
সেন্টস-এ টাইমজোন কীভাবে সেট করবেন?
একটি CentOS Linux এ আপনার টাইমজোন অনুযায়ী সময় সেট করতে, আপনি এটি ম্যানুয়ালি পরিবর্তন করতে পারেন। এটি করতে, আপনি দুটি টুল ব্যবহার করতে পারেন:
- timedatectl
- tzdata
timedatectl ব্যবহার করে একটি সময় অঞ্চল পরিবর্তন করতে , এই কমান্ডটি চালান:
# timedatectl set-timezone Canada/Pacific
# date
অথবা আপনি tzdata ব্যবহার করতে পারেন . এই পদ্ধতিটি ব্যবহার করতে, /etc/localtime ফাইলটি প্রতিস্থাপন করুন আপনার প্রয়োজন একটি সঙ্গে. সময় অঞ্চলের সম্পূর্ণ তালিকা /usr/share/zoneinfo/
-এ অবস্থিত ডিরেক্টরি চলুন একটি টাইমজোন পরিবর্তন করে কানাডা/প্যাসিফিক করি . বর্তমান লোকেটাইম ফাইলের ব্যাক আপ নিন:
# mv /etc/localtime /etc/localtime.bak
আপনি যে টাইমজোন সেট করতে চান তার একটি সিমলিঙ্ক তৈরি করুন:# ln -s /usr/share/zoneinfo/Canada/Pacific /etc/localtime
NTP টাইম সার্ভারের সাথে সময় সিঙ্ক করতে CentOS কনফিগার করুন
আপনি একটি বহিরাগত NTP (নেটওয়ার্ক টাইম প্রোটোকল) সার্ভারের সাথে আপনার হোস্টে স্বয়ংক্রিয় সময় সিঙ্ক্রোনাইজেশন কনফিগার করতে পারেন। এটি করতে, আপনাকে অবশ্যই ntp পরিষেবা ইনস্টল করতে হবে৷ . উদাহরণস্বরূপ, আপনি CentOS 7:
-এ yum ব্যবহার করে এটি ইনস্টল করতে পারেন
# yum install ntp -y
ইনস্টলেশনের পরে, ntpd পরিষেবাটি শুরু করুন এবং এটিকে স্টার্টআপে যুক্ত করুন:
# systemctl start ntpd.service
# systemctl enable ntpd.service
নিশ্চিত করুন যে পরিষেবাটি চলছে:
# service ntpd status
Redirecting to /bin/systemctl status ntpd.service ● ntpd.service - Network Time Service Loaded: loaded (/usr/lib/systemd/system/ntpd.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2020-10-11 15:37:33 +06; 5min ago Main PID: 3057 (ntpd) CGroup: /system.slice/ntpd.service └─3057 /usr/sbin/ntpd -u ntp:ntp -g
/etc/ntp.conf এর সাথে সময় সিঙ্ক্রোনাইজ করার জন্য NTP সার্ভারগুলি নির্দিষ্ট করুন :
server 0.pool.ntp.org server 1.pool.ntp.org server 2.pool.ntp.org
সময় পালাক্রমে সিঙ্ক্রোনাইজ করা হয়। যদি প্রথম NTP সার্ভার উপলব্ধ না হয়, দ্বিতীয়টি ব্যবহার করা হয়, ইত্যাদি।
আপনি এই কমান্ডটি ব্যবহার করে ম্যানুয়ালি নির্দিষ্ট NTP সার্ভারের সাথে সময় সিঙ্ক্রোনাইজ করতে পারেন:
# ntpdate 192.168.1.23
ডিফল্টরূপে, ntpd "11 মিনিট মোড" সক্ষম করে। এর মানে হল যে সময় প্রতি 11 মিনিটে সিঙ্ক্রোনাইজ করা হবে। আপনি যদি ntpd ব্যবহার করতে না পারেন ডেমন, আপনি ক্রোন ব্যবহার করে সময় সিঙ্ক্রোনাইজেশন কনফিগার করতে পারেন। ক্রোন-এ নিম্নলিখিত কমান্ড যোগ করুন:
# ntpdate pool.ntp.org
Chronyd ব্যবহার করে CentOS 8 এ কিভাবে সময় সিঙ্ক করবেন?
CentOS 8-এ আপনাকে chrony ব্যবহার করতে হবে সময় সিঙ্ক্রোনাইজ করার জন্য, যেহেতু ntp এবং ntpdate অফিসিয়াল রিপোজিটরিগুলি থেকে সরানো হয়েছে।
ক্রোনির প্রধান সুবিধা হল:
- সময় সিঙ্ক্রোনাইজেশনের উচ্চ গতি এবং নির্ভুলতা;
- যদি আপনার মাস্টার ক্লক অ্যাক্সেস না থাকে (ntpd-এর নিয়মিত অনুরোধ প্রয়োজন);
- ডিফল্টরূপে, প্রোগ্রাম চালানোর জন্য কোনো সমস্যা প্রতিরোধ করার জন্য সিঙ্ক্রোনাইজেশনের ঠিক পরে সময় পরিবর্তন করা হয় না;
- কম সম্পদ ব্যবহার করে।
ডিফল্টরূপে, chrony সেন্টোস লিনাক্সে ইতিমধ্যেই ইনস্টল করা আছে, কিন্তু যদি আপনার কোন কারণে এটি না থাকে তবে এটি ইনস্টল করুন:
# dnf install chrony
অন্য যেকোনো পরিষেবার মতো, chrony-কে শুরু করতে হবে এবং ইনস্টলেশনের পরে স্টার্টআপে যোগ করতে হবে:
# systemctl start chronyd
# systemctl enable chronyd
ক্রোনাইড পরিষেবার স্থিতি পরীক্ষা করুন:
# systemctl status chronyd
সময় সিঙ্ক্রোনাইজেশন কাজ করছে তা নিশ্চিত করতে, এই কমান্ডটি চালান:
# timedatectl status
NTP Service: active
ক্রনি কনফিগারেশন ফাইল হল /etc/chrony.conf . সিঙ্ক্রোনাইজেশনের জন্য আপনি যে NTP সার্ভারগুলি ব্যবহার করতে চান তার তালিকা নির্দিষ্ট করুন৷ ntp পছন্দ করুন , chrony-এর একটি কমান্ড-লাইন ইন্টারফেস রয়েছে:chronyc . বর্তমান সময়ের সিঙ্ক্রোনাইজেশন বিকল্পগুলি সম্পর্কে তথ্য দেখতে, এই কমান্ডটি চালান:
# chronyc tracking
সিঙ্ক সার্ভার সম্পর্কে তথ্য দেখতে:
# chronyc sources
আপনি যদি নির্দিষ্ট তারিখ এবং সময় ম্যানুয়ালি সেট করতে চান, আপনি তারিখ ব্যবহার করতে পারেন , কিন্তু পূর্বে chronyd অক্ষম করুন৷ ডেমন।
CentOS-এ সাধারণ সময় সিন সমস্যা
এই বিভাগে, আমি timedatectl এর সাথে কাজ করার সময় প্রদর্শিত সাধারণ ত্রুটিগুলি বর্ণনা করব , ntp .
ম্যানুয়াল টাইম সিঙ্ক্রোনাইজেশনের সময় আপনি এই ত্রুটিটি দেখতে পারেন:
# ntpdate pool.ntp.org
ntpdate [26214]: the NTP socket is in use, exiting
এর মানে হল যে ntpd ডেমন চলছে এবং ম্যানুয়াল টাইম সিঙ্ক্রোনাইজেশন প্রতিরোধ করছে। ম্যানুয়ালি সময় সিঙ্ক্রোনাইজ করতে, ntpd ডেমন বন্ধ করুন:
# service ntpd stop
এবং আবার সিঙ্ক্রোনাইজেশন চালান।
timedatectl:
এর সাথে কাজ করার সময় একই ত্রুটি ঘটতে পারেFailed to set time: Automatic time synchronization is enabled.
আপনাকে timedatectl এ স্বয়ংক্রিয় সিঙ্ক অক্ষম করতে হবে:
# timedatectl set-ntp 0
এবং আপনি যে সময় এবং তারিখ চান তা সেট করতে এই কমান্ডটি চালান:
# timedatectl set-time '2020-11-12 17:41:00'
সময় অঞ্চলগুলির সাথে কাজ করার সময়, এটি ঘটতে পারে যে সেগুলি আপনার সার্ভারে ইনস্টল করা নেই এবং আপনি স্থানীয় সময়ের জন্য একটি সিমলিংক তৈরি করতে পারবেন না। আপনার হোস্টে টাইম জোন উপলব্ধ করতে, tzdata টুলটি ইনস্টল করুন:
# yum install tzdata -y
এছাড়াও, আপনি নিম্নলিখিতগুলির মত ম্যানুয়াল সিঙ্ক্রোনাইজেশনের সময় কিছু ত্রুটির সম্মুখীন হতে পারেন:
11 Oct 21:11:19 ntpdate[897482]: sendto(xx.xx.xx.98): Operation not permitted
এই ক্ষেত্রে, আপনার firewalld/iptables নিয়মগুলি পরীক্ষা করুন এবং নিশ্চিত করুন যে আপনার সার্ভারে UDP পোর্ট 123 খোলা আছে। এছাড়াও, কিছু NTP হোস্ট বৈধকরণের সময় উপলব্ধ নাও হতে পারে।