timedatectl: Linux sunucu saat senkronizasyonunu kontrol etme ve saat dilimini ayarlama

Test ortamıRHEL ailesiAlmaLinux 9.8systemd 252 · chrony 4.8root hesabıDebian 12 normal hesap2026-10-29 tarihinde kontrol edildi
Sistem bilgisi · ayar komutlarıtimedatectlKonum/usr/bin/timedatectl

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: no

Debian 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 timeSaat 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 timeAynı 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 timeDonanım saatinin (RTC) zamanıSaat dilimi olmadan görünür – RTC in local TZ no ise UTC zamanı
Time zoneAyarlı 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 servicetimedatectl'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 TZDonanı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 --show
2026-10-28 19:53:33.006788+00:00

Normal kullanıcı hesabıyla bağlanılan Debian 12 sunucusunda aynı komut donanım saatine erişemeden sona erdi.

/usr/sbin/hwclock --show
hwclock: 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/adjtime
0.0 0 0.0
0
UTC

Bir 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 show
Timezone=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 --value
Etc/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.

timedatectl komut simülatörüsystemd 252 · chrony 4.8
[root@server work]#
Yalnızca tarayıcınızda çalışır. Değiştirilen saat dilimi sayfa yenilenince başa (Etc/UTC) döner ve ↑↓ önceki komutları geri getirir.

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 NTPSynchronized
CanNTP=yes
NTP=yes
NTPSynchronized=yes

Saati 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 NTPSynchronized
CanNTP=no
NTP=no
NTPSynchronized=yes

ntpsec hizmetinin kendisi çalışıyordu.

systemctl is-active ntpsec
active

timedatectl'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.list
chronyd.service
rpm -qf /usr/lib/systemd/ntp-units.d/50-chronyd.list
chrony-4.8-10.el9.x86_64

Debian 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 directory
🖥️ timedatectlstatus, show, set-ntp
ntp-units.d/*.listtimedatectl'in açıp kapattığı senkronizasyon hizmetleri listesi
chronyd.serviceListede var → NTP service: active
ntpsec.serviceListede yok → NTP service: n/a

3️⃣ 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 sources
MS 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] +/-  312us

Baş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 tracking
Reference 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     : Normal

System 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 4

pool 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.7070

4️⃣ 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 -5
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
timedatectl list-timezones | wc -l
598

Liste uzun olduğu için bir adı ararken grep ile süzün.

timedatectl list-timezones | grep -i new_york
America/New_York

Saat 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/localtime
lrwxrwxrwx 1 root root 27 Sep 24 12:52 /etc/localtime -> /usr/share/zoneinfo/Etc/UTC

Listede olmayan bir ad, saat dilimi değişmeden hemen reddedildi.

timedatectl set-timezone Mars/Olympus
Failed 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 true

Liste 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 false
Failed to set ntp: NTP not supported

Saati 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 bad
Failed to parse time specification 'bad': Invalid argument

chrony kullanan bir sunucuda çok sapmış bir saati tek seferde düzeltmek için chronyc makestep kullanılır.

sudo chronyc makestep

makestep, 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

chrony ve ntpsec gibi NTP hizmetleri saati sürekli senkronize tuttuğu için rdate'i cron ile çalıştırmaya neredeyse hiç gerek yoktur. Kontrol edilen AlmaLinux 9 sunucusunda rdate kurulu değildi ve kurulabilir paketler listesinde de yoktu. Debian 12 sunucusunun deposunda rdate 1.11 paketi vardı ama kurulu değildi.

timesync-status yalnızca systemd-timesyncd için olan bir komuttur. chrony kullanan AlmaLinux 9 sunucusunda da ntpsec kullanan Debian 12 sunucusunda da Failed to query server hatasıyla sona erdi. Bu tür sunucularda senkronizasyon durumunu chronyc tracking veya ntpq -p ile kontrol edin.

Resmi kılavuz, donanım saatini yerel saatte tutmanın saat dilimi değiştiğinde veya yaz saati geçişlerinde sorun çıkarabileceğini açıklar. Bu yüzden mümkünse UTC'de tutmayı önerir; UTC'ye çeviren komut sudo timedatectl set-local-rtc 0'dır. Kontrol edilen iki sunucu da no (UTC) idi.

ℹ️ 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.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İnsan olduğunuzu kanıtlayın: 1   +   5   =