timedatectl: Linux sunucu saat senkronizasyonunu kontrol etme ve saat dilimini ayarlama
timedatectl, bir Linux sunucusunun sistem saatini, saat dilimini ve NTP saat senkronizasyonu durumunu gösteren ve değiştiren bir systemd komutudur. chrony kullanan bir AlmaLinux 9 sunucusunda ve ntpsec kullanan bir Debian 12 sunucusunda senkronizasyon durumu kontrol edildiğinde iki sunucunun da saati doğruydu, ancak NTP service satırı birinde active, diğerinde n/a olarak çıktı.
Aşağıdaki çıktılar, komutların iki sunucuda çalıştırılmasıyla elde edilen sonuçlardır. Yalnızca ana bilgisayar adları, IP adresleri ve paket sürüm numaraları örnek değerlerle değiştirildi; saati veya saat dilimini değiştiren komutlar canlı sunucuda çalıştırılmadı.
1️⃣ timedatectl kullanımı ve Linux sunucu saatini kontrol etme
timedatectl seçeneksiz çalıştırıldığında status eklenmiş haliyle aynı sonucu verir. Sistem saati ile donanım saatinin (RTC) zamanı, saat dilimi ve senkronizasyon durumu tek ekranda toplanır. Aşağıda Debian 12 sunucusundaki sonuç var.
timedatectl Local time: Wed 2026-10-28 19:49:57 UTC
Universal time: Wed 2026-10-28 19:49:57 UTC
RTC time: Wed 2026-10-28 19:49:57
Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
NTP service: n/a
RTC in local TZ: noDebian 12 sunucusunun saat dilimi Etc/UTC olduğu için Local time ve Universal time aynı saati gösterdi. Her satırın neyi gösterdiği ve iki sunucunun sonuçları aşağıdaki tabloda.
| Çıktı satırı | Gösterdiği | İki sunucunun sonuçları ve kontrol edilecek noktalar |
|---|---|---|
| Local time | Saat dilimi uygulanmış sistem saatinin şu anki zamanı | Saat dilimi değişince yalnızca bu satır ve date çıktısı yeni dilime geçer |
| Universal time | Aynı zamanın UTC karşılığı | Saat dilimi değişse de aynı kalır – Etc/UTC kullanan Debian 12 sunucusunda Local time ile aynı |
| RTC time | Donanım saatinin (RTC) zamanı | Saat dilimi olmadan görünür – RTC in local TZ no ise UTC zamanı |
| Time zone | Ayarlı saat dilimi, kısaltması ve UTC ile farkı | Değiştirirken list-timezones listesindeki bir adı kullanın |
| System clock synchronized | Çekirdeğin saati senkronize sayıp saymadığı | İki sunucuda da yes – no ise önce chronyc tracking veya ntpq -p ile referans sunucuyu kontrol edin |
| NTP service | timedatectl'in açıp kapattığı senkronizasyon hizmetinin çalışıp çalışmadığı | AlmaLinux 9 (chrony) active, Debian 12 (ntpsec) n/a – n/a, timedatectl'in tanımadığı bir hizmet demektir, systemctl ile kontrol edin |
| RTC in local TZ | Donanım saatinin yerel saatte tutulup tutulmadığı (no = UTC) | İki sunucuda da no – yes değerini UTC'ye çeviren komut set-local-rtc 0 |
Linux'ta iki saat vardır. Sistem saati açılıştan sonra çekirdeğin tuttuğu saattir; donanım saati ise sunucu kapalıyken bile zamanı tutan anakart saatidir.
Donanım saati hwclock ile doğrudan okunur. hwclock zamanı geçerli saat dilimine çevirerek yazar. AlmaLinux sunucusunda komutun önüne TZ=UTC eklenerek okunan sonuç, sonunda +00:00 olan bir UTC zamanıydı.
TZ=UTC hwclock --show2026-10-28 19:53:33.006788+00:00Normal kullanıcı hesabıyla bağlanılan Debian 12 sunucusunda aynı komut donanım saatine erişemeden sona erdi.
/usr/sbin/hwclock --showhwclock: Cannot access the Hardware Clock via any known method.
hwclock: Use the --verbose option to see the details of our search for an access method.RTC in local TZ satırı, /etc/adjtime dosyasının üçüncü satırıyla aynı ayardır. AlmaLinux sunucusunda üçüncü satır UTC idi; bu, donanım saatinin UTC'de tutulduğu anlamına gelir.
cat /etc/adjtime0.0 0 0.0
0
UTCBir betikte değer okurken status yerine show kullanın. Debian 12 sunucusunda aynı bilgiler ad=değer biçiminde, her satırda bir tane çıkar.
timedatectl showTimezone=Etc/UTC
LocalRTC=no
CanNTP=no
NTP=no
NTPSynchronized=yes
TimeUSec=Wed 2026-10-28 19:49:57 UTC
RTCTimeUSec=Wed 2026-10-28 19:49:57 UTC-p ile özellikleri seçip --value eklerseniz adlar olmadan yalnızca değerler kalır. Yalnızca saat dilimi adını almak için bu biçimi kullanın.
timedatectl show -p Timezone --valueEtc/UTC🔲 timedatectl komut simülatörü
Aşağıdaki simülatörde saati kontrol etme, saat dilimlerini listeleme, saat dilimini değiştirme ve chronyc ile senkronizasyonu kontrol etme komutlarını kendiniz yazabilirsiniz.
2️⃣ Linux sunucu saat senkronizasyonu durumu
System clock synchronized satırı çekirdeğin saati senkronize sayıp saymadığını, NTP service satırı ise timedatectl'in açıp kapatabildiği senkronizasyon hizmetinin çalışıp çalışmadığını gösterir. show ile aynı değerler NTPSynchronized ve NTP olarak çıkar; CanNTP ise açılıp kapatılabilen bir senkronizasyon hizmeti olup olmadığını gösterir.
chrony kullanan AlmaLinux 9 sunucusunda üç değerin hepsi yes idi.
timedatectl show -p CanNTP -p NTP -p NTPSynchronizedCanNTP=yes
NTP=yes
NTPSynchronized=yesSaati ntpsec ile ayarlayan Debian 12 sunucusunda yalnızca NTPSynchronized yes idi; CanNTP ve NTP no idi. Bu yüzden bu sunucunun status ekranında NTP service satırı n/a olarak çıktı.
timedatectl show -p CanNTP -p NTP -p NTPSynchronizedCanNTP=no
NTP=no
NTPSynchronized=yesntpsec hizmetinin kendisi çalışıyordu.
systemctl is-active ntpsecactivetimedatectl'in tanıdığı senkronizasyon hizmetleri yalnızca ntp-units.d klasöründeki liste dosyalarına yazılı olanlardır ve dağıtım paketleri bu dosyaları /usr/lib/systemd/ntp-units.d/ içine koyar (resmi kılavuza göre). AlmaLinux 9 sunucusunda chrony paketinin kurduğu bir liste dosyası vardı ve içinde tek satır olarak chronyd.service yazıyordu.
cat /usr/lib/systemd/ntp-units.d/50-chronyd.listchronyd.servicerpm -qf /usr/lib/systemd/ntp-units.d/50-chronyd.listchrony-4.8-10.el9.x86_64Debian 12 sunucusunda bu klasör yoktu. ntpsec listede olmayan bir hizmet olduğu için timedatectl saatin senkronize olduğunu bilse de bu hizmeti açıp kapatamıyordu.
ls /usr/lib/systemd/ntp-units.d/ls: cannot access '/usr/lib/systemd/ntp-units.d/': No such file or directory3️⃣ chronyc ile saat senkronizasyonunu kontrol etme
chrony kullanan bir sunucuda saatin hangi zaman sunucusuna göre ayarlandığı chronyc ile kontrol edilir. sources, chronyd'nin sorguladığı zaman sunucularını ve durumlarını satır satır yazar.
chronyc sourcesMS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^- 192.0.2.10 2 10 377 943 +272us[ +275us] +/- 55ms
^- ntp1.example.com 2 10 377 80 -28us[ -32us] +/- 3655us
^- 198.51.100.33 3 10 257 384 -151us[ -156us] +/- 97ms
^- 198.51.100.82 3 10 177 532 +157us[ +149us] +/- 45ms
^* 192.0.2.123 3 4 377 2 -21us[ -23us] +/- 312usBaştaki ^ bir zaman sunucusunu, ikinci karakterdeki * saatin şu anda göre ayarlandığı referans sunucuyu, - ise hesaba katılmayan aday sunucuyu gösterir. Referans sunucudaki Poll 4, 2 üzeri 4 yani 16 saniyede bir sorgulandığı anlamına gelir; Reach 377 ise son sekiz yanıtın hepsinin alındığını gösterir.
tracking, sistem saatinin referans sunucunun zamanından ne kadar saptığını yazar.
chronyc trackingReference ID : C000027B (192.0.2.123)
Stratum : 4
Ref time (UTC) : Wed Oct 28 19:50:21 2026
System time : 0.000002422 seconds slow of NTP time
Last offset : -0.000002098 seconds
RMS offset : 0.000000981 seconds
Frequency : 6.348 ppm slow
Residual freq : -0.001 ppm
Skew : 0.017 ppm
Root delay : 0.000300815 seconds
Root dispersion : 0.000150780 seconds
Update interval : 16.3 seconds
Leap status : NormalSystem time satırına göre sistem saati NTP zamanından 0.000002422 saniye gerideydi ve Leap status Normal idi. 16.3 saniyelik Update interval, son iki saat güncellemesi arasındaki aralıktır.
Hangi sunucuların sorgulanacağını /etc/chrony.conf içindeki pool ve server satırları belirler. Yorumlar ve boş satırlar çıkarılıp yalnızca ayar satırları bırakıldığında şöyle görünür.
grep -v "^#" /etc/chrony.conf | grep -v "^$"pool 2.almalinux.pool.ntp.org iburst
sourcedir /run/chrony-dhcp
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
keyfile /etc/chrony.keys
ntsdumpdir /var/lib/chrony
leapsectz right/UTC
logdir /var/log/chrony
server 192.0.2.123 prefer iburst minpoll 4 maxpoll 4pool satırı AlmaLinux NTP havuzunu sorgular; son server satırındaki prefer ise chronyd'nin bu sunucuyu diğerlerinden önce seçmesini sağlayan bir seçenektir. makestep 1.0 3, chronyd başladıktan sonraki ilk üç güncellemede 1 saniyeden fazla sapan saati tek adımda düzelten, sonrasında ise saati biraz hızlı veya yavaş çalıştırarak yavaş yavaş ayarlayan bir ayardır. rtcsync, çekirdeğin sistem zamanını 11 dakikada bir donanım saatine yazmasını sağlar (resmi belgelere göre).
ntpsec kullanan Debian 12 sunucusunda aynı bilgiler ntpq -p ile kontrol edildi. Baştaki * referans sunucudur ve üç sunucunun hepsi 1024 saniyede bir sorgulanıyordu.
ntpq -p remote refid st t when poll reach delay offset jitter
===============================================================================
+203.0.113.43 198.51.100.28 2 u 835 1024 377 184.6893 -0.1018 1.4879
+203.0.113.44 198.51.100.27 2 u 547 1024 377 183.0827 -2.4227 4.0957
*ntp2.example.co 198.51.100.40 2 u 440 1024 377 177.4670 -0.5814 1.70704️⃣ timedatectl ile saat dilimini değiştirme
Saat dilimi adları list-timezones ile görülür. Çoğu Kıta/Şehir biçimindedir, her satırda bir tane çıkar ve iki sunucuda da 598 taneydi.
timedatectl list-timezones | head -5Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmaratimedatectl list-timezones | wc -l598Liste uzun olduğu için bir adı ararken grep ile süzün.
timedatectl list-timezones | grep -i new_yorkAmerica/New_YorkSaat dilimi, set-timezone'dan sonra listeden bir ad yazılarak değiştirilir. Bu komut /etc/localtime bağlantısını yeni saat dilimi dosyasıyla değiştirdiği için normal kullanıcı hesabında sudo ile çalıştırılır.
sudo timedatectl set-timezone America/New_York/etc/localtime'ın bir saat dilimi dosyasına bağlantı olup olmadığı ls -l ile kontrol edilir.
ls -l /etc/localtimelrwxrwxrwx 1 root root 27 Sep 24 12:52 /etc/localtime -> /usr/share/zoneinfo/Etc/UTCListede olmayan bir ad, saat dilimi değişmeden hemen reddedildi.
timedatectl set-timezone Mars/OlympusFailed to set time zone: Invalid or not installed time zone 'Mars/Olympus'Saat dilimini değiştirmek sistem saatinin zamanını değiştirmez; yalnızca Local time ve date komutunun çıktısı yeni dilimde görünür. Donanım saatini UTC'de tutan bir sunucuda donanım saati de değişmez (resmi kılavuza göre).
5️⃣ timedatectl ile NTP'yi açma ve saati elle ayarlama
set-ntp true, senkronizasyon hizmetleri listesindeki ilk hizmeti başlatır ve açılışta da başlamasını sağlar. false ise listedeki hizmetleri durdurur ve açılışta başlamamalarını sağlar (resmi kılavuza göre).
sudo timedatectl set-ntp trueListe dosyası olmayan Debian 12 sunucusunda komut, mevcut değerle aynı olan false verildiğinde bile NTP not supported ile sona erdi. ntpsec gibi listede olmayan bir hizmet doğrudan systemctl ile başlatılır ve durdurulur.
timedatectl set-ntp falseFailed to set ntp: NTP not supportedSaati elle ayarlamak için set-time'dan sonra tarih ve saati yazın. Bu komut sistem saatiyle birlikte donanım saatini de ayarlar.
sudo timedatectl set-time '2026-10-28 20:00:00'Debian 12 sunucusunda biçimi yanlış bir değer girildiğinde saat değişmeden hatayla sona erdi.
timedatectl set-time badFailed to parse time specification 'bad': Invalid argumentchrony kullanan bir sunucuda çok sapmış bir saati tek seferde düzeltmek için chronyc makestep kullanılır.
sudo chronyc makestepmakestep, yavaş yavaş düzeltilen kalan farkı bırakır ve sistem saatini bu fark kadar hemen atlatır. Resmi belgeler ani saat değişiminin bazı yazılımları etkileyebileceği konusunda uyardığı için, yalnızca saat yavaşça düzeltilemeyecek kadar saptığında kullanın.
🔢 SSS & önerilen içerikler
Ayarlar · locale
[Linux] localectl komutu
Sistem dilini (locale) ve klavye düzenini gösteren ve değiştiren localectl komutu.
Sistem bilgisi
Linux uptime komutu (sunucu çalışma süresi & 1, 5, 15 dakikalık ortalama yük)
Sunucunun ne kadar süredir açık olduğunu ve 1, 5 ve 15 dakikalık ortalama yükü gösteren uptime komutu.
Hizmet yönetimi
Apache başlatma, durdurma ve yeniden başlatma: komutlar ve graceful farkı
Red Hat ailesi sistemlerde ve Ubuntu'da Apache'yi başlatma, durdurma, yeniden başlatma ve hizmet durumunu kontrol etme komutları.
ℹ️ Satış ortaklığı bildirimi
Bu sitenin içeriklerinde satış ortaklığı bağlantıları bulunur. Bir ziyaretçi bu bağlantılar üzerinden ürün veya hizmet satın alırsa bu site satıcıdan komisyon alır. Bu süreçte alıcının ödediği tutar (kampanya indirimlerinde tutar düşer↓) artmaz. Yayımlanan fiyat, indirim ve stok bilgileri yazının yazıldığı zamana aittir ve gerçek durumdan farklı olabilir; bu yüzden satın almadan önce son bilgiyi satıcıdan kontrol etmenizi rica ederiz. Ürünler kendi ölçütlerimize göre seçilir ve değerlendirilir; komisyon alınıp alınmaması tanıtım sırasını veya değerlendirme içeriğini etkilemez.