Cron job, bir sunucuda belirli komutların veya betiklerin önceden tanımlanan zamanlarda otomatik olarak çalıştırılmasını sağlayan görevdir. Yedek alma, rapor üretme, geçici dosyaları temizleme, e-posta gönderme ve uygulama bakım işlemleri gibi düzenli işler cron sayesinde insan müdahalesi olmadan yürütülebilir.
Ancak cron job yalnızca bir komutu zamanlamak anlamına gelmez. Doğru çalışma aralığının belirlenmesi, komut yolunun eksiksiz yazılması, çıktıların takip edilmesi ve görevin sunucu kaynaklarını zorlamaması gerekir. Bu rehberde cron job mantığını, Linux ve cPanel üzerinde kurulumu, sık kullanılan zamanlama ifadelerini ve çalışmayan görevler için kontrol adımlarını ele alacağız.
Cron Job Nedir ve Ne İşe Yarar?
Cron, Linux ve Unix tabanlı sistemlerde arka planda çalışan bir zamanlama servisidir. Bu servis, crontab adı verilen görev listesini okur ve her satırdaki komutu belirtilen zamanda çalıştırır. “Cron job” ise bu listede tanımlanan tek bir zamanlanmış görevi ifade eder.
Bir web sitesinin dosyalarını her gece arşivlemek, veritabanı yedeği oluşturmak veya stok bilgilerini belirli aralıklarla güncellemek cron kullanımına örnektir. Özellikle birden fazla otomatik işlem çalıştıran web hosting projelerinde zamanlamaların düzenli ve kaynak tüketimi kontrollü olması önemlidir.
Cron Job Nasıl Çalışır?
Standart bir cron ifadesi beş zaman alanı ve ardından çalıştırılacak komuttan oluşur:
* * * * * /tam/yol/komut- Birinci alan: Dakika (0–59)
- İkinci alan: Saat (0–23)
- Üçüncü alan: Ayın günü (1–31)
- Dördüncü alan: Ay (1–12)
- Beşinci alan: Haftanın günü (0–7)
Yıldız işareti ilgili alan için “her değer” anlamına gelir. Örneğin 0 3 * * * ifadesi komutu her gün saat 03.00’te çalıştırır. */5 * * * * ise görevi beş dakikada bir tetikler.

En Sık Kullanılan Cron Job Zamanlamaları Nelerdir?
| Cron ifadesi | Çalışma zamanı |
|---|---|
*/5 * * * * | Her 5 dakikada bir |
0 * * * * | Her saat başında |
0 2 * * * | Her gün saat 02.00’de |
0 9 * * 1 | Her pazartesi saat 09.00’da |
0 0 1 * * | Her ayın ilk günü |
Çalışma sıklığını gereğinden fazla artırmak doğru değildir. Her dakika çalışan ağır bir PHP betiği, önceki işlem tamamlanmadan yeniden başlayabilir. Bu durum CPU ve bellek kullanımını yükseltebilir, veritabanında kilitlenmelere ve aynı işlemin birden fazla kez yapılmasına yol açabilir.
cPanel Üzerinden Cron Job Nasıl Oluşturulur?
- cPanel hesabınıza giriş yapın ve Cron Jobs bölümünü açın.
- Bildirim e-postasının gönderileceği adresi belirleyin.
- Hazır zamanlama seçeneklerinden birini seçin veya dakika, saat, gün, ay ve hafta alanlarını elle doldurun.
- Çalıştırılacak komutu tam dosya yollarıyla yazın.
- Görevi ekleyin ve ilk çalışmadan sonra çıktı ya da log kaydını kontrol edin.
PHP dosyası çalıştırırken yalnızca dosya adını değil, PHP yorumlayıcısının ve dosyanın tam yolunu belirtmek daha güvenlidir:
/usr/local/bin/php /home/kullanici/public_html/cron/gorev.phpSunucudaki PHP yolu pakete veya kontrol paneline göre değişebilir. Komutu eklemeden önce hosting sağlayıcınızın önerdiği yolu kullanın.
Linux Üzerinde Cron Job Nasıl Eklenir ve Listelenir?
Mevcut kullanıcının cron listesini düzenlemek için aşağıdaki komut kullanılır:
crontab -eKayıtlı görevleri görüntülemek için crontab -l, listeyi tamamen kaldırmak için ise crontab -r kullanılabilir. Son komut geri alma onayı vermeden listeyi silebildiği için dikkatle çalıştırılmalıdır.
Sistem genelindeki görevler dağıtıma göre /etc/crontab, /etc/cron.d/ veya kullanıcıya ait spool dizinlerinde bulunabilir. Yetkisiz bir kullanıcının sistem görevlerini değiştirmemesi için dosya izinleri sınırlı tutulmalıdır.
Cron Job Hangi İşlerde Kullanılır?
- Web sitesi ve veritabanı yedeklerinin oluşturulması
- Geçici dosyaların ve eski logların temizlenmesi
- WooCommerce stok veya fiyat bilgilerinin güncellenmesi
- Laravel Scheduler gibi uygulama zamanlayıcılarının tetiklenmesi
- Raporların oluşturulması ve belirlenen kişilere gönderilmesi
- Harici API’lerden düzenli veri alınması
- SSL, alan adı veya servis sürelerinin izlenmesi
Aynı anda çok sayıda görev, uzun süren sorgular veya yoğun veri işleme çalıştırılacaksa kaynak planlaması yapılmalıdır. Daha fazla işlem kontrolüne ihtiyaç duyan projelerde paylaşımlı paket yerine uygun kaynaklara sahip bir VDS sunucu tercih edilmesi görevlerin birbirini etkileme riskini azaltabilir.
Cron Job Çalışmıyorsa Neler Kontrol Edilmelidir?
- Zamanlama ifadesi: Dakika ve saat alanlarının doğru sırada olduğundan emin olun.
- Tam dosya yolu: Göreli yollar yerine yorumlayıcı, betik ve çıktı dosyaları için tam yol kullanın.
- Dosya izinleri: Betiğin ilgili kullanıcı tarafından okunabildiğini ve gerekiyorsa çalıştırılabildiğini kontrol edin.
- Çalışma ortamı: Cron oturumu, normal terminal oturumundan daha sınırlı bir
PATHdeğişkenine sahip olabilir. - Çıktı ve log: Standart çıktıyı ve hata çıktısını bir dosyaya yönlendirerek gerçek hatayı görün.
- Çakışan işlemler: Önceki görev bitmeden yenisinin başlayıp başlamadığını kontrol edin.
*/10 * * * * /usr/local/bin/php /home/kullanici/gorev.php >> /home/kullanici/cron.log 2>&1Bu örnek hem normal çıktıyı hem de hata mesajlarını cron.log dosyasına ekler. Üretim ortamında log dosyasının sınırsız büyümemesi için ayrıca log rotasyonu uygulanmalıdır.

