آموزش Date و time و ntp در لینوکس | آموزش تنظیم Timezone
تنظیم ساعت، تاریخ و زمان لینوکس
برای تنظیم تاریخ، زمان و منطقه زمانی (Timezone) در لینوکس، ابزارهایی مانند date ،timedatectl و NTP استفاده میشوند. با دستور date میتوان تاریخ و زمان سیستم عامل را تغییر داد، اما تنظیمات منطقه زمانی را باید با timedatectl انجام داد. برای همگامسازی زمان با سرورهای جهانی، از NTP استفاده میشود که به صورت خودکار ساعت سیستم را با دقیق ترین سرورها هماهنگ میکنه. با خرید vps لینوکس از بلوسرور میتونین از تنظیمات انجام بدید.
تفاوت date و timedatectl در لینوکس
هر دو دستور برای مدیریت زمان استفاده میشوند، اما تفاوت های مهمی دارند:
ویژگی | date | timedatectl |
---|---|---|
تغییر زمان بصورت دستی | بله، اما فقط موقت | بله، و میتواند دائمی باشد |
هماهنگی با 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 در لینوکس برای اندازه گیری مدت زمان اجرای یک فرمان یا برنامه استفاده میشود. این دستور زمان پردازش را در سه بخش نمایش میدهد:
- real (زمان واقعی) – کل مدتزمان اجرای برنامه، از شروع تا پایان.
- user (زمان پردازش CPU در حالت کاربر) – مقدار زمانی که پردازنده مستقیما برای اجرای کد برنامه صرف کرده است.
- 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"