12.3. Zaman gösterimi ve ayarlanması

Linux Sistemlerinde, sistem zaman dilimi ayarı /etc/localtime sembolik bağı ile ayarlanır. Bu bağ yerel zaman dilimini gösteren bir zaman bölge bilgi dosyasını işaret eder. Zaman dilimi bilgi dosyaları, kullandığınız dağıtıma bağlı olarak ya /usr/lib/zoneinfo ya da /usr/share/zoneinfo içerisinde saklanır.

Örneğin New Jersey'de bulunan bir SUSE sisteminde /etc/localtime bağı /usr/share/zoneinfo/US/Eastern dosyasını işaret eder. Bir Debian sisteminde ise /etc/localtime bağı /usr/lib/zoneinfo/US/Eastern dosyasını işaret eder.

Eğer zoneinfo dizinini ne /usr/lib nede /usr/share dizinleri altında bulamıyorsanız; ya find /usr -print | grep zoneinfo komutunu kullanın ya da dağıtımınızın belgelerine bakın.

Farklı bir zaman diliminde yerleşik bir kullanıcınız varsa ne olur? Bir kullanıcı kendi zaman dilimi ayarını TZ ortam değişkeninde belirterek değiştirebilir. TZ ortam değişkeni ayaranmamışsa, sistem zaman dilimi geçerli olur. TZ değişkeninin sözdizimi tzset(3) kılavuz sayfasında açıklanmıştır.

date(1) komutu o anki tarih ve saati gösterir.[59] Örneğin:

$date +%c
Prş 16 Oca 2003 18:10:26 EET
$

Günlerden Perşembe, 2003 yılının 16 Ocağı, akşam 6'yı 10 geçiyor (Saat EET yani Doğu Avrupa zaman dilimine göre ayarlı, +%c seçeneği tarih ve saati yerel biçemde göstermek içindir). date aynı zamanda evrensel zamanı da gösterebilir:

$date -u +%c
Prş 16 Oca 2003 16:10:26 UTC
$

Ayrıca date çekirdeğin yazılım saatini ayarlamak için de kullanılabilir:

# date 1042734297
Prş Oca 16 18:24:57 EET 2003
# date +%c
Prş 16 Oca 2003 18:25:10 EET
#

Ayrıntılı bilgi için date kılavuz sayfasına bakabilirsiniz. Sözdizimleri biraz esrarlı olabilir. Sadece root saat ayarı yapabilir. Her kullanıcı kendi için zaman dilimi ayarı yapabilirken, saat herkes için aynıdır.

date sadece yazılım saatini gösterir veya ayarlar. clock komutu yazılım ve donanım saatleri arasındaki uyumu sağlar. Sistem açılış esnasında donanım saatini okumak ve yazılım saatini ayarlamak için kullanılır. Şayet her iki saati de ayarlamanız gerekirse önce yazılım saatini date ile ayarlayın ve daha sonra clock -w ile bunu donanım saatine yazın.

clock ile kullanılan -u seçeneği, donanım saatine evrensel zaman içinde olmasını söyler. -u deçeneğini doğru bir şekilde kullanmalısınız. Aksi taktirde zaman konusunda, bilgisayarınızın kafası biraz karışabilir.

Saat dikkatli bir şekilde değiştirilmelidir. Unix sisteminin pek çok parçası, saatin düzgün bir şekilde çalışmasına bağlıdır. Örneğin: cron süreçleri komutları periyodik olarak çalıştırır. Şayet saati değiştirirseniz, komutları çalıştırıp çalıştırmama konusunda karışıklık ortaya çıkabilir. Daha eski bir Unix sisteminde, birileri saati geleceğe, yirmi yıl sonraki bir zamana ayarladı ve cron bu yirmi yıllık periyodik komutların hepsini birden yapmaya kalktı. cron'un şu anki sürümü bunu yapabiliyor ama siz yine de çok dikkatli olmalısınız. İleri veya geriye doğru sıçrayışlar, küçüklerden ve ileri doğru sıçramalardan daha tehlikelidir.



[59] Dikkat, time komutu o an ki zamanı göstermez.