systemd-timesyncd (Türkçe)

From ArchWiki

Çeviri Durumu: Bu makale, Systemd-timesyncd makalesinin çevirisidir. Son çeviri tarihi (yıl-ay-gün şeklinde): 2024-08-26. Eğer makalenin İngilizce sürümünde değişiklik yapılmış ise çevirinin senkronize edilmesine yardımcı olabilirsiniz. Çevirmenliğe dair bilgi edinmek için Telegram grubumuzu ziyaret edebilirsiniz. Çevrilmiş tüm makelelere buradan erişebilirsiniz.

systemd e-posta listesinden:

systemd-timesyncd, sistem saatini sistem ağında senkronize hale getirebilmek için eklenmiş bir hayalet programdır. Program bir SNTP istemcisi sağlar. chrony gibi NTP istemcilerine veya NTP referans sunucusuna kıyasla bu yöntem sadece kullanıcı tarafında hizmet sunar ve NTP'nin zorluklarıyla uğraşmaz, sadece bir sunucudan güncel saatin bilgisini edinip yerel saati o saate denk getirmeye çalışır. Eğer herhangi bir ağdaki istemcilere NTP sunmayacaksanız veya yerel donanım saatlerine bağlanmak istemiyorsanız bu basit NTP istemcisi çoğu kurulum için fazlasıyla yeterli olacaktır. Servis minimal düzeyde yetki ile çalışmaktadır, sadece ağ bağlantısı sağlandığında beraber çalışabilmesi için networkd'ye bağlanmıştır. Servis, her yeni NTP senkronizasyonu edinildiğinde mevcut saati diske kaydeder ve bunu, Raspberry Pi ve gömülü cihazlar gibi RTC'si olmayan sistemlere uyacak şekilde sistem saatini açılış sırasında düzeltmek ve her zaman doğru olmasa da zamanın tekdüze ilerlediğinden emin olmak için kullanır. Bu servisten yararlanabilmek için systemd kurulumu sırasında "systemd-timesync" adıyla yeni bir kullanıcı ve grup oluşturulmalıdır.

Yapılandırma

systemd-timesyncd başlatılırken /etc/systemd/timesyncd.conf dizinindeki yapılandırma dosyasını okuyacaktır. Bu dosya şöyle gözükmektedir:

/etc/systemd/timesyncd.conf
[Time]
#NTP=
#FallbackNTP=0.arch.pool.ntp.org 1.arch.pool.ntp.org 2.arch.pool.ntp.org 3.arch.pool.ntp.org
#...

Yeni zaman sunucuları eklemek veya elde bulunanları değiştirmek için ilgili yerleri yorum satırından çıkarın, ardından sunucu adreslerini veya IP adreslerini boşluklar bırakarak ekleyin. Ayrıca bir yapılandırma parçası da (configuration snippet) /etc/systemd/timesyncd.conf.d/*.conf kullanabilirsiniz, daha fazla bilgi için timesyncd.conf(5) sayfasına bakın.

Örneğin, NTP havuzu tarafından sağlanan herhangi bir sunucuyu kullanabilir veya varsayılan Arch havuzunu (yine NTP havuz projesi tarafından sağlanmıştır) kullanabilirsiniz:

/etc/systemd/timesyncd.conf veya /etc/systemd/timesyncd.conf.d/local.conf
[Time]
NTP=0.arch.pool.ntp.org 1.arch.pool.ntp.org 2.arch.pool.ntp.org 3.arch.pool.ntp.org
FallbackNTP=0.pool.ntp.org 1.pool.ntp.org 0.fr.pool.ntp.org

Yapılandırmanızı doğrulamak için

$ timedatectl show-timesync --all
LinkNTPServers=
SystemNTPServers=
RuntimeNTPServers=
FallbackNTPServers=0.arch.pool.ntp.org 1.arch.pool.ntp.org 2.arch.pool.ntp.org 3.arch.pool.ntp.org
ServerName=2.arch.pool.ntp.org
ServerAddress=45.136.155.37
RootDistanceMaxUSec=5s
PollIntervalMinUSec=32s
PollIntervalMaxUSec=34min 8s
PollIntervalUSec=34min 8s
NTPMessage={ Leap=0, Version=4, Mode=4, Stratum=3, Precision=-24, RootDelay=217.346ms, RootDispersion=52.047ms, Reference=27912C56, OriginateTimestamp=Fri 2024-01-19 16:39:56 +03, ReceiveTimestamp=Fri 2024-01-19 16:39:56 +03, TransmitTimestamp=Fri 2024-01-19 16:39:56 +03, DestinationTimestamp=Fri 2024-01-19 16:39:56 +03, Ignored=no, PacketCount=12, Jitter=535.760ms }
Frequency=-210741

Servis yapılandırmasına ek olarak, NTP sunucuları NTP= ile systemd-networkd yapılandırma dosyası üzerinden veya dinamik bir şekilde bir DHCP sunucusu aracılığıyla da sağlanabilir (.network dosyasının içerisinde [DHCPv4] veya [DHCPv6] bölümünde UseNTP seçeneği aktif hale getirilirse).

Kullanılacak NTP sunucusu aşağıdaki kurallar kullanılarak belirlenir:

  • systemd-networkd.service(8) yapılandırmasından veya DHCP aracılığıyla elde edilen arayüz başı NTP sunucularına öncelik verilir.
  • /etc/systemd/timesyncd.conf içinde tanımlanan NTP sunucuları çalıştırılırken arayüz başına listeye eklenecek ve servis yanıt veren bir tane bulana kadar sırayla sunucularla iletişime geçecektir.
  • Bu adımlar tamamlandıktan sonra herhangi bir NTP sunucu bilgisi edinilmezse, FallbackNTP= içinde tanımlanmış NTP sunucusu ana makine adları veya IP adresleri kullanılır.
Not:
  • Hizmet her senkronizasyonda /var/lib/systemd/timesync/clock dosyasını günceller. Bu dosya konumu sabittir ve değiştirilemez.
  • Bu yazma işlemi salt okunur kök bölümü çalıştırırken veya SD kartta yazmaları en aza indirmeye çalışırken soruna sebep olabilir.
  • Yazma işlemi yapılandırma dosyasına eklenecek PollIntervalMinSec=1d ve SaveIntervalSec=infinity ayarları ile azaltılabilir.

Kullanım

Etkinleştirme ve başlatma

Servisi etkinleştirip çalıştırmak için aşağıdaki komutu girin:

# timedatectl set-ntp true

Alternatif olarak (örneğin chroot içerisindeyken) systemd-timesyncd.service servisini başlatın/etkinleştirin.

Servis kontrolü

Senkronizasyon süreci belirgin ölçüde yavaş olabilir. Bu herhangi bir sorun olduğu anlamına gelmez, bir sorun olduğundan emin olmadan önce belli bir süre beklemek gerekir. Hizmetin ne durumda olduğunu kontrol etmek için aşağıdaki komutu kullanın:

$ timedatectl status
               Local time: Fri 2024-01-19 17:36:59 +03
           Universal time: Fri 2024-01-19 14:36:59 UTC
                 RTC time: Fri 2024-01-19 14:36:59
                Time zone: Europe/Istanbul (+03, +0300)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

Ayrıntılı bilgi edinme

Servise dair ayrıntılı bilgi edinmek için aşağıdaki komutu kullanın:

$ timedatectl timesync-status
       Server: 45.136.155.37 (2.arch.pool.ntp.org)
Poll interval: 34min 8s (min: 32s; max 34min 8s)
         Leap: normal
      Version: 4
      Stratum: 3
    Reference: 27912C56
    Precision: 1us (-24)
Root distance: 165.137ms (max: 5s)
       Offset: -4.870ms
        Delay: 17.750ms
       Jitter: 535.761ms
 Packet count: 13
    Frequency: -4.405ppm

Varsayılan olmayan yapılandırma ayarlarını görüntüleme

Varsayılan olmayan yapılandırma ayarlarını ve bu ayarların hangi dosyalar ile ayarlandığını görmek için aşağıdaki komutu kullanın:

$ systemd-analyze cat-config systemd/timesyncd.conf --tldr
# /etc/systemd/timesyncd.conf
[Time]
# /etc/systemd/timesyncd.conf.d/local.conf
[Time]
NTP=0.nl.pool.ntp.org 1.nl.pool.ntp.org 2.nl.pool.ntp.org 3.nl.pool.ntp.org
RootDistanceMaxSec=0.1
PollIntervalMinSec=1d
PollIntervalMaxSec=4w
SaveIntervalSec=infinity

Günlüğü görüntüleme

Servise dair, son 24 saat içinde günlüğe kaydedilmiş olayları listelemek için aşağıdaki komutu kullanın:

# journalctl -u systemd-timesyncd --no-hostname --since "1 day ago"
Jan 19 15:14:20 systemd[1]: Stopping Network Time Synchronization...
Jan 19 15:14:20 systemd[1]: systemd-timesyncd.service: Deactivated successfully.
Jan 19 15:14:20 systemd[1]: Stopped Network Time Synchronization.
Jan 19 15:14:20 systemd[1]: Starting Network Time Synchronization...
Jan 19 15:14:20 systemd[1]: Started Network Time Synchronization.
Jan 19 15:14:20 systemd-timesyncd[1023]: Contacted time server 178.215.228.24:123 (0.nl.pool.ntp.org).
Jan 19 15:14:20 systemd-timesyncd[1023]: Initial clock synchronization to Fri 2024-01-19 15:14:20.393865 CET.

Ayrıca bakınız