Cron İfadesi Oluşturucu
| Alan | Değer | Anlamı |
|---|
Bu araç tamamen tarayıcında çalışır; girdiğin bilgiler hiçbir sunucuya gönderilmez.
“*/5 * * * *” ne zaman çalışır?
Dakika, saat, gün, ay ve haftanın günü alanlarını seç ya da var olan ifadeni yapıştır; ne zaman çalışacağını Türkçe olarak, sonraki çalışma saatleriyle birlikte gör ve crontab satırını kopyala.
Cron ifadesi nasıl yazılır?
Bir cron ifadesi, boşlukla ayrılmış beş alandan oluşur: dakika, saat, ayın günü, ay ve haftanın günü.
Ardından çalıştırılacak komut gelir. Örneğin 30 3 * * 1 her pazartesi saat 03:30’da, */5 * * * * her 5 dakikada bir,
0 0 1 * * her ayın 1’inde gece yarısı çalışır. Yıldız (*) “her değer” demektir.
| Alan | İzin verilen değerler | Örnek |
|---|---|---|
| Dakika | 0–59 | 15 → saatin 15. dakikası |
| Saat | 0–23 | 3 → gece 03:00 |
| Ayın günü | 1–31 | 1 → ayın ilk günü |
| Ay | 1–12 veya JAN–DEC | 6-8 → haziran–ağustos |
| Haftanın günü | 0–7 veya SUN–SAT (0 ve 7 pazar) | 1-5 → hafta içi |
Özel karakterler
*— her değer. Saat alanında “her saat”, haftanın günü alanında “her gün”.,— liste.0,30dakika alanında saatte iki kez (00 ve 30) demektir.-— aralık.9-17saat alanında 09:00 ile 17:59 arası./— adım.*/10her 10 dakikada bir,0-30/10ise 0, 10, 20 ve 30. dakikalar.
Kısaltmalar da kullanılabilir: @hourly (= 0 * * * *), @daily veya @midnight (= 0 0 * * *),
@weekly (= 0 0 * * 0), @monthly, @yearly ve sistem açılışında bir kez çalışan @reboot.
Ayın günü ve haftanın günü birlikte
Az bilinen bir kural: ayın günü ve haftanın günü alanlarının ikisi de kısıtlıysa, görev bu koşullardan herhangi biri
sağlandığında çalışır (VE değil, VEYA). 0 0 13 * 5 “13’ü cumaya denk gelince” değil, “her ayın 13’ünde ve her cuma” çalışır.
Alanlardan biri * ise yalnızca diğeri dikkate alınır. Bu araç sonraki çalışma zamanlarını bu kurala göre hesaplar.
Laravel scheduler için cron ayarı
Laravel’de tüm zamanlanmış görevler uygulamanın içinde tanımlanır; sunucuya yalnızca her dakika çalışan tek bir satır eklenir:
* * * * * cd /home/kullanici/uygulama && php artisan schedule:run >> /dev/null 2>&1
Görevlerin sıklığını (->daily(), ->everyFiveMinutes()) Laravel belirler. Bu yüzden bu satırı her dakika çalışacak şekilde bırakmak gerekir;
*/5 yaparsan dakikalık görevler kaçar. Krowten web hosting panelinde bu satırı cron görevleri ekranından ekleyebilirsin;
Laravel hosting paketleri ise scheduler ve kuyruk işçilerini baştan hesaba katar.
WordPress wp-cron yerine gerçek cron
WordPress’in zamanlanmış görevleri (wp-cron.php) varsayılan olarak ziyaretçi geldiğinde tetiklenir. Az ziyaret alan sitelerde görevler gecikir,
yoğun sitelerde ise her istekte gereksiz yük oluşur. Daha sağlıklısı, wp-config.php içine
define('DISABLE_WP_CRON', true); ekleyip gerçek bir cron görevi tanımlamaktır:
*/5 * * * * cd /home/kullanici/public_html && /usr/bin/php wp-cron.php >/dev/null 2>&1
# ya da WP-CLI ile:
*/5 * * * * wp cron event run --due-now --path=/home/kullanici/public_html >/dev/null 2>&1
Saat dilimi ve sık yapılan hatalar
Cron, sunucunun saat dilimine göre çalışır; tarayıcının ya da senin bulunduğun yerin saatine göre değil. Sunucu UTC kullanıyorsa
0 9 * * * Türkiye saatiyle 12:00’de çalışır (Türkiye UTC+3). Sunucu saatini timedatectl ya da date ile kontrol et.
Bu araç sonraki çalışma zamanlarını tarayıcının saat diliminde gösterir.
- Cron, oturum açtığın kabuktaki
PATHdeğişkenini görmez; komutlarda tam yol kullan (/usr/bin/php). - Çıktıyı yönlendirmezsen cron her çalıştırmada e-posta göndermeye çalışabilir: sonuna
>> /dev/null 2>&1ya da bir günlük dosyası ekle. - crontab içinde
%karakteri yeni satır anlamına gelir;date +%Fgibi komutlarda\%olarak kaçır. - Görevleri
crontab -eile düzenler,crontab -lile listelersin.
Kendi VPS sunucunda crontab’a tam erişimin vardır; Node.js gibi sürekli çalışan uygulamalar için uygulama hosting tarafında da zamanlanmış görevleri bu ifadelerle tanımlayabilirsin.
Krowten VPS ile crontab’a, systemd timer’lara ve sunucunun saat dilimine tam erişimin olur; yedekleme, rapor ve kuyruk görevlerini dilediğin sıklıkta çalıştırırsın.
Cron İfadesi Oluşturucu
hakkında.
*/5 * * * * ne anlama gelir?+
Her 5 dakikada bir çalışır: saatin 0, 5, 10, … 55. dakikalarında. Dakika alanındaki */5 “0’dan başlayarak 5’er adım” demektir; diğer alanlardaki yıldızlar her saat, her gün, her ay anlamına gelir.
Cron her 30 saniyede bir çalıştırılabilir mi?+
Hayır, standart cron’un en küçük birimi dakikadır. Gerekirse iki satır kullanabilirsin: biri doğrudan komutu, diğeri sleep 30; komut çalıştırır. Daha sık görevler için systemd timer ya da sürekli çalışan bir süreç daha uygundur.
Cron görevim neden çalışmıyor?+
En sık nedenler: komutta tam yol kullanılmaması (cron’un PATH’i kısıtlıdır), betiğin çalıştırma izninin olmaması, saat diliminin farklı olması ve % karakterinin kaçırılmaması. Çıktıyı >> /tmp/cron.log 2>&1 ile bir dosyaya yönlendirip hatayı görebilirsin.
0 0 * * 0 ile @weekly aynı mı?+
Evet. @weekly, 0 0 * * 0 ifadesinin kısaltmasıdır ve her pazar gece yarısı çalışır. Benzer şekilde @daily = 0 0 * * *, @hourly = 0 * * * *.
Bunlar da işine yarar.
Hepsi ücretsiz.
Dosya izinlerini kutucuklardan seç; 755, 644 gibi değerleri anla.
Aracı aç ↗Docker Compose OluşturucuUygulama, veritabanı ve önbellek servislerinden compose.yaml üret.
Aracı aç ↗.htaccess ve Nginx Yönlendirme OluşturucuHTTPS, www ve 301 yönlendirmelerini .htaccess ve Nginx için yaz.
Aracı aç ↗