دستور آپدیت سرور لینوکس و تشخیص نوع سیستم عامل سرور
مقدمه
ساعت دقیق سیستم و داشتن یک رویهٔ منظم برای بهروزرسانی نرمافزارها از ارکان مدیریت سرورهای لینوکسی هستند. ساعت نادرست میتواند به مشکلات لاگ، گواهیهای TLS، هماهنگی توزیعهای توزیعشده و سرویسهای زمانحساس منجر شود. همینطور نگهداری سیستم با آخرین وصلهها برای امنیت و پایداری حیاتی است. این مقاله نحوهٔ بررسی و اصلاح ساعت سیستم، همگامسازی آن با سرورهای زمان (NTP) و بررسی نسخهٔ فعلی سیستمعامل را در توزیعهای رایج شرح میدهد.
کلیات: مفاهیم و ابزارهای مرتبط
NTP (Network Time Protocol): پروتکلی برای همگامسازی ساعت با سرورهای مرجع زمان.
chrony: پیادهسازی مدرن NTP مناسب برای سرور و کلاینت، سریع در همگامسازی.
ntpd (ntp package): پیادهسازی کلاسیک NTP.
systemd-timesyncd: سرویس سبک برای همگامسازی زمان که همراه systemd عرضه میشود.
timedatectl: ابزار systemd برای مشاهده و تنظیم زمان، تاریخ، منطقهٔ زمانی و وضعیت همگامسازی.
hwclock: برای خواندن/نوشتن ساعت سختافزاری (RTC).
دستورات عمومی که در ادامه استفاده خواهند شد:
timedatectl status date hwclock --show chronyc tracking یا chronyc sources (برای chrony) ntpq -p یا ntpstat (برای ntpd) timedatectl set-timezone Region/City sudo apt update && sudo apt upgrade (Debian/Ubuntu) sudo yum update یا sudo dnf upgrade (CentOS/RHEL/Fedora) sudo pacman -Syu (Arch) sudo zypper refresh && sudo zypper update (openSUSE)
مشاهدهٔ زمان فعلی و وضعیت همگامسازی (تمام توزیعها)
نمایش زمان سیستم:
دستور:
date
خروجی: زمان و منطقهٔ زمانی فعلی (مثلاً “Sat Oct 18 12:34:56 UTC 2025”).
مشاهدهٔ وضعیت systemd و همگامسازی:
دستور:
timedatectl status
موارد مهم در خروجی:
Local time، Universal time
RTC time
Time zone
NTP enabled: yes/no
NTP synchronized: yes/no
اگر systemd نصب است، این نقطهٔ شروع است.
بررسی ساعت سختافزاری (RTC / BIOS clock):
دستور:
sudo hwclock --show
توضیح: hwclock ساعت سختافزاری را نمایش میدهد؛ در صورت اختلاف با زمان سیستم، میتوان آن را با hwclock –systohc یا hwclock –hctosys تنظیم کرد.
پیکربندی و استفاده از systemd-timesyncd
مناسب برای سیستمهایی که فقط همگامسازی ساده میخواهند و systemd دارند (Ubuntu، Debian جدید، Fedora، CentOS 8+ با systemd).
فعالسازی و شروع:
sudo systemctl enable --now systemd-timesyncd
بررسی وضعیت:
timedatectl status
یا
sudo systemctl status systemd-timesyncd
برای استفاده از سرورهای NTP دلخواه، فایل /etc/systemd/timesyncd.conf را ویرایش کنید و سپس سرویس را ریاستارت کنید:
sudo nano /etc/systemd/timesyncd.conf # اضافه یا اصلاح: NTP=pool.ntp.org 0.pool.ntp.org sudo systemctl restart systemd-timesyncd
chrony — توصیهشده برای سرورها و محیطهای ابری
نصب:
Debian/Ubuntu:
sudo apt update sudo apt install -y chrony
CentOS/RHEL (7/8):
sudo yum install -y chrony
یا با dnf در نسخههای جدید:
sudo dnf install -y chrony
Fedora:
sudo dnf install -y chrony
Arch:
sudo pacman -Syu chrony
openSUSE:
sudo zypper install -y chrony
فعالسازی و شروع:
sudo systemctl enable --now chronyd
بررسی وضعیت و منابع:
chronyc tracking chronyc sources
فایل پیکربندی: /etc/chrony/chrony.conf — میتوانید سرورهای pool یا NTP خاص اضافه کنید، نمونه:
pool 2.pool.ntp.org iburst server 0.ir.pool.ntp.org iburst
همگامسازی فوری:
sudo chronyc makestep
ntpd (پیادهسازی کلاسیک NTP)
نصب:
Debian/Ubuntu:
sudo apt update sudo apt install -y ntp
CentOS/RHEL:
sudo yum install -y ntp sudo systemctl enable --now ntpd
بررسی وضعیت:
ntpq -p ntpstat
پیکربندی در /etc/ntp.conf
بررسی و تغییر منطقهٔ زمانی
لیست مناطق زمانی:
timedatectl list-timezones | grep Tehran
تنظیم منطقه زمانی (مثال تهران):
sudo timedatectl set-timezone Asia/Tehran
تأیید:
timedatectl status date
همگامسازی ساعت سختافزاری با زمان سیستم
نوشتن زمان سیستم به RTC:
sudo hwclock --systohc
بارگذاری زمان RTC به سیستم:
sudo hwclock --hctosys
بررسی نسخهٔ سیستمعامل و کرنل (تمام توزیعها)
بررسی اطلاعات توزیع:
فایلهای استاندارد:
cat /etc/os-release
یا
lsb_release -a
/etc/*release* و /etc/issue نیز مفیدند.
خروجی /etc/os-release نمونه:
NAME=”Ubuntu” VERSION=”22.04 LTS (Jammy Jellyfish)”
دستورات خاص توزیع:
Debian/Ubuntu:
lsb_release -a cat /etc/lsb-release
CentOS/RHEL:
cat /etc/redhat-release cat /etc/centos-release
Fedora:
cat /etc/fedora-release
Arch:
cat /etc/arch-release
openSUSE:
cat /etc/os-release
بررسی کرنل:
uname -r uname -a
یا برای اطلاعات بیشتر:
hostnamectl
hostnamectl نشان میدهد: Operating System، Kernel، Architecture.
بهروزرسانی سیستم در توزیعهای مختلف (دستورات و نکات)
نکتهٔ کلی: قبل از بهروزرسانی، پشتیبانگیری از فایلهای حیاتی و چک کردن فضای دیسک را فراموش نکنید. در سرورها، بهتر است ابتدا در محیط آزمایشی تست کنید.
Debian / Ubuntu (APT)
بهروزرسانی فهرست بستهها و نصب بهروزرسانیها:
sudo apt update sudo apt upgrade -y
برای بهروزرسانی کامل شامل تغییرات بستهها (Dist-upgrade / full-upgrade):
sudo apt full-upgrade -y
پاکسازی بستههای اضافی:
sudo apt autoremove -y sudo apt autoclean
نسخههای LTS و نگهداری:
برای ارتقا به نسخهٔ جدید توزیع (مثلاً 20.04 -> 22.04):
sudo do-release-upgrade
CentOS / RHEL (YUM / DNF)
CentOS 7 (yum):
sudo yum update -y
CentOS 8 / RHEL 8+ (dnf ممکن است موجود باشد):
sudo dnf upgrade --refresh -y
نکته: برای توزیعهای Enterprise، از ابزارهای مدیریت بسته سازمانی و مخازن داخلی استفاده کنید؛ قبل از بهروزرسانی kernel ممکن است نیاز به ریبوت باشد:
sudo reboot
بررسی بستههای منقضی یا وابستگی:
sudo yum check
Fedora
sudo dnf upgrade --refresh -y sudo dnf autoremove -y
ارتقا بین نسخههای اصلی Fedora با dnf system-upgrade:
sudo dnf install dnf-plugin-system-upgrade sudo dnf system-upgrade download --releasever=XX sudo dnf system-upgrade reboot
Arch Linux (rolling release)
sudo pacman -Syu
همیشه قبل از ارتقا آرشیو pacman را بررسی کنید و PKGBUILD و اطلاعیههای انتشار را بخوانید.
openSUSE (zypper)
sudo zypper refresh sudo zypper update -y sudo zypper dup # برای تغییر نسخه/آپگرید بین نسخهها
توزیعهای مبتنی بر Debian/Ubuntu (مثل Linux Mint، Pop!_OS)
معمولاً همان دستورات apt اعمال میشود.
نکات عملی و عیبیابی
اگر timedatectl نشان میدهد NTP enabled: no، میتوانید آن را فعال کنید یا chrony/ntpd نصب نمایید.
اختلاف زیاد ساعت: اگر اختلاف ساعت بیش از چند دقیقه است، chrony makestep یا ntpd –m -g را استفاده کنید تا سریع اصلاح شود.
لاگها:
systemd-timesyncd: journalctl -u systemd-timesyncd chrony: journalctl -u chronyd یا /var/log/chrony/* ntpd: journalctl -u ntpd یا /var/log/syslog /var/log/messages
خطاهای SELinux یا فایروال ممکن است مانع همگامسازی شوند — بررسی کنید پورت NTP (UDP 123) باز باشد.
در ماشینهای مجازی/ابری: برخی زیرساختها (مثل AWS) ممکن است ساعت را از hypervisor تزریق کنند؛ برای جلوگیری از درگیری، معمولاً از chrony با پیکربندی مناسب استفاده کنید.
نمونهٔ چکلیست عملی برای یک سرور جدید (پیشنهادی)
بررسی تاریخ/زمان:
date timedatectl status
تنظیم منطقه زمانی:
timedatectl set-timezone Asia/Tehran
نصب و فعالسازی chrony:
apt/dnf/yum/pacman install chrony systemctl enable --now chronyd chronyc tracking
نوشتن زمان به RTC:
sudo hwclock --systohc
بهروزرسانی کامل سیستم:
دستور متناسب با توزیع (مثلاً apt full-upgrade -y)
ریبوت در صورت نیاز و بررسی کرنل:
reboot uname -r
خلاصهٔ سریع (چکفهرست)
مشاهده زمان:
date، timedatectl status
همگامسازی ساده:
systemd-timesyncd (systemctl enable --now systemd-timesyncd)
همگامسازی توصیهشده برای سرورها:
chrony (chronyc tracking)
ساعت سختافزاری:
hwclock --show / --systohc
بررسی نسخهٔ توزیع:
cat /etc/os-release lsb_release -a
بررسی کرنل:
uname -r
بهروزرسانی بستهها:
apt / yum / dnf / pacman / zypper مطابق توزیع





قوانین ارسال دیدگاه
لطفاً در ارسال دیدگاه از کلمات مناسب استفاده کنید. ارسال اسپم ممنوع است.