Bir cron job kurmadan önce doğru zamanlama ifadesini yazmak gerekir. Yanlış bir alan, görevin hiç çalışmamasına veya beklenenden sık tetiklenmesine yol açar. Bu sayfadaki Cron İfadesi Oluşturucu, beş alanı seçerek geçerli bir ifade üretir, Türkçe özet verir ve sonraki beş çalışma zamanını gösterir.
Araç oluşturma niyetine odaklanır: hazır şablonlardan birini seçin veya alanları elle doldurun, ifadeyi kopyalayın. Mevcut bir ifadeyi anlamak veya doğrulamak için Crontab Guru aracını kullanın. Alanların sözdizim kurallarının ayrıntısı crontab sözdizimi rehberindedir.
Cron İfadesi Oluşturucu
Hızlı Seçim
Manuel Ayar
Sonraki Çalışma Zamanları
Cron İfadesi Oluşturucu Nasıl Kullanılır?
- Hızlı seçim: Yaygın bir şablona tıklayın (ör. Her 5 Dakika, Hafta İçi 09:00). Beş alan ve çıktı anında güncellenir.
- Manuel ayar: Dakika, saat, ayın günü, ay ve hafta günü kutularına sayı, liste (
1,15), aralık (1-5), adım (*/10veya0-30/5) ya da*yazın. Hafta günü içinMON–SUN, ay içinJAN–DECde kabul edilir. - Özeti okuyun: Üstteki Türkçe açıklama, seçiminizin ne anlama geldiğini özetler.
- Sonraki beş zamanı kontrol edin: Liste, tarayıcınızın yerel saat dilimine göre bir sonraki beş eşleşmeyi gösterir. Hafta içi 02:00 gibi seyrek ifadelerde bile en fazla dört yıl ileriye bakılır.
- Kopyalayın: İfadeyi panoya alın; Linux
crontab -esatırına, uygulama zamanlayıcısına veya cronjob.com.tr paneline yapıştırın.
Hazır Şablonlar ve Gerçek Senaryolar
Aşağıdaki şablonlar hızlı seçim ve manuel ayar örnekleridir; senaryo sütunu hangi işte kullanıldıklarını gösterir.
| Cron ifadesi | Anlam | Örnek kullanım |
|---|---|---|
*/5 * * * * |
Her 5 dakikada | Sağlık kontrolü (health check) URL'si |
0 */6 * * * |
Her 6 saatte (00, 06, 12, 18) | Önbellek temizleme veya senkron API |
0 2 * * 1-5 |
Hafta içi 02:00 | Gece yedekleme; hafta sonu atlanır |
0 9 * * MON |
Her Pazartesi 09:00 | Haftalık rapor e-postası tetikleyicisi |
30 4 1,15 * * |
Ayın 1'i ve 15'i 04:30 | Ayda iki kez fatura veya özet işi |
0 0 1 * * |
Her ayın 1'i 00:00 | Aylık arşiv veya kota sıfırlama |
Senaryo 1: Hafta içi gece yedekleme
İfade: 0 2 * * 1-5. Pazartesi–Cuma saat 02:00'de bir kez çalışır. Hızlı seçimde karşılığı yoktur; manuel alanda dakika=0, saat=2, ayın günü=*, ay=*, hafta günü=1-5 yazın. Sonraki beş çalışma listesinde yalnızca hafta içi 02:00 tarihleri görünmelidir (örneğin Cuma 02:00'den sonra ilk satır pazartesi olur).
Senaryo 2: Mesai içi sık yoklama
İfade: */15 9-17 * * 1-5. Hafta içi 09:00–17:59 arasında her 15 dakikada bir. Dakika alanına */15, saate 9-17, hafta gününe 1-5 yazın. Liste yoğun olduğu için sonraki beş nokta genelde aynı gün içinde dolacaktır.
Sonraki Beş Çalışma Zamanı Nasıl Hesaplanır?
Araç, geçerli dakikadan başlayarak dakika dakika ileri gider. Dakika, saat ve ay alanları her zaman AND ile eşleşmelidir. Ayın günü ve haftanın günü için klasik Linux (Vixie) kuralı uygulanır:
- Her iki alan da
*ise her gün uygundur. - Alanlardan biri yıldızla başlıyorsa AND uygulanır (ör.
0 9 * * MONyalnızca Pazartesi). - Hiçbiri yıldızla başlamıyorsa OR uygulanır (ör.
30 4 1,15 * 5ayın 1'i ve 15'i veya her Cuma).
Aralık, liste ve adım (*/n, a-b, a-b/n, a,b) desteklenir. Eşleşme bulunamazsa en fazla dört yıl ileriye bakılır; geçerli bir ifadede beş tarih üretilmesi beklenir. Resmi alan açıklaması için crontab(5) sayfasına bakabilirsiniz.
Linux Crontab ile Quartz Farkları
Bu oluşturucu beş alanlı Unix/Linux crontab üretir. Spring, Quartz Scheduler veya bazı Java kütüphaneleri farklıdır:
| Konu | Linux crontab (bu araç) | Quartz / Spring |
|---|---|---|
| Alan sayısı | 5 (dakika … hafta günü) | Spring: 6; Quartz: 6 veya 7 (saniye + isteğe bağlı yıl) |
| Saniye | Yok | İlk alan saniyedir |
? karakteri |
Geçersiz | Ayın günü / hafta gününde “belirsiz” için kullanılır |
| Gün alanları | İkisi de * ile başlamıyorsa OR | Quartz'ta birinde ? gerekir; Spring'de iki kısıt AND ile eşleşir |
Quartz ifadesini buraya yapıştırmayın; saniye, varsa yıl alanı ve gün alanlarının farklı anlamlarını dikkate alarak beş alanlı karşılığını üretin veya hedef platformun kendi oluşturucusunu kullanın.
Sık Hatalar ve Çözümleri
- Altı alan yazmak:
0 0 2 * * *gibi ifadeler Linux crontab'da geçersizdir (fazla alan). Beş alan kullanın veya Quartz kullandığınızı doğrulayın. - Pazar karışıklığı: Birçok sistemde
0ve7Pazar demektir.0 0 * * 7ile0 0 * * 0aynı günü hedefler; araç her ikisini de Pazar olarak işler. - Ayın günü + hafta günü birlikte:
0 9 15 * 1hem ayın 15'inde hem her Pazartesi 09:00'da çalışır (OR). Yalnız ayın 15'i ve Pazartesi istiyorsanız bu iki kısıtı aynı satırda birleştirmeyin; ayrı işler veya ek kontrol kullanın. - Saat dilimi kayması: Önizleme tarayıcı dilimindedir. Sunucu
UTC, panelEurope/Istanbulise aynı ifade farklı saatte tetiklenir. Ayrıntı için cron saat dilimi rehberine bakın. - Komut yolu hatası (sunucuda): Crontab satırı doğru olsa bile
/bin/sh: 1: php: not foundveyaPermission deniedalabilirsiniz. Zamanlama değil PATH veya izin sorunudur; cron job çalışmıyor kontrol listesini izleyin.
cronjob.com.tr ile HTTP Tabanlı Alternatif
Göreviniz bir URL ile tetiklenebiliyorsa sunucuda crontab -e açmadan da çalıştırabilirsiniz. cronjob.com.tr ücretsizdir; kayıtta kredi kartı istenmez. En kısa aralık 60 saniyedir. Panelde:
- Hedef URL'yi girin (GET, POST veya diğer HTTP metotları).
- Gizli bir token için özel header ekleyin (ör.
X-Cron-Token); uç noktanız bu değeri doğrulasın. - Zamanlamada hazır aralık veya bu araçtan kopyaladığınız beş alanlı cron ifadesini yapıştırın; saat dilimini iş bazında seçin (varsayılan Europe/Istanbul).
- Başarı HTTP 200–399 ve bağlantı hatası olmamasıdır; ardışık hatalarda e-posta bildirimi gelir. Loglar yaklaşık 7 gün tutulur.
Yerel ağ adreslerine (localhost, 10.x, 192.168.x vb.) istek gönderilmez; HTTPS sertifikası doğrulanır.
Sıkça Sorulan Sorular (SSS)
Cron ifadesi oluşturucu ne işe yarar?
Beş alanı (dakika, saat, ayın günü, ay, haftanın günü) seçerek geçerli bir cron ifadesi üretir; sonraki beş çalışma zamanını gösterir ve ifadeyi kopyalamanızı sağlar.
Oluşturulan ifade Linux crontab ile uyumlu mu?
Evet. Araç beş alanlı Vixie/cron (Linux) sözdizimini üretir. Saniye alanı veya soru işareti (?) içeren Quartz/Spring ifadeleri için ayrı sözdizimi gerekir.
Sonraki çalışma zamanları hangi saat diliminde?
Tarayıcınızın yerel saat diliminde hesaplanır. Sunucu veya panellerdeki Europe/Istanbul gibi bir dilim farklıysa gerçek çalıştırma saati kayabilir.
Ayın günü ve haftanın gününü birlikte seçersem ne olur?
Klasik Linux cron'da her iki alan da yıldızla başlamıyorsa OR mantığı uygulanır: ayın günü veya haftanın günü eşleşince görev çalışır. Alanlardan biri yıldızla başlıyorsa iki alan AND ile eşleşir.
İfadeyi cronjob.com.tr panelinde nasıl kullanırım?
Kayıt olun, yeni işte hedef URL ve HTTP metodunu girin, zamanlamada beş alanlı cron ifadesini yapıştırın veya hazır aralık seçin; saat dilimini iş bazında ayarlayabilirsiniz (varsayılan Europe/Istanbul).
Oluşturduğunuz Cron İfadesini Hemen Kullanın
cronjob.com.tr ile ücretsiz zamanlanmış HTTP isteği oluşturun. Kayıt olun, URL'nizi girin, cron ifadenizi yapıştırın; kredi kartı gerekmez.
Ücretsiz Başla