0 0 * * * İfadesi
0 0 * * * cron ifadesi her gün 0. saatin 0. dakikasında (gece yarısı) bir iş çalıştırır. Beş alanın tümü: dakika (0), saat (0), ayın günü (*), ay (*), haftanın günü (*). Joker karakterler ‘herhangi bir değer’ anlamına gelir, bu nedenle iş dakika=0 ve saat=0 olduğunda, her 24 saatte bir 00:00’da bir kez çalışır.
@daily Kısayolu
Çoğu cron uygulaması @daily’yi 0 0 * * * için takma ad olarak destekler. Bazı uygulamalar @midnight’ı da ek bir takma ad olarak tanır.
@daily # Vixie cron, cronie, fcron'da desteklenir
@midnight # bazı uygulamalarda @daily'ye eşdeğer olarak tanınır
0 0 * * * # her zaman çalışır, tüm cron uygulamalarında taşınabilir
Saat Dilimi Tuzakları
Varsayılan: sistem saat dilimi
Cron, saat dilimini sistemden okur (/etc/localtime veya TZ ortam değişkeni). Çoğu bulut VM’sinde bu UTC’dir. Eski şirket içi sunucularda yerel bir saat dilimi olabilir. Gece yarısı davranışına güvenmeden önce timedatectl veya date ile kontrol edin.
Crontab başına TZ ayarlama
Vixie cron ve cronie, crontab’ın üstünde bir TZ yönergesini destekler:
TZ=Europe/Istanbul
0 0 * * * /opt/jobs/nightly-report
En iyi uygulama: cron’u UTC’de çalıştırın
Sunucularınızı UTC’ye ayarlayın ve gerekirse saat dilimi matematiğini uygulamanızda yapın.
Günlük Gece Yarısı Cron İçin Yaygın Kullanım Alanları
Veritabanı yedeklemeleri
Yedeklemeler tipik olarak yük en düşük olduğunda çalışır. Gece yarısı, iş saatleri trafiğiyle çakışmayı önler.
Rapor oluşturma
Günlük özetler, panolar için e-posta özetleri genellikle önceki günün verileri tamamen toplandıktan sonra hesaplanır.
Veri temizleme ve arşivleme
Süresi dolmuş oturumları temizleme, eski kayıtları arşivleme veya günlükleri döndürme gibi düşük aciliyetli görevler gece yarısı iyi çalışır.
Birden Fazla Günlük İşi Zamanlama
Birkaç günlük işiniz varsa, hepsini 0 0 * * * olarak çalıştırmak çekişmeye neden olabilir. Onları aralıklı yapın:
0 0 * * * /opt/jobs/backup-database
15 0 * * * /opt/jobs/generate-reports
30 0 * * * /opt/jobs/sync-external-data
45 0 * * * /opt/jobs/cleanup-temp-files