Tarih ve Saat Ayarlama
Sistem Saati
Linux üzerinde tarih ve saat ayarlama işlemleri date komutu ile gerçekleştirilir. Komutu tek başına yazdığınızda tarih ve saati çıktı olarak verir.
date
Sun Nov 15 19:22:23 EET 2015date komutu ile istediğimiz biçimde çıktı alabiliriz.
date +%d_%m_%Y
15_11_2015Daha kompleks işlemler için boşluklu parametreleri çift tırnak içinde birleştirip tek parametre olarak programa sunmak gerekir.
date +"Ay:%m / Yıl:%y"
Ay:11 / Yıl:15Saati ve tarihi ayarlamak içinse aşağıdaki gibi bir yol izlenebilir.
date -s "2 NOV 2014 17:45:12"
Sun Nov 2 17:45:12 EET 2014Sadece saati değiştirmek için,
date -s "15:12:13"
Sun Nov 2 15:12:13 EET 2014Veya dilediğiniz biçimde tarih belirtmek için,
date +%Y%m%d%T -s "20120423 09:15:12"Fiziksel Saat
Sistem üzerine yazılan saatler, bilgisayarın pil ile tutulan fiziksel saatine doğrudan kaydedilmez. Fiziksel saatteki bilgiye erişmek için hwclock komutu kullanılmalıdır.
Fiziksel saatteki bilgiyi okumak için
Yukarıdaki çıktıda -0.960295 saniye'lik bir fark görünüyor. Bu komutu verdiğimiz an ile, cihazdan okuduğumuz saat arasındaki fark. Kısacası cihaz bize neredeyse 1 saniye içerisinde cevap vermiş. Bu süre zarfında hwclock komutunun yaptıklarını daha detaylı görmek için -D (debug) parametresiyle çalıştırabilirsiniz.
Fiziksel saatteki değeri okuyup, sistem saatinizi bununla güncellemek isteyebilirsiniz. Aslında bilgisayarlarınızın açılışta yaptığı bir işlemdir bu. Böylelikle sisteminize hiç enerji verilmediği durumlarda saat pili ile sistem geçen zamanı tutmaya devam eder, sisteminiz tekrar açıldığında bu cihazdan (RTC: Real Time Clock) saati okur ve kendi tarihini bu değerle günceller.
Öte yandan, date komutu ile sistem saatini güncellemeyi öğrenmiştik. Bu komut ile sistem saatinizi güncelledikten sonra fiziksel saatin değerinin değişmemesi normal. Eğer fiziksel saatin değerini de sistem saatinizdekine ayarlamak isterseniz, bu bilgiyi RTC modülüne yazmanız gerekir.
NTP ile Zaman Senkronizasyonu (Modern Yöntemler)
NTP (Network Time Protocol), ağ üzerindeki sunuculardan hassas zaman bilgisi alarak sistem saatini doğru tutmak için kullanılan standart protokoldür. Modern Linux dağıtımları genellikle zaman senkronizasyonu için systemd-timesyncd veya chrony servislerini kullanır. ntpdate komutu çoğu sistemde artık önerilmemektedir (deprecated).
systemd-timesyncd
Birçok modern dağıtımda varsayılan olarak gelen basit bir NTP istemcisidir. Genellikle ek kurulum gerektirmez.
Durumu Kontrol Etme:timedatectl status komutu ile hem zaman ayarlarını hem de NTP senkronizasyon durumunu görebilirsiniz:
System clock synchronized: yes ve NTP service: active satırları senkronizasyonun çalıştığını gösterir.
Etkinleştirme/Devre Dışı Bırakma:timedatectl komutu ile NTP senkronizasyonunu açıp kapatabilirsiniz:
systemd-timesyncd servisi genellikle /etc/systemd/timesyncd.conf dosyasından yapılandırılır ve varsayılan olarak dağıtımın belirlediği NTP sunucu havuzlarını (pool) kullanır.
chrony
ntpd'ye göre daha modern, hızlı ve esnek bir NTP istemcisi ve sunucusudur. Özellikle sık sık uyku moduna giren veya ağ bağlantısı kararsız olan sistemler için daha uygundur. Bazı dağıtımlar (örneğin RHEL/CentOS 7 ve sonrası) varsayılan olarak chrony kullanır.
Kurulum (Gerekliyse):
Durumu Kontrol Etme:chronyc komutu ile senkronizasyon durumu ve kaynaklar hakkında detaylı bilgi alınabilir:
Yapılandırma:chrony genellikle /etc/chrony/chrony.conf (veya /etc/chrony.conf) dosyasından yapılandırılır. Kullanılacak NTP sunucuları bu dosyada server veya pool direktifleri ile belirtilir.
Servis Yönetimi:chrony bir sistem servisidir ve systemctl ile yönetilir:
Önemli Not: Sistemde aynı anda sadece bir NTP istemcisinin (örneğin systemd-timesyncd veya chrony veya eski ntpd) aktif olması önerilir. Çakışmaları önlemek için kullanılmayacak olan servisleri devre dışı bırakmak gerekir.
Zaman senkronizasyonu yapıldıktan sonra, sistem saatindeki değişikliğin donanım saatine (RTC) yazılması genellikle bu servisler tarafından otomatik olarak veya periyodik olarak yapılır. Ancak manuel olarak yapmak isterseniz hwclock -w komutunu kullanabilirsiniz.
Saat Diliminin Ayarlanması
Sistem saat dilimi (timezone), sistemin yerel saati doğru göstermesi için önemlidir.
timedatectl ile Ayarlama (Önerilen Yöntem)
Modern systemd tabanlı sistemlerde saat dilimini ayarlamanın en kolay ve önerilen yolu timedatectl komutunu kullanmaktır.
Mevcut Saat Dilimini Görme:
Kullanılabilir Saat Dilimlerini Listeleme:
Saat Dilimini Ayarlama: Örneğin, saat dilimini İstanbul olarak ayarlamak için:
Bu komut, gerekli sembolik linki (/etc/localtime -> /usr/share/zoneinfo/...) otomatik olarak oluşturur veya günceller.
Manuel Yöntem (Eski veya systemd olmayan sistemler)
timedatectl komutunun bulunmadığı sistemlerde veya manuel olarak yapmak istenirse, /etc/localtime dosyası, /usr/share/zoneinfo altındaki doğru saat dilimi dosyasına işaret eden bir sembolik link olarak ayarlanır.
Önce mevcut link (varsa) kaldırılır, sonra yenisi oluşturulur:
Bazı eski sistemlerde /etc/timezone gibi metin tabanlı bir yapılandırma dosyası da bulunabilir ve bunun da güncellenmesi gerekebilir (örneğin içine Europe/Istanbul yazmak). Ancak modern sistemlerde genellikle sadece /etc/localtime linki yeterlidir.
/etc/localtime dosyası, saat dilimi kurallarını içeren binary bir dosyaya işaret eden bir sembolik linktir. Bu dosyanın doğrudan kopyalanması yerine sembolik link kullanılması, tzdata paketi güncellendiğinde saat dilimi kurallarının da otomatik olarak güncellenmesini sağlar. /etc/localtime dosyasının veya linkinin olmaması durumunda, sistem genellikle saat dilimini UTC (GMT+0) olarak varsayar.
Last updated