فصل هفتم — جلسه آخر - قسمت هفتاد و دوم 🐧
مدیریت زمان در لینوکس
————————————
زمان در لینوکس فقط برای نمایش ساعت نیست؛ برای Logها، Cron، Certificateها، احراز هویت، Kerberos و ارتباط بین سرورها خیلی مهم است.
مثلاً اگر ساعت سرور ۱۰ دقیقه اشتباه باشد، ممکن است بررسی Logها یا حتی بعضی Authenticationها به مشکل بخورد.
==============
1️⃣ دو نوع ساعت در سیستم
در لینوکس با دو مفهوم مهم روبهرو هستیم:
🖥 Hardware Clock
ساعتی که داخل سختافزار/RTC سیستم نگهداری میشود.
Hardware Clock
→ ساعت سختافزاری
حتی وقتی سیستمعامل خاموش است، RTC میتواند زمان را نگه دارد.
———————-
System Clock
ساعتی که Kernel لینوکس هنگام اجرای سیستم استفاده میکند.
System Clock
→ ساعت مورد استفاده Linux
پس:
Hardware Clock
↓
Linux Boot
↓
System Clock
————————-
2️⃣ hwclock
برای مشاهده و مدیریت Hardware Clock:
hwclock
مثلاً:
sudo hwclock --show
→ نمایش ساعت سختافزاری.
برای نمایش دقیقتر:
sudo hwclock --verbose
تغییر Hardware Clock
مثلاً:
sudo hwclock --systohc
یعنی:
برعکس:
sudo hwclock --hctosys
یعنی:
🧠 حفظ کن:
systohc
system → hardware
hctosys
hardware → system
————————————
3️⃣ timedatectl
فرمان اصلی مدیریت زمان در سیستمهای جدید Linux:
timedatectl
وضعیت زمان:
timedatectl status
مثلاً میبینی:
Local time
Universal time
RTC time
Time zone
System clock synchronized
NTP service
RTC in local TZ
—————————-
4️⃣ تنظیم Timezone
لیست Timezoneها:
timedatectl list-timezones
مثلاً:
timedatectl list-timezones | grep Tehran
تنظیم:
sudo timedatectl set-timezone Asia/Tehran
بعد:
timedatectl
را بزن.
—————————-
5️⃣ تنظیم دستی ساعت
اگر NTP فعال نباشد میتوانی ساعت را دستی تنظیم کنی:
sudo timedatectl set-time "18:30:00"
یا:
sudo timedatectl set-time "2026-08-26 18:30:00"
اما در Server معمولاً بهتر است ساعت را دستی تنظیم نکنی و از NTP استفاده کنی.
——————————-
6️⃣ NTP چیست؟
NTP مخفف:
است.
وظیفهاش این است که ساعت سیستم را از طریق شبکه با یک Time Server هماهنگ کند.
مثلاً:
Linux Server
↓
NTP Client
↓
NTP Server
↓
زمان دقیق
مثلاً چند سرور:
server1 → 18:30:01
server2 → 18:30:02
server3 → 18:30:01
NTP کمک میکند ساعت سیستمها با یک مرجع زمانی هماهنگ بماند.
————————
7️⃣ چرا NTP مهم است؟
فرض کن 100 سرور داری.
اگر هر کدام ساعت متفاوتی داشته باشند:
Server 1 → 12:00
Server 2 → 12:05
Server 3 → 11:58
Server 4 → 12:10
حالا Logها را بررسی کنی، ترتیب واقعی اتفاقات ممکن است گیجکننده شود.
NTP باعث میشود سرورها زمان هماهنگتری داشته باشند.
—————————————
8️⃣ ntpsec چیست؟
احتمالاً منظورت از nptsec همان:
NTPsec
است.
NTPsec یک پیادهسازی مدرنتر و سختگیریشدهتر از NTP است که برای امنیت و سادگی بیشتر کد طراحی شده است.
اما در Linuxهای امروزی ممکن است اصلاً NTPsec استفاده نکنی.
دو گزینه بسیار رایج:
chrony
systemd-timesyncd
هستند.
در بسیاری از سرورهای RHEL/Fedora/AlmaLinux، chrony گزینه رایج است.
———————
9️⃣ Chrony چیست؟
Chrony یک مجموعه ابزار برای Synchronization زمان است.
معمولاً شامل:
chronyd
chronyc
است.
chronyd:
chronyc:
بررسی وضعیت:
chronyc tracking
یا:
chronyc sources
——————-
🔟 فعال کردن NTP با timedatectl
در سیستمهایی که سرویس NTP مناسب را فراهم کردهاند:
sudo timedatectl set-ntp true
بررسی:
timedatectl status
ممکن است ببینی:
System clock synchronized: yes
NTP service: active
یعنی:
NTP فعال است
↓
ساعت سیستم
↓
با Time Server هماهنگ میشود
—————————
1️⃣1️⃣ یک مثال واقعی
فرض کن سرور Ubuntu داری و ساعتش اشتباه است.
اول:
timedatectl
بررسی میکنی.
اگر Timezone اشتباه بود:
sudo timedatectl set-timezone Asia/Tehran
بعد:
sudo timedatectl set-ntp true
و دوباره:
timedatectl
بررسی میکنی که:
System clock synchronized: yes
باشد.
مدیریت زمان در لینوکس
————————————
زمان در لینوکس فقط برای نمایش ساعت نیست؛ برای Logها، Cron، Certificateها، احراز هویت، Kerberos و ارتباط بین سرورها خیلی مهم است.
مثلاً اگر ساعت سرور ۱۰ دقیقه اشتباه باشد، ممکن است بررسی Logها یا حتی بعضی Authenticationها به مشکل بخورد.
==============
1️⃣ دو نوع ساعت در سیستم
در لینوکس با دو مفهوم مهم روبهرو هستیم:
🖥 Hardware Clock
ساعتی که داخل سختافزار/RTC سیستم نگهداری میشود.
Hardware Clock
→ ساعت سختافزاری
حتی وقتی سیستمعامل خاموش است، RTC میتواند زمان را نگه دارد.
———————-
System Clock
ساعتی که Kernel لینوکس هنگام اجرای سیستم استفاده میکند.
System Clock
→ ساعت مورد استفاده Linux
پس:
Hardware Clock
↓
Linux Boot
↓
System Clock
————————-
2️⃣ hwclock
برای مشاهده و مدیریت Hardware Clock:
hwclock
مثلاً:
sudo hwclock --show
→ نمایش ساعت سختافزاری.
برای نمایش دقیقتر:
sudo hwclock --verbose
تغییر Hardware Clock
مثلاً:
sudo hwclock --systohc
یعنی:
ساعت System را روی Hardware Clock بنویس.
برعکس:
sudo hwclock --hctosys
یعنی:
ساعت Hardware Clock را روی System Clock تنظیم کن.
🧠 حفظ کن:
systohc
system → hardware
hctosys
hardware → system
————————————
3️⃣ timedatectl
فرمان اصلی مدیریت زمان در سیستمهای جدید Linux:
timedatectl
وضعیت زمان:
timedatectl status
مثلاً میبینی:
Local time
Universal time
RTC time
Time zone
System clock synchronized
NTP service
RTC in local TZ
—————————-
4️⃣ تنظیم Timezone
لیست Timezoneها:
timedatectl list-timezones
مثلاً:
timedatectl list-timezones | grep Tehran
تنظیم:
sudo timedatectl set-timezone Asia/Tehran
بعد:
timedatectl
را بزن.
—————————-
5️⃣ تنظیم دستی ساعت
اگر NTP فعال نباشد میتوانی ساعت را دستی تنظیم کنی:
sudo timedatectl set-time "18:30:00"
یا:
sudo timedatectl set-time "2026-08-26 18:30:00"
اما در Server معمولاً بهتر است ساعت را دستی تنظیم نکنی و از NTP استفاده کنی.
——————————-
6️⃣ NTP چیست؟
NTP مخفف:
Network Time Protocol
است.
وظیفهاش این است که ساعت سیستم را از طریق شبکه با یک Time Server هماهنگ کند.
مثلاً:
Linux Server
↓
NTP Client
↓
NTP Server
↓
زمان دقیق
مثلاً چند سرور:
server1 → 18:30:01
server2 → 18:30:02
server3 → 18:30:01
NTP کمک میکند ساعت سیستمها با یک مرجع زمانی هماهنگ بماند.
————————
7️⃣ چرا NTP مهم است؟
فرض کن 100 سرور داری.
اگر هر کدام ساعت متفاوتی داشته باشند:
Server 1 → 12:00
Server 2 → 12:05
Server 3 → 11:58
Server 4 → 12:10
حالا Logها را بررسی کنی، ترتیب واقعی اتفاقات ممکن است گیجکننده شود.
NTP باعث میشود سرورها زمان هماهنگتری داشته باشند.
—————————————
8️⃣ ntpsec چیست؟
احتمالاً منظورت از nptsec همان:
NTPsec
است.
NTPsec یک پیادهسازی مدرنتر و سختگیریشدهتر از NTP است که برای امنیت و سادگی بیشتر کد طراحی شده است.
اما در Linuxهای امروزی ممکن است اصلاً NTPsec استفاده نکنی.
دو گزینه بسیار رایج:
chrony
systemd-timesyncd
هستند.
در بسیاری از سرورهای RHEL/Fedora/AlmaLinux، chrony گزینه رایج است.
———————
9️⃣ Chrony چیست؟
Chrony یک مجموعه ابزار برای Synchronization زمان است.
معمولاً شامل:
chronyd
chronyc
است.
chronyd:
سرویس Daemon مربوط به زمان است.
chronyc:
ابزار Command Line برای بررسی و مدیریت Chrony است.
بررسی وضعیت:
chronyc tracking
یا:
chronyc sources
——————-
🔟 فعال کردن NTP با timedatectl
در سیستمهایی که سرویس NTP مناسب را فراهم کردهاند:
sudo timedatectl set-ntp true
بررسی:
timedatectl status
ممکن است ببینی:
System clock synchronized: yes
NTP service: active
یعنی:
NTP فعال است
↓
ساعت سیستم
↓
با Time Server هماهنگ میشود
—————————
1️⃣1️⃣ یک مثال واقعی
فرض کن سرور Ubuntu داری و ساعتش اشتباه است.
اول:
timedatectl
بررسی میکنی.
اگر Timezone اشتباه بود:
sudo timedatectl set-timezone Asia/Tehran
بعد:
sudo timedatectl set-ntp true
و دوباره:
timedatectl
بررسی میکنی که:
System clock synchronized: yes
باشد.