Güvenli Cron Job Kullanımı İçin Nelere Dikkat Edilmelidir?
Komut içinde parola, API anahtarı veya veritabanı bilgisi gibi hassas verileri açık biçimde yazmayın. Yapılandırma dosyalarını web kök dizininin dışında tutun ve yalnızca gerekli kullanıcıya okuma izni verin. İnternet üzerinden tetiklenen cron URL’lerinde tahmin edilmesi kolay adresler yerine kimlik doğrulama veya imzalı anahtar mekanizması kullanın.
Yedek görevinin başarılı mesajı üretmesi, yedeğin gerçekten geri yüklenebilir olduğu anlamına gelmez. Oluşturulan dosyaların boyutu, bütünlüğü, saklama süresi ve düzenli geri yükleme testleri ayrıca kontrol edilmelidir.
Cron Job Hakkında Sık Sorulan Sorular
Cron job ile crontab arasındaki fark nedir?
Cron job tek bir zamanlanmış görevi, crontab ise bir kullanıcının cron görevlerinin kaydedildiği listeyi ifade eder.
Cron job her 5 dakikada bir nasıl çalıştırılır?
Zamanlama alanına */5 * * * * yazılır. Görev ağırsa önceki işlemin tamamlanıp tamamlanmadığını kontrol eden bir kilit mekanizması eklenmelidir.
cPanel cron job neden çalışmıyor?
En yaygın nedenler hatalı PHP yolu, eksik dosya yolu, izin sorunu, yanlış zaman dilimi ve betiğin terminal dışındaki sınırlı ortam değişkenlerine bağımlı olmasıdır.
Cron job çıktısı nasıl görülür?
Çıktı e-posta ile gönderilebilir veya >> dosya.log 2>&1 ifadesiyle bir log dosyasına yönlendirilebilir.
Cron job sunucuyu yavaşlatır mı?
Hafif ve doğru aralıklarla çalışan görevler genellikle sorun yaratmaz. Çok sık tetiklenen, uzun süren veya yüksek kaynak kullanan görevler ise site performansını olumsuz etkileyebilir.
Sonuç
Cron job, düzenli sunucu ve web sitesi işlemlerini güvenilir biçimde otomatikleştirmenin temel araçlarından biridir. Başarılı bir kurulum için doğru zamanlama kadar tam dosya yolları, log takibi, güvenli kimlik bilgisi yönetimi ve kaynak kullanımı da önemlidir. Önce basit bir zamanlama ile başlayın, görevin çıktısını doğrulayın ve çalışma sıklığını gerçek ihtiyaca göre ayarlayın.

