Bütün bilgisayar ve teknolojik aygıtların en temel işlevleri arasında zamanı ve tarihi gösterme özelliğine sahiptir. Bu cihazlarda tarih ve saat bilgisi ile saat dilimi birbirine entegre edilmiştir. Linux işletim sisteminde tarih ve saat ayarları kullanıcının belirlediği saat dilimine göre düzenlenir. Bu cihazların belirlenen zaman dilimine bağlı olarak tarih ve saati otomatik olarak ayarlar yine de kullanıcılar bu ayarları istedikleri takdirde el ile de değiştirebilirler.

Bu makalemde Linux işletim sisteminde kullanılan “donanım saati – hardware clock” ve “yazılımsal saat – software clock” yapılandırmasının detaylarına değinceğim.
Donanım Saat – Hardware Clock = Real-time clock
Donanım saati, bilgisayarın anakartında bulunan ve bilgisayar kapalıyken bile çalışmaya devam eden küçük bir pil tarafından desteklenen bir saat çipidir. Bilgisayarın elektrik gücü kesildiğinde veya yeniden başlatıldığında, sistem saati donanım saatinden okunarak ayarlanır.

Bu saat Unix zaman damgası (1 Ocak 1970’ten itibaren geçen saniye sayısı) olarak değil, genellikle GMT/UTC olarak ayarlanır ve sistem saatinin ayarlanmasında temel alınır.
Linux işletim sistemleri, bu donanım saatini kullanarak, sistemin başlatılması sırasında güncel saat ve tarih bilgisini alır. Kullanıcılar genellikle “hwclock” komutu aracılığıyla Linux’ta donanım saatini okuyabilir ve ayarlayabilirler. Bu saat, özellikle uzun süre ağ bağlantısı olmayan durumlarda, sistemin doğru zamanı koruması için önemlidir.
Yazılımsal Saat – Software Clock
RTC’nin aksine bu saatin güç yedeği yoktur, sistem kapalıyken veya düşük güçteyken zamanı tutmaz. Ancak sisteme açık konuma getirildiğinde donanım saatinden yardım alır ve doğru tarih/saat bilgisini getirir.
Yazılım saati sistem saati olarak da adlandırılabilir. Linux’taki gelişmiş zaman tutma mekanizması işletim sisteminin saatini milisaniye hassasiyetiyle doğru tutmak amacıyla zaman sunucularını referans alır. Bu yaklaşımın nedeni donanım saatinin işleyişinden ayrıdır ve sistem zamanının Yaz Saati Uygulamasına uyum sağlamasını veya seyahat esnasında farklı zaman dilimlerine kolayca adapte olmasını da mümkün kılar.
Bu bölümde Ubuntu ve Debian işletm sistemi üzerinde saat ve tarih kontrol etme ve düzenleme işleminin detaylarını açıklayacağım.
Aşağıda Timedatectl komutunun sözdizimi yer almaktadır.
timedatectl [option] [command]
timedatectl komutunda herhangi bir parametre kullanmadan çalıştırıldığında işletim sistemi üzerinde geçerli saat ve tarih bilgisinin çıktısını verecektir.
timedatectl

Bu komutun çıktısında; yerel saat ve tarihiniz, evrensel saat, saat dilimi gibi ayrıntılı bilgileri görebilirsiniz.
timedatectl kullanarak saat veya tarih ayarının değiştirilmesi
işletim sisteminin saatini veya tarihini değiştirmek için timedatectl komutu kullanılabilir. Tarih veya saati değiştirmek için aşağıdaki komutu kullanabilirsiniz.
timedatectl set-time HH:MM:SS
timedatectl set-time 20:20:00

Benzer şekilde yukarıdaki komutun aynısı kullanılarak sistemin geçerli tarihi değiştirilebilir. İşletim sisteminin tarihini değiştirmek için aşağıda komutu kullanabilirsiniz.
timedatectl set-time “YYYY-MM-DD”
Burada yer alan “YYYY”, “MM” ve “DD” sırasıyla yılı, ayı ve günü temsil etmektedir. Örneğin aşağıda verilen komut tarihi 2024-02-07 (YYYY-MM-DD) olarak değiştirir. fakat dikkat edilmesi gereken önemli bir detayda sistem saatin de 00:00:00 olarak sıfırlanacağı unutulmamalıdır.
timedatectl set-time "2024-01-07"

timedatectl komutuyla tarih ile saati tek bir adımda değiştirmek için aşağıdaki komutu kullanabiliriz.
timedatectl set-time "2024-12-31 23:59:00"
timedatectl kullanarak saat diliminin değiştirilmesi
Öncelikle işletim sisteminizin hangi saat diliminde çalıştığınızı bilmeniz gerekir. bu işlem için aşağıdaki komutu kullanarak bu kontrolü sağlayabilirsiniz.
timedatectl | grep Time

Bu komut çıktısında da gösterildiği gibi basit timedatectl komutu da size gerekli sonucu verecektir.
timedatectl geçerli saat dilimini değiştirmek için de kullanılabilir. Öncelikle işletim sisteminiz tarafından desteklenen saat dilimlerini bilmeniz gerekir. İşletim sisteminizin mevcut saat dilimlerinin listesini kontrol etmek için aşağıdaki komutu çalıştırınız.
timedatectl list-timezones

Saat dilimini mevcut diğer saat dilimleriyle değiştirmek istemeniz durumunda, yukarıdaki liste bu konuda size yardımcı olacaktır. timedatectl komutunda | grep parametresi kullanarak saat dilimleri içerisinde ülke yada şehir ismine göre filtreleme yaparak kolayca saat dilimi bilgisini görüntüleyebilirsiniz.
timedatectl list-timezones | grep -i Turkey
timedatectl list-timezones | grep -i Istanbul

Örneğin aşağıdaki komutu çalıştırarak işletim sistemi saat dilimini “Europe/Istanbul” olarak değiştirmeye yardımcı olacaktır.
timedatectl set-timezone Europe/Istanbul

timedatectl komutu kullanarak RTC saatinin senkronize edilmesi;
Sistemin donanım saati, aynı zamanda gerçek zamanlı saat (RTC) olarak da anılır ve timedatectl komutu ile yerel saat diliminize veya UTC’ye uygun şekilde senkronize edilebilir. Donanım saatini yerel saat diliminizle senkronize etmek için kullanılan ikili seçenekler (0 veya 1) bu komuta entegre edilir. İkili seçenek 0, donanım saatinin yerel saat dilimi ile senkronizasyonunu sağlar. Gerçek Zamanlı Saati UTC ile senkronize etmek için ise aşağıdaki komut kullanılabilir.
timedatectl set-local-rtc 0

Alternatif olarak aşağıda verilen komutu kullanarak RTC’yi yerel saat dilimine senkronize edebilirsiniz.
Bu komut, RTC’yi yerel saat dilimine değiştirmenin sorunlara neden olabileceği uyarısını gösterecektir.
timedatectl set-local-rtc 1
