در عصر حاضر که جهان به سرعت در حال دیجیتالی شدن است، داشتن سیستمهایی که قادر به نمایش دقیق زمان هستند، به عنصری حیاتی تبدیل شده است. تنظیمات NTP (پروتکل زمان شبکه) به سرورهای مبتنی بر سیستم عامل لینوکس این امکان را میدهد که ساعت و تاریخ خود را با ساعتهای استاندارد جهانی همسانسازی کنند. این امر اطمینان میدهد که تمامی تراکنشها و عملیاتها با بالاترین سطح دقت زمانی اجرا میشوند، که در نتیجه کارایی و قابلیت اطمینان سیستمها را افزایش میدهد.
در این مقاله، به طور جامع به بررسی نحوه استفاده و پیادهسازی تنظیمات NTP در سرورهای مجازی لینوکس پرداخته میشود. از مرحله اولیه نصب و پیکربندی این پروتکل، تا تنظیم منطقه زمانی مورد نظر و رفع تمامی چالشها و مشکلات مربوط به نگهداری ساعت و تاریخ دقیق در سیستمها، همه و همه در این بحث شامل خواهد شد. با درک و اجرای صحیح این تنظیمات، میتوان از پایداری و دقت زمانی لازم برای پشتیبانی از انواع فعالیتهای برنامهریزی شده و تعاملات درون شبکهای اطمینان حاصل کرد.
تنظیمات NTP برای تنظیم منطقه زمانی و تنظیمات کلی
بهترین روش برای تنظیم ساعت و تاریخ روی سرورهای لینوکس، استفاده از تنظیمات NTP است. اگر تاریخ و ساعت روی سرورهایتان به صورت دستی تنظیم شده و مشکلی با آنها دارید، ممکن است با گذشت زمان دوباره با مشکل مواجه شوید.
برای رفع این مشکل به صورت دائمی، ابتدا باید Network Time را نصب کرده و Time Zone مورد نیازتان را تنظیم کنید. سپس سرویس NTP را ریستارت کنید.
برای این کارها، مراحل زیر را دنبال کنید:
۱ـ ابتدا دستورات زیر را به ترتیب وارد کنید:
yum install ntp ntpdate
systemctl enable ntpd
systemctl start ntpd
ntpdate -u -s ۰.centos.pool.ntp.org ۱.centos.pool.ntp.org ۲.centos.pool.ntp.org
systemctl restart ntpd
timedatectl set-timezone "Asia/Tehran"
service ntpd restart
۲ـ برای بررسی صحت تنظیمات، دستور زیر را اجرا کنید:
date
اگر میخواهید تاریخ و ساعت را به صورت دستی تنظیم کنید، میتوانید از دستورات زیر استفاده کنید:
date +%Y%m%d -s "20230312"
به ترتیب به جای y , m , d مقادیر سال و ماه و روز را در عبارت انتهای دستور وارد نمایید. مثلا برای تاریخ ۲۰۲۳/۰۳/۱۲ باید مقدار ۲۰۲۳۰۳۱۲ را استفاده کنید
ـ برای تنظیم تاریخ:
date +%Y%m%d -s "۲۰۲۳۰۳۱۲"
ـ برای تنظیم ساعت:
date +%T -s "۱۱:۱۴:۰۰"
همچنین میتوانید تاریخ و ساعت را در یک دستور تنظیم کنید:
date -s "19 APR 2012 11:14:00"
برای اطمینان از صحت تنظیمات، میتوانید از کد PHP زیر استفاده کنید:
<?php
date_default_timezone_set('Asia/Tehran');
$timestamp = time();
$date_time = date("d-m-Y (D) H:i:s", $timestamp);
echo "Current date and local time on this server is $date_time";
?>
یا از کد زیر که شامل اطلاعات مربوط به PHP هم میباشد:
<?php
date_default_timezone_set("Asia/Tehran");
date_default_timezone_set('Iran');
echo "Today is " . date("Y/m/d") . " ->" . date("h:i:sa") . "<br>";
echo "Today is " . date("l");
phpinfo();
?>
با این مراحل، میتوانید تاریخ و ساعت را به درستی تنظیم کنید و از صحت آنها مطمئن شوید.
نمونه کد PHP برای نمایش ساعت و تاریخ
برای اطمینان از درستی تنظیمات، یک فایل PHP در public_html هاست خود ایجاد کنید و یکی از کدهای زیر را در آن قرار دهید:
کد اول:
<?php
date_default_timezone_set('Asia/Tehran');
$timestamp = time();
$date_time = date("d-m-Y (D) H:i:s", $timestamp);
echo "Current date and local time on this server is $date_time";
?>
کد دوم:
<?php
date_default_timezone_set("Asia/Tehran");
date_default_timezone_set('Iran');
echo "Today is " . date("Y/m/d") . " ->" . date("h:i:sa") . "<br>";
echo "Today is " . date("l");
phpinfo();
?>
سپس فایل را با پسوند php ذخیره کنید و با نام دامنه فایل را در مرورگر باز کنید. به عنوان مثال، اگر فایل را با نام time.php ذخیره کنید، با آدرس زیر میتوانید فایل را اجرا کنید:
http://domainname.com/time.php
توجه داشته باشید که به جای domainname.com باید نام دامنه خود را قرار دهید.
تنظیمات منطقه زمانی برای اوبونتو
timedatectl یک ابزار خط فرمان است که به شما امکان میدهد زمان و تاریخ سیستم را مشاهده و تغییر دهید. این ابزار در تمام سیستمهای مدرن مبتنی بر سیستم عامل لینوکس، از جمله اوبونتو ۲۰٫۰۴ موجود است.
برای نشان دادن منطقه زمانی سیستم فعلی، فقط timedatectl را تایپ کنید:
timedatectl
خروجی نشان میدهد که منطقه زمانی روی UTC تنظیم شده است:
Local time: Wed ۲۰۲۰-۰۵-۰۶ ۱۹:۳۳:۲۰ UTC
Universal time: Wed ۲۰۲۰-۰۵-۰۶ ۱۹:۳۳:۲۰ UTC
RTC time: Wed ۲۰۲۰-۰۵-۰۶ ۱۹:۳۳:۲۲
Time zone: UTC (UTC, +۰۰۰۰)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
منطقه زمانی سیستم با همگامسازی /etc/localtime به یک شناسه منطقه زمانی باینری در فهرست /usr/share/zoneinfo پیکربندی شده است.
گزینه دیگر برای مشاهده منطقه زمانی سیستم فعلی، یافتن پروندهای است که Simlink به آن اشاره دارد:
ls -l /etc/localtime
خروجی:
lrwxrwxrwx ۱ root root ۲۷ Dec ۱۰ ۱۲:۵۹ /etc/localtime -> /usr/share/zoneinfo/Etc/UTC
منطقه زمانی سیستم نیز در پرونده /etc/timezone نوشته شده است:
cat /etc/timezone
خروجی:
UTC
تغییر منطقه زمانی با استفاده از timedatectl
قبل از تغییر منطقه زمانی، باید نام طولانی منطقه زمانی را که می خواهید استفاده کنید پیدا کنید. مناطق زمانی از قالب “منطقه / شهر” استفاده میکنند.
برای لیست کردن تمام مناطق زمانی موجود، می توانید پرونده ها را در فهرست / usr / share / zoneinfo لیست کنید یا با استفاده از گزینه لیست منطقه زمانی ، دستور timedatectl را فراخوانی کنید:
timedatectl list-timezones
خروجی:
...
America/Montevideo
America/Nassau
America/New_York
America/Nipigon
America/Nome
America/Noronha
...
پس از شناسایی منطقه زمانی دقیق در مکان خود ، دستور زیر را به عنوان کاربر sudo اجرا کنید:
sudo timedatectl set-timezone your_time_zone
به عنوان مثال ، برای تغییر منطقه زمانی منطقه به Asia/Tehran:
sudo timedatectl set-timezone Asia/Tehran
برای تأیید تغییرات ، از دستور timedatectl فراخوانی کنید:
timedatectl
خروجی:
Local time: Tue ۲۰۲۲-۰۱-۱۱ ۱۵:۳۲:۱۹ +۰۳۳۰
Universal time: Tue ۲۰۲۲-۰۱-۱۱ ۱۲:۰۲:۱۹ UTC
RTC time: Tue ۲۰۲۲-۰۱-۱۱ ۱۲:۰۲:۱۹
Time zone: Asia/Tehran (+۰۳۳۰, +۰۳۳۰)
System clock synchronized: no
NTP service: active
RTC in local TZ: no
تغییر ساعت و تاریخ به صورت دستی
اولین قدم، با استفاده از دستور زیر، تاریخ و زمان فعلی سرور را مشاهده میکنیم:
date
سپس میتوانیم با دستور زیر، به صورت دستی تاریخ و زمان را تغییر دهیم:
date -s "18 OCT 2022 18:00:00"
یا این دستور را نیز میتوانیم استفاده کنیم:
date --set="18 OCT 2022 18:00:00"
در نهایت، برای بررسی مجدد تنظیمات، دوباره دستور date را اجرا میکنیم:
date
جمع بندی
در این مقاله، مراحل مختلف نصب، پیکربندی و رفع چالشهای NTP در سیستمهای لینوکس به طور جامع بررسی شدند. با پیروی از این مراحل، شما میتوانید از دقت زمانی لازم برای پشتیبانی از فعالیتهای برنامهریزیشده و تعاملات شبکهای اطمینان حاصل کنید. بهعلاوه، نحوه تنظیم دستی ساعت و تاریخ، ایجاد فایلهای PHP برای بررسی صحت تنظیمات، و استفاده از ابزارهای خط فرمان مانند `timedatectl` نیز به تفصیل ارائه شدند. با اجرای صحیح این دستورالعملها و روشها، از همگامسازی کامل و دقیق زمان سیستم خود مطمئن خواهید شد.
اگر به دنبال سرورهای مجازی لینوکس با پایداری بالا، قابلیت اطمینان، و تنظیمات انعطافپذیر هستید، زویپ سرور انتخاب مناسبی برای شماست. زویپ سرور در کنار خدمات حرفهای، پشتیبانی فنی مناسبی نیز ارائه میدهد تا در هر مرحله، از راهاندازی تا مدیریت سرور، شما را همراهی کند.