Genellikle, Cron işleri sistemde tanımlanan yerel saat kullanılarak çalıştırılır. Ancak, sunucunuzun saatini ve tarihini değiştirmeden Cron işini farklı bir saat diliminde çalıştırmayı tercih edebilirsiniz.
Aşağıdaki gibi timedatectl komutunu kullanarak yerel saatinizi kontrol edebilirsiniz:
$ zaman tarihi
Date komutunu aşağıdaki gibi de kullanabilirsiniz:
$ tarih
Peki, Crontab'larınız için nasıl farklı bir saat dilimi ayarlayabilirsiniz?? Hadi bulalım.
Crontabs için saat dilimi nasıl ayarlanır?
Yerel Linux sisteminizde saat dilimleri genellikle /usr/share/zoneinfo dizin. Dizin, aşağıda gösterildiği gibi kıtaların ve ülkelerin ve bunların saat dilimlerinin bir listesini içerir.
$ ls /usr/share/zoneinfo/
Gösterilen sözdizimini kullanarak mevcut saat dilimini kolayca farklı bir saat dilimine ayarlayabilirsiniz. Örneğin, sistemi Japonya'nın Tokyo kentindeki saate ayarlamak için şunu çalıştırmanız yeterlidir:
$ sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtimeAncak, özellikle birden fazla kullanıcı farklı Cron işleri planladığında, sisteminizin zamanını değiştiremezsiniz. Bu, Cron işlerinin çalışacağı süreyi etkiler.
Neyse ki, Cron işiniz için belirli bir saat dilimini aşağıdaki gibi yapılandırabilirsiniz:
İlk olarak, diğer Shell girişlerinden önce Shell betiğinizdeki TZ değişkenini dışa aktarmanız gerekir. Ardından, crontab'ınıza erişin ve crontab ortam değişkeni CRON'u kullanın_TZ crontab dosyasının başında.
Diyelim ki Cron işini her gün öğleden sonra 2:20'de bir yedekleme komut dosyası çalıştıracak şekilde ayarlamak istiyorum Avrupa/Londra yerel saatim değil saat. Yerel saatim Londra saatinden 2 saat ileridedir, bu nedenle Londra'da 14:20'de yerel saatim 16:20 veya 1420 HRS olacaktır.
İlk olarak, Shell komut dosyasına gidin ve diğer komut dosyası girişlerinden önce TZ değişkenini dışa aktarın. Shell betiğimde ne yaptığımı kontrol edin.
İHRACAT TZ=Avrupa/Londra
Değişiklikleri kaydedin ve komut dosyasından çıkın.
Ardından, şu komutu çalıştırarak crontab dosyanıza erişin:
$ crontab -ecrontab değişkenini tanımladığınızdan emin olun CRON_TZ diğer tüm Cron girişlerinden önce aşağıdaki gibi.
CRON_TZ=Avrupa/Londra20 14 * * * /home/james/yedekleme.ş
Kaydet ve crontab'dan çık. Ayarlardan emin olmak için, şu komutu kullanarak crontab'ı listeleyebilirsiniz:
$ crontab -lBu nedenle, saat 16:40 yerel saate veya 1620 HRS'ye karşılık gelen Londra saatiyle 14:20'yi işaretlediğinde, yedekleme başarılı oldu.
Sonuç
Bu kılavuz, sistem saatinizi değiştirmeden Crontab'larınız için belirli bir saat dilimini gerçekten ayarlayabileceğinizin mükemmel bir gösterimidir. Bu şekilde, farklı görevleri ihtiyaçlarınıza uyacak şekilde farklı saat dilimlerinde çalışacak şekilde yapılandırabilirsiniz; örneğin, belirli bir saat dilimindeki abonelere yerel saatinize değil de kendi zamanlarına göre e-posta göndermek istiyorsanız.