آموزش Date و time و ntp در لینوکس | آموزش تنظیم Timezone



تنظیم ساعت، تاریخ و زمان لینوکس

برای تنظیم تاریخ، زمان و منطقه زمانی (Timezone) در لینوکس، ابزارهایی مانند date ،timedatectl و NTP استفاده میشوند. با دستور date میتوان تاریخ و زمان سیستم عامل را تغییر داد، اما تنظیمات منطقه زمانی را باید با timedatectl انجام داد. برای همگام‌سازی زمان با سرورهای جهانی، از NTP استفاده میشود که به صورت خودکار ساعت سیستم را با دقیق‌ ترین سرورها هماهنگ میکنه. با خرید vps لینوکس از بلوسرور میتونین از تنظیمات انجام بدید.

 

تفاوت date و timedatectl در لینوکس

هر دو دستور برای مدیریت زمان استفاده میشوند، اما تفاوت‌ های مهمی دارند:

 

ویژگیdatetimedatectl
تغییر زمان بصورت دستیبله، اما فقط موقتبله، و میتواند دائمی باشد
هماهنگی با NTP (Network Time Protocol)خیر، تغییرات ممکن است تغییر کندبله، می‌تواند NTP را کنترل کند
تنظیم منطقه زمانی (TimeZone)خیربله
دسترسی به اطلاعات جامع‌ تر (NTP, RTC, TimeZone)خیربله
تغییر زمان سخت‌ افزاری (RTC – Real Time Clock)خیربله

 

 

آموزش timedatectl در لینوکس

دستور timedatectl ابزاری برای مدیریت تاریخ، ساعت، منطقه زمانی و NTP در لینوکس است. برای مشاهده ساعت فعلی، وضعیت NTP و منطقه زمانی از دستور زیر استفاده میکنیم.

timedatectl

خروجی :

Local time: Wed 2025-02-19 15:30:00 +0330
Universal time: Wed 2025-02-19 12:00:00 UTC
RTC time: Wed 2025-02-19 12:00:00
Time zone: Asia/Tehran (IRDT, +0330)
System clock synchronized: yes
NTP service: active

 

تغییر ساعت و تاریخ با timedatectl

تنظیم تاریخ و زمان به مقدار دلخواه (مثلا ۱۹ فوریه ۲۰۲۵ ساعت ۱۵:۰۰):

sudo timedatectl set-time "2025-02-19 15:00:00"

تغییر منطقه زمانی (TimeZone) با timedatectl

sudo timedatectl set-timezone Asia/Tehran

 

فعال یا غیرفعال کردن NTP در timedatectl

فعال کردن NTP (برای هماهنگی خودکار با سرور های ساعت جهانی برای تنظیم خودکار و درست زمان)

sudo timedatectl set-ntp true

غیرفعال کردن NTP (برای تنظیم دستی ساعت)

sudo timedatectl set-ntp false

 

 

آموزش Date در لینوکس

با دستور زیر و از طریق date میتونین ساعت و تاریخ سیستم عامل لینوکسی با بصورت موقت عوض کنید. به جای تاریخ و ساعت زیر، باید تاریخ و ساعت امروز وارد کنید، البته با دسترسی sudo root باید اینکار انجام بشه. (اگر NTP فعال باشد، پس از مدتی ساعت به تنظیمات قبلی بر می گردد.)

sudo date -s "2025-02-19 15:00:00"

بعد از تنظیم هم دستور date وارد کنین تا تغییرات مشاهده کنید.

 

تنظیم فقط زمان بدون تغییر تاریخ

فقط ساعت، دقیقه و ثانیه را تغییر میدهد.

sudo date +%T -s "15:30:00"

 

تنظیم فقط تاریخ بدون تغییر زمان

فقط تاریخ را تغییر میدهد.

sudo date +%Y-%m-%d -s "2025-02-19"

 

فرمت‌ های پرکاربرد

فرمتتوضیح
%Yسال (۴ رقمی)
%mماه (۲ رقمی)
%dروز (۲ رقمی)
%Hساعت (۲۴ ساعته)
%Mدقیقه
%Sثانیه
%Aنام کامل روز (مثلاً Tuesday)
%Bنام کامل ماه (مثلاً February)

 

 

نکات مهم : تغییر ساعت بصورت دستی ممکن است بعد از ریبوت شدن سیستم توسط NTP (Network Time Protocol) بازنویسی شود، برای جلوگیری از این مشکل، می‌توانید NTP را غیرفعال کنید:

sudo systemctl stop systemd-timesyncd
sudo systemctl disable systemd-timesyncd

 

آموزش NTP در لینوکس

NTP (Network Time Protocol) پروتکلی برای هماهنگی خودکار ساعت سیستم عامل با سرورهای جهانی است.

برای نصب در Ubuntu/Debian دستور زیر وارد کنید:

sudo apt update
sudo apt install ntp -y

برای نصب در CentOS/RHEL دستور زیر وارد کنید:

sudo yum install ntp -y

 

فعالسازی و بررسی سرویس NTP

برای فعال کردن سرویس NTP و بررسی وضعیت آن دستور زیر وارد ترمینال کنید:

sudo systemctl enable --now ntp
timedatectl status

توجه :

  • با timedatectl میتونیم منطقه زمان (TimeZone) سیستم عامل تغییر بدیم، ولی با دستور date نمیتونیم اینکار بکنیم. دستور date فقط زمان و تاریخ لحظه‌ ای رو تغییر میده، اما تنظیمات TimeZone را تغییر نمیده.
  • ntp منطقه زمانی را تغییر نمیده، ntp فقط زمان سیستم را با سرورهای جهانی هماهنگ میکنه.

 

نتیجه :

برای تغییر منطقه زمانی، از timedatectl استفاده کنید.
برای تغییر ساعت و تاریخ، از date یا timedatectl استفاده کنید.
برای همگام‌ سازی خودکار ساعت، از ntp استفاده کنید.

 

دستور time در لینوکس

دستور time در لینوکس برای اندازه‌ گیری مدت‌ زمان اجرای یک فرمان یا برنامه استفاده میشود. این دستور زمان پردازش را در سه بخش نمایش میدهد:

  1. real (زمان واقعی) – کل مدت‌زمان اجرای برنامه، از شروع تا پایان.
  2. user (زمان پردازش CPU در حالت کاربر) – مقدار زمانی که پردازنده مستقیما برای اجرای کد برنامه صرف کرده است.
  3. sys (زمان پردازش CPU در حالت کرنل) – مقدار زمانی که پردازنده برای انجام وظایف سطح سیستم‌ عامل صرف کرده است.

مثال استفاده از time

time ls -l

خروجی :

real 0m0.002s 
user 0m0.001s 
sys 0m0.001s

دستور زیر مدت‌ زمان اجرای اسکریپت را اندازه‌ گیری میکنه.

time ./myscript.sh

 

دستور hwclock در لینوکس

hwclock برای مدیریت ساعت سخت‌ افزاری (RTC – Real Time Clock) استفاده میشه. این ساعت در مادربورد ذخیره شده و حتی هنگام خاموش بودن سیستم، زمان را نگهداری میکنه.

نمایش ساعت سخت‌ افزاری با hwclock

این دستور ساعت تنظیم‌ شده در BIOS/UEFI را نشان میده.

hwclock --show
یا
hwclock -r

 

تغییر دستی ساعت سخت‌ افزاری

این دستور ساعت سخت‌ افزاری را به مقدار مشخص‌ شده تغییر میده.

sudo hwclock --set --date="2025-02-19 15:00:00"