Tarih ve Saati Yapılandırma

Modern işletim sistemlerinde aşağıdaki gibi iki tür saat vardır:

  • İşletim sisteminin geçerli durumundan tamamen bağımsız olan ve bilgisayar kapatıldığında bile çalışan bir gerçek zamanlı saat (real-time clock) (RTC), genellikle donanım saati olarak adlandırılır (genellikle sistem ana kartındaki tümleşik bir devredir).

  • Çekirdek tarafından sağlanan ve yazılım saati olarak da bilinen bir sistem saati, başlangıç değeri olarak gerçek zamanlı saati temel alır. Sistem önyüklendiğinde ve sistem saati başlatıldığında, sistem saati gerçek zamanlı saatten tamamen bağımsızdır.

Sistem saati her zaman Eş Güdümlü Evrensel Zaman (Coordinated Universal Time) (UTC) saat diliminde tutulur ve gerektiğinde uygulamalarda yerel saate dönüştürülür. Yerel saat, yaz saati uygulaması (daylight saving time) (DST) dikkate alınarak geçerli saat diliminizdeki gerçek saattir. Gerçek zamanlı saat, UTC veya yerel saati kullanabilir. UTC tavsiye edilir.

29, sistem tarihi ve saati hakkındaki bilgileri yapılandırmak ve görüntülemek için kullanılabilecek üç komut satırı aracı sunar: 29’da yeni olan ve systemd paketinin bir parçası olan timedatectl programı; geleneksel date komutu; ve donanım saatine erişmek için hwclock programı.

timedatectl Komutunu Kullanma

timedatectl programı, systemd sistem ve hizmet yöneticisinin bir parçasıdır ve sistem saatinin yapılandırmasını gözden geçirmenize ve değiştirmenize olanak tanır. Geçerli tarih ve saati değiştirmek, saat dilimini ayarlamak veya sistem saatinin uzak bir sunucuyla otomatik eşzamanlamasını etkinleştirmek için bu aracı kullanabilirsiniz.

Geçerli tarih ve saati özel bir biçimde nasıl görüntüleyeceğiniz hakkında bilgi için ayrıca date Komutunu Kullanma kısmına bakın.

Geçerli Tarih ve Saati Görüntüleme

Sistem ve donanım saatinin yapılandırması hakkında ayrıntılı bilgilerle birlikte geçerli tarih ve saati görüntülemek için, ek komut satırı seçeneği olmadan timedatectl komutunu çalıştırın:

timedatectl

Bu, yerel ve evrensel saati, kullanılan geçerli saat dilimini, Ağ Saati Protokolü (Network Time Protocol - NTP) yapılandırmasının durumunu ve DST ile ilgili ek bilgileri görüntüler.

Example 1. Geçerli Tarih ve Saati Görüntüleme

Aşağıda, sistem saatini bir uzak sunucuyla eşzamanlamak için NTP kullanmayan bir sistemde timedatectl komutunun örnek bir çıktısı verilmiştir:

~]$ timedatectl
      Local time: Mon 2013-09-16 19:30:24 CEST
  Universal time: Mon 2013-09-16 17:30:24 UTC
        Timezone: Europe/Prague (CEST, +0200)
     NTP enabled: no
NTP synchronized: no
 RTC in local TZ: no
      DST active: yes
 Last DST change: DST began at
                  Sun 2013-03-31 01:59:59 CET
                  Sun 2013-03-31 03:00:00 CEST
 Next DST change: DST ends (the clock jumps one hour backwards) at
                  Sun 2013-10-27 02:59:59 CEST
                  Sun 2013-10-27 02:00:00 CET

Geçerli Saati Değiştirme

Geçerli saati değiştirmek için, root olarak bir kabuk isteminde şunu yazın:

timedatectl set-time SS:DD:SS

İlk SS saat ile, DD dakika ile, ikinci SS saniye ile değiştirilir, hepsi iki basamaklı biçimde yazılır.

Bu komut hem sistem saatini hem de donanım saatini günceller. Sonuç, hem date --set hem de hwclock --systohc komutlarının kullanılmasına benzerdir.

Bir NTP hizmeti etkinse komut başarısız olacaktır. Hizmeti geçici olarak devre dışı bırakmak için Sistem Saatini Uzak Sunucuyla Eşzamanlama kısmına bakın.

Example 2. Geçerli Saati Değiştirme

Geçerli saati 23:26 olarak değiştirmek için root olarak şu komutu çalıştırın:

~]# timedatectl set-time 23:26:00

Öntanımlı olarak, sistem UTC kullanacak şekilde yapılandırılmıştır. Sisteminizi saati yerel saatte tutacak şekilde yapılandırmak için root olarak timedatectl komutunu set-local-rtc seçeneğiyle çalıştırın:

timedatectl set-local-rtc boole

Sisteminizi saati yerel saatte tutacak şekilde yapılandırmak için, boole kısmını yes (veya alternatif olarak y, true, t ya da 1) ile değiştirin. Sistemi UTC kullanacak şekilde yapılandırmak için, boole kısmını no (veya alternatif olarak n, false, f ya da 0) ile değiştirin. Öntanımlı değer no seçeneğidir.

Geçerli Tarihi Değiştirme

Geçerli tarihi değiştirmek için, root olarak bir kabuk isteminde şunu yazın:

timedatectl set-time YYYY-AA-GG

YYYY kısmını dört basamaklı bir yıl ile, AA kısmını iki basamaklı bir ay ile ve GG kısmını ayın iki basamaklı bir günüyle değiştirin.

Geçerli saati belirtmeden tarihi değiştirmenin saatin 00:00:00 olarak ayarlanmasına neden olduğunu unutmayın.

Example 3. Geçerli Tarihi Değiştirme

Geçerli tarihi 2 Haziran 2013 olarak değiştirmek ve geçerli saati (23:26) korumak için root olarak şu komutu çalıştırın:

~]# timedatectl set-time "2013-06-02 23:26:00"

Saat Dilimini Değiştirme

Kullanılabilir tüm saat dilimlerini listelemek için, bir kabuk isteminde şunu yazın:

timedatectl list-timezones

Kullanılan geçerli saat dilimini değiştirmek için root olarak şunu yazın:

timedatectl set-timezone saat_dilimi

saat_dilimi kısmını timedatectl list-timezones komutu tarafından listelenen değerlerden herhangi biriyle değiştirin.

Example 4. Saat Dilimini Değiştirme

Bulunduğunuz konuma en yakın saat diliminin hangisi olduğunu belirlemek için, timedatectl komutunu list-timezones komut satırı seçeneğiyle kullanın. Örneğin, Avrupa’daki tüm kullanılabilir saat dilimlerini listelemek için şunu yazın:

~]# timedatectl list-timezones | grep Europe
Europe/Amsterdam
Europe/Andorra
Europe/Athens
Europe/Belgrade
Europe/Berlin
Europe/Bratislava

Saat dilimini Europe/Istanbul olarak değiştirmek için root olarak şunu yazın:

~]# timedatectl set-timezone Europe/Istanbul

Sistem Saatini Uzak Sunucuyla Eşzamanlama

Önceki bölümlerde açıklanan el ile ayarların aksine timedatectl komutu, sistem saatinizin NTP protokolünü kullanarak bir grup uzak sunucuyla otomatik eşzamanlanmasını etkinleştirmenize de olanak tanır. NTP’yi etkinleştirmek, hangisinin kurulu olduğuna bağlı olarak chronyd veya ntpd hizmetini etkinleştirir.

NTP hizmeti aşağıdaki gibi bir komut kullanılarak etkinleştirilebilir ve devre dışı bırakılabilir:

timedatectl set-ntp boole

Sisteminizin sistem saatini uzak bir NTP sunucusuyla eşzamanlamasını etkinleştirmek için, boole kısmını yes (öntanımlı seçenek) ile değiştirin. Bu özelliği devre dışı bırakmak için boole kısmını no ile değiştirin.

Example 5. Sistem Saatini Uzak Sunucuyla Eşzamanlama

Sistem saatinin uzak bir sunucuyla otomatik eşzamanlanmasını etkinleştirmek için şunu yazın:

~]# timedatectl set-ntp yes

Bir NTP hizmeti kurulu değilse komut başarısız olacaktır. Daha fazla bilgi için chrony kurma kısmına bakın.

date Komutunu Kullanma

date programı tüm Linux sistemlerinde bulunur ve geçerli tarih ve saati görüntülemenize ve yapılandırmanıza olanak tanır. Sistem saati hakkında ayrıntılı bilgileri özel bir biçimde görüntülemek için betiklerde sıklıkla kullanılır.

Saat diliminin nasıl değiştirileceği veya sistem saatinin uzak bir sunucuyla otomatik eşzamanlanmasının nasıl etkinleştirileceği hakkında bilgi için timedatectl Komutunu Kullanma kısmına bakın.

Geçerli Tarih ve Saati Görüntüleme

Geçerli tarih ve saati görüntülemek için, ek komut satırı seçeneği olmadan date komutunu çalıştırın:

date

Bu, haftanın gününü ve ardından geçerli tarihi, yerel saati, kısaltılmış saat dilimini ve yılı görüntüler.

Öntanımlı olarak, date komutu yerel saati görüntüler. Saati UTC olarak görüntülemek için, komutu --utc veya -u komut satırı seçeneğiyle çalıştırın:

date --utc

Komut satırında +"biçim" seçeneğini sağlayarak görüntülenen bilgilerin biçimini de özelleştirebilirsiniz:

date +"biçim"

biçim kısmını, Geçerli Tarih ve Saati Görüntüleme kısmında gösterildiği gibi bir veya daha fazla desteklenen denetim dizgesiyle değiştirin. En sık kullanılan biçimlendirme seçeneklerinin listesi için Sık Kullanılan Denetim Dizilerine, bu seçeneklerin tam listesi için date(1) kılavuz sayfasına bakın.

Table 1. Sık Kullanılan Denetim Dizileri
Denetim Dizisi Açıklama

%H

SS biçiminde saat (örneğin, 17).

%M

MM biçiminde dakika (örneğin, 30).

%S

SS biçiminde saniye (örneğin, 24).

%d

GG biçiminde ayın günü (örneğin, 16).

%m

AA biçiminde ay (örneğin, 09).

%Y

YYYY biçiminde yıl (örneğin, 2013).

%Z

Saat diliminin kısaltması (örneğin, CEST).

%F

YYYY-AA-GG biçiminde tam tarih (örneğin, 2013-09-16). Bu seçenek, %Y-%m-%d seçeneğine eş değerdir.

%T

SS:DD:SS biçiminde tam saat (örneğin, 17:30:24). Bu seçenek, %H:%M:%S seçeneğine eş değerdir.

Example 6. Geçerli Tarih ve Saati Görüntüleme

Geçerli tarihi ve yerel saati görüntülemek için bir kabuk isteminde şunu yazın:

~]$ date
Mon Sep 16 17:30:24 CEST 2013

UTC saat diliminde geçerli tarihi ve saati görüntülemek için bir kabuk isteminde şunu yazın:

~]$ date --utc
Mon Sep 16 15:30:34 UTC 2013

date komutunun çıktısını özelleştirmek için şunu yazın:

~]$ date +"%Y-%m-%d %H:%M"
2013-09-16 17:30

Geçerli Saati Değiştirme

Geçerli saati değiştirmek için, date komutunu --set veya -s seçeneğiyle root olarak çalıştırın:

date --set SS:DD:SS

İlk SS saat ile, DD dakika ile, ikinci SS saniye ile değiştirilir, hepsi iki basamaklı biçimde yazılır.

Öntanımlı olarak, date komutu sistem saatini yerel saate ayarlar. Sistem saatini UTC olarak ayarlamak için, komutu --utc veya -u komut satırı seçeneğiyle çalıştırın:

date --set SS:DD:SS --utc
Example 7. Geçerli Saati Değiştirme

Geçerli saati 23:26 olarak değiştirmek için root olarak şu komutu çalıştırın:

~]# date --set 23:26:00

Geçerli Tarihi Değiştirme

Geçerli tarihi değiştirmek için, date komutunu --set veya -s seçeneğiyle root olarak çalıştırın:

date --set YYYY-AA-GG

YYYY kısmını dört basamaklı bir yıl ile, AA kısmını iki basamaklı bir ay ile ve GG kısmını ayın iki basamaklı bir günüyle değiştirin.

Geçerli saati belirtmeden tarihi değiştirmenin saatin 00:00:00 olarak ayarlanmasına neden olduğunu unutmayın.

Example 8. Geçerli Tarihi Değiştirme

Geçerli tarihi 2 Haziran 2013 olarak değiştirmek ve geçerli saati (23:26) korumak için root olarak şu komutu çalıştırın:

~]# date --set 2013-06-02 23:26:00

hwclock Komutunu Kullanma

hwclock, Gerçek Zamanlı Saat (Real Time Clock - RTC) olarak da adlandırılan donanım saatine erişmek için kullanılan bir programdır. Donanım saati, kullandığınız işletim sisteminden bağımsızdır ve makine kapatıldığında bile çalışır. Bu program, donanım saatinden zamanı görüntülemek için kullanılır. hwclock ile ayrıca donanım saatindeki sistematik sapmalar da telafi edilebilir.

Donanım saati şu değerleri saklar: yıl, ay, gün, saat, dakika ve saniye. Saat standardını, yerel saati veya Eş Güdümlü Evrensel Zamanı (Coordinated Universal Time - UTC) saklayamaz veya Yaz Saati Uygulamasını (Daylight Saving Time - DST) ayarlayamaz.

hwclock programı ayarlarını, yaptığınız ilk değişiklikle (örneğin saati el ile ayarladığınızda veya donanım saatini sistem saatiyle eşzamanladığınızda) oluşturulan /etc/adjtime dosyasına kaydeder.

Fedora 6’da hwclock komutu, sistem her kapatıldığında veya yeniden başlatıldığında otomatik olarak çalıştırılıyordu, ancak 29’da çalıştırılmıyor. Sistem saati Ağ Saati Protokolü (Network Time Protocol - NTP) veya Hassas Saat Protokolü (Precision Time Protocol - PTP) tarafından eşzamanlandığında, çekirdek donanım saatini her 11 dakikada bir otomatik olarak sistem saatiyle eşzamanlar.

NTP hakkında ayrıntılar için chrony Paketini Kullanarak NTP’yi Yapılandırma ve ntpd Kullanarak NTP’yi Yapılandırma kısımlarına bakın. PTP hakkında bilgi için ptp4l Kullanarak PTP’yi Yapılandırma kısmına bakın. ntpdate çalıştırıldıktan sonra donanım saatinin ayarlanması hakkında bilgi için Donanım Saatini Güncellemeyi Yapılandırma kısmına bakın.

Geçerli Tarih ve Saati Görüntüleme

hwclock komutunu hiçbir komut satırı seçeneği olmadan root kullanıcısı olarak çalıştırmak, tarih ve saati yerel saate göre standart çıkışa yazdırır.

hwclock

hwclock komutunu --utc veya --localtime seçeneklerini kullanmanın, donanım saatini UTC veya yerel saatte görüntülediğiniz anlamına gelmediğini unutmayın. Bu seçenekler, donanım saatini bunlardan herhangi birisinde tutacak şekilde ayarlamak için kullanılır. Saat her zaman yerel saatte görüntülenir. Ayrıca, hwclock --utc veya hwclock --local komutlarının kullanılması, /etc/adjtime dosyasındaki kaydı değiştirmez. Bu komut, /etc/adjtime dosyasına kaydedilen ayarın yanlış olduğunu bildiğiniz ama ayarı değiştirmek istemediğiniz zaman faydalı olabilir. Öte yandan, komutu yanlış bir şekilde kullanırsanız yanıltıcı bilgiler alabilirsiniz. Daha fazla ayrıntı için hwclock(8) kılavuz sayfasına bakın.

Example 9. Geçerli Tarih ve Saati Görüntüleme

Donanım saatinden geçerli tarihi ve geçerli yerel saati görüntülemek için root olarak şunu çalıştırın:

~]# hwclock
Tue 15 Apr 2014 04:23:46 PM CEST     -0.329272 seconds

CEST bir saat dilimi kısaltmasıdır ve Central European Summer Time (Orta Avrupa Yaz Saati) anlamına gelir.

Saat diliminin nasıl değiştirileceği hakkında bilgi için Saat Dilimini Değiştirme kısmına bakın.

Tarih ve Saati Ayarlama

Tarih ve saati görüntülemenin yanı sıra, donanım saatini el ile belirli bir saate ayarlayabilirsiniz.

Donanım saatinin tarihini ve saatini değiştirmeniz gerektiğinde, bunu belirttiğiniz argümanlarla birlikte --set ve --date seçeneklerini ekleyerek yapabilirsiniz:

hwclock --set --date "gg aaa yyyy SS:DD"

gg kısmını gün ile (iki basamaklı bir sayı), aaa kısmını ay ile (üç harfli bir kısaltma), yyyy kısmını yıl ile (dört basamaklı bir sayı), SS kısmını saat ile (iki basamaklı bir sayı), DD kısmını dakika ile (iki basamaklı bir sayı) değiştirin.

Aynı zamanda, sırasıyla --utc veya --localtime seçeneklerinden birini ekleyerek donanım saatini, saati UTC veya yerel saatte tutacak şekilde ayarlayabilirsiniz. Bu durumda UTC veya LOCAL, /etc/adjtime dosyasına kaydedilir.

Example 10. Donanım Saatini Belirli Bir Tarih ve Saate Ayarlama

Tarih ve saati belirli bir değere, örneğin "21:17, October 21, 2014", ayarlamak ve donanım saatini UTC’de tutmak istiyorsanız, komutu aşağıdaki biçimde root olarak çalıştırın:

~]# hwclock --set --date "21 Oct 2014 21:17" --utc

Tarihi ve Saati Eşzamanlama

Donanım saatini ve geçerli sistem saatini her iki yönde de eşzamanlayabilirsiniz.

  • Şu komutu kullanarak donanım saatini geçerli sistem saatine ayarlayabilirsiniz:

    hwclock --systohc

    NTP kullanıyorsanız, donanım saatinin her 11 dakikada bir sistem saatiyle otomatik olarak eşzamanlandığını ve bu komutun yalnızca önyükleme sırasında uygun bir başlangıç sistem saati elde etmek için faydalı olduğunu unutmayın.

  • Veya şu komutu kullanarak sistem saatini donanım saatinden ayarlayabilirsiniz:

    hwclock --hctosys

Donanım saatini ve sistem saatini eşzamanladığınızda, --utc veya --localtime seçeneğini ekleyerek donanım saatini yerel saatte mi yoksa UTC’de mi tutmak istediğinizi belirtebilirsiniz. --set kullanımına benzer şekilde, UTC veya LOCAL, /etc/adjtime dosyasına kaydedilir.

hwclock --systohc --utc komutu, timedatectl set-local-rtc false komutuyla aynı işleve sahiptir ve hwclock --systohc --local komutu, timedatectl set-local-rtc true komutuna bir alternatiftir.

Example 11. Donanım Saatini Sistem Saati ile Eşzamanlama

Donanım saatini geçerli sistem saatine ayarlamak ve donanım saatini yerel saatte tutmak için root olarak şu komutu çalıştırın:

~]# hwclock --systohc --localtime

Saat dilimi ve DST değişimi ile ilgili sorunları önlemek için donanım saatini UTC’de tutmanız tavsiye edilir. Donanım Saatini Sistem Saati ile Eşzamanlama kısmında gösterilen, örneğin donanım saatinin öntanımlı olarak yerel saatte çalıştığını ve diğer tüm sistemlerin yerel saati kullanarak buna uyum sağlaması gerektiğini varsayan bir Windows sistemiyle çoklu önyükleme durumunda faydalıdır. Bu, bir sanal makine ile de gerekli olabilir; ana makine tarafından sağlanan sanal donanım saati yerel saatte çalışıyorsa, konuk sistemin de yerel saati kullanacak şekilde yapılandırılması gerekir.

Ek Kaynaklar

29’da tarih ve saatin nasıl yapılandırılacağı hakkında daha fazla bilgi için aşağıda listelenen kaynaklara bakın.

Kurulu Belgeler
  • timedatectl(1) — timedatectl komut satırı programının kılavuz sayfası, sistem saatini ve ayarlarını sorgulamak ve değiştirmek için bu aracın nasıl kullanılacağını belgelendirir.

  • date(1) — date komutunun kılavuz sayfası, desteklenen komut satırı seçeneklerinin tam listesini sağlar.

  • hwclock(8) — hwclock komutunun kılavuz sayfası, desteklenen komut satırı seçeneklerinin tam listesini sağlar.

Ayrıca Bakın