Cron İfade Sözdizimi: Örneklerle Tam Bir Kılavuz
Cron İfade Sözdizimi
Cron, Unix benzeri sistemlerde standart iş zamanlayıcıdır. Her cron ifadesi, bir komutun ne zaman çalışması gerektiğini belirten kompakt bir dizede bir zamanlama tanımlar. Sözdizimini anlamak, yedeklemeleri, günlük döndürmeyi ve bakım görevlerini otomatikleştirmek için gereklidir.
5 Alanlı Format
Standart bir cron ifadesi, boşluklarla ayrılmış beş alandan oluşur:
* * * * *
| | | | |
| | | | +----- Haftanın Günü (0-7, 0 ve 7 = Pazar)
| | | +------- Ay (1-12)
| | +--------- Ayın Günü (1-31)
| +----------- Saat (0-23)
+------------- Dakika (0-59)
Alan Detayları
| Alan | Aralık | Özel Karakterler | Örnek |
|------|--------|------------------|--------|
| Dakika | 0-59 | , - * / | 30 = 30. dakikada |
| Saat | 0-23 | , - * / | 6 = 6 AM'de |
| Ayın Günü | 1-31 | , - * / | 15 = ayın 15'inde |
| Ay | 1-12 | , - * / | 6 = Haziran'da |
| Haftanın Günü | 0-7 | , - * / | 0 = Pazar günü |
Dakika, tam çalıştırma dakikasını kontrol eder: 30 * * * * her saatin 30. dakikasında çalışır. Saat, günün zamanını tanımlar: 0 6 * * * her gün 6:00 AM'de çalışır. Ayın günü, belirli takvim tarihlerine kısıtlar: 0 0 15 * * her ayın 15'inde gece yarısı çalışır. Ay, çalıştırmayı belirli aylarla sınırlar: 0 0 1 6 * 1 Haziran'da çalışır. Haftanın günü, hangi hafta içi günlerini kontrol eder: 0 8 * * 1-5 Pazartesi'den Cuma'ya 8 AM'de çalışır.
Önemli: 29-31. günler yalnızca o tarihlere sahip aylarda çalışır. Daha kısa aylarda bu değerler sessizce atlanır.
Özel Karakterler
| Karakter | Ad | Amaç | Örnek |
|----------|-----|------|--------|
| * | Yıldız | Tüm olası değerler | Dakikada * = her dakika |
| , | Virgül | Değerleri listele | 1,15,30 = 1, 15, 30. dakikalar |
| - | Tire | Aralık | 9-17 = 9'dan 17'ye kadar saatler |
| / | Eğik Çizgi | Adım değerleri | */5 = her 5 dakikada bir |
Eğik Çizgi ile Adım Değerleri
Eğik çizgi, "her N birimde" ifadesini belirtir:
# Her 5 dakikada bir
*/5 * * * *
# Her 2 saatte bir
0 */2 * * *
# Çalışma saatlerinde her 15 dakikada bir
*/15 9-17 * * *
Yaygın Cron Zamanlama Desenleri
| Zamanlama | İfade | Açıklama |
|-----------|--------|-----------|
| Her dakika | * * * * * | Günde 1.440 kez çalışır |
| Her 5 dakikada bir | */5 * * * * | Sağlık kontrolleri, izleme |
| Her saat başı | 0 * * * * | Her saatin başında |
| Günde iki kez | 0 6,18 * * * | 6 AM ve 6 PM |
| Her gün gece yarısı | 0 0 * * * | Klasik bakım |
| Haftalık Pazar | 0 0 * * 0 | Haftalık bakım |
| Ayın 1'i | 0 0 1 * * | Aylık raporlar |
| Hafta içi 9 AM | 0 9 * * 1-5 | Çalışma saatleri başlangıcı |
Standart Olmayan Kısayollar
Bazı cron uygulamaları adlandırılmış kısayolları destekler: @yearly (1 Ocak), @monthly (ayın 1'i), @weekly (Pazar), @daily (gece yarısı), @hourly ve @reboot (sistem başlangıcında bir kez çalışır). Vixie cron, cronie ve systemd timer'lar tarafından desteklenir.
Yaygın Hatalar
- Hem ayın günü hem de haftanın gününü ayarlamak bir VEYA koşulu oluşturur — iş ikisinden biri eşleştiğinde çalışır, bu nadiren amaçlanan şeydir.
- Cron, sistem saat dilimini kullanır. Yaz saati geçişlerine yakın işler iki kez çalışabilir veya hiç çalışmayabilir.
- Her zaman beş alan sayın. Dört alan geçersizdir; altı alan genişletilmiş cron sözdizimi gerektirir.
Cron İfadelerinizi Test Edin
Sözdizimini kontrol etmek, yaklaşan çalıştırma zamanlarını önizlemek ve hataları üretimi etkilemeden önce yakalamak için cron ifade doğrulayıcıyı kullanın. Otuz saniyelik bir doğrulama kontrolü, sessiz zamanlama hatalarını önler.