format_list_bulletedBu İçerikte Bahsedilen Konular
- arrow_rightCron Job Nedir?
- arrow_rightCron Job Nasıl Çalışır?
- arrow_rightCron Syntax ve Zamanlama Formatı
- arrow_rightSık Kullanılan Cron Örnekleri
- arrow_rightCron Job Kullanım Alanları
- arrow_rightSunucuda Cron Job Oluşturma Yöntemleri
- arrow_right1. Crontab Komutu ile Oluşturma
- arrow_right2. Sistem Crontab ile Yapılandırma
- arrow_right3. cPanel ile Cron Job Yönetimi
- arrow_rightCron Job Hataları ve Çözümleri
- arrow_rightCron Job En İyi Uygulamaları
- arrow_rightÖrnek Güvenli Cron Yapılandırması
- arrow_rightCron Alternatifleri ve Karşılaştırma
- arrow_rightSonuç
Cron Job Nedir?
Cron Job, Unix tabanlı işletim sistemlerinde (Linux, macOS, BSD) belirli zaman aralıklarında otomatik olarak çalıştırılan görevlerdir. "Cron" adı, Yunanca "chronos" (ζρόνος - zaman) kelimesinden türemiştir. Sistem yöneticileri ve geliştiriciler, tekrarlayan görevleri otomatize etmek için cron job'ları kullanır. Web hosting hizmetlerinde sıklıkla karşılaşılan bu özellik, sunucu yönetimini önemli ölçüde kolaylaştırır.
2024 yılı itibarıyla, internet sitelerinin yaklaşık %67'si düzenli olarak cron job'ları kullanmaktadır (Kaynak: ServerWatch). Bu istatistik, otomatik görev zamanlamanın modern web altyapısındaki kritik rolünü göstermektedir.
Cron Job Nasıl Çalışır?
Cron sistemi üç temel bileşenden oluşur:
- Cron Daemon (crond): Arka planda sürekli çalışan ve zamanı kontrol eden arka plan servisi
- Crontab Dosyası: Cron job'ların tanımlandığı ve zamanlama bilgilerinin saklandığı yapılandırma dosyası
- Komut/Script: Belirli zamanda çalıştırılacak olan program veya shell komutu
Sistem, crontab dosyasını her dakika kontrol eder ve zamanı gelen görevi otomatik olarak çalıştırır. Bu sayede manuel müdahaleye gerek kalmadan işlemler gerçekleştirilir. Sanallaştırılmış sunucu altyapılarında bu sistem varsayılan olarak aktif gelir.
Cron Syntax ve Zamanlama Formatı
Cron ifadeleri 5 alandan oluşur ve şu sırayla yazılır:
* * * * * /path/to/command │ │ │ │ │ │ │ │ │ └─── Haftanın Günü (0-7, 0 ve 7 Pazar) │ │ │ └───── Ay (1-12) │ │ └─────── Gün (1-31) │ └───────── Saat (0-23) └─────────── Dakika (0-59)
Sık Kullanılan Cron Örnekleri
| Cron İfadesi | Açıklama |
|---|---|
* * * * * | Her dakika çalışır |
0 * * * * | Her saat başı çalışır |
0 0 * * * | Her gece yarısı çalışır |
0 9 * * 1-5 | Hafta içi her sabah 9:00'da çalışır |
*/15 * * * * | Her 15 dakikada bir çalışır |
0 3 * * 0 | Her Pazar gece 3:00'te çalışır |
Cron Job Kullanım Alanları
Cron job'ların yaygın kullanım senaryoları şunlardır:
- Veritabanı Yedekleme: MySQL veya PostgreSQL veritabanlarının düzenli olarak yedeklenmesi
- Log Temizleme:** Eski log dosyalarının silinerek disk alanının boşaltılması
- E-posta Gönderimi:** Bültenler, bildirimler ve hatırlatma maillerinin zamanlanması
- Önbellek Temizleme:** Cache sistemlerinin periyodik olarak yenilenmesi
- İçerik Senkronizasyonu:** RSS feed'leri veya API verilerinin güncellenmesi
- Güvenlik Taramaları:** Otomatik malware taramaları ve güvenlik kontrolleri
- SEO Kontrolleri:** Web sitesi performans ve erişilebilirlik testleri
Kurumsal hosting çözümlerinde bu tür otomasyon görevleri profesyonel ekipler tarafından yapılandırılır.
Sunucuda Cron Job Oluşturma Yöntemleri
1. Crontab Komutu ile Oluşturma
Terminal üzerinden aşağıdaki komutlarla cron job ekleyebilirsiniz:
# Crontab dosyasını düzenle crontab -e # Mevcut cron job'ları listele crontab -l # Kullanıcının tüm cron job'larını sil crontab -r
2. Sistem Crontab ile Yapılandırma
Sistem düzeyinde cron job eklemek için /etc/crontab dosyasını düzenleyebilirsiniz:
# /etc/crontab dosyası örneği SHELL=/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # Her gün saat 02:00'de yedekleme scripti çalıştır 0 2 * * * root /opt/backup.sh
3. cPanel ile Cron Job Yönetimi
Grafik arayüzlü hosting kontrol panellerinde cron job oluşturmak daha kolaydır. cPanel rehberimizde detaylı olarak açıklanan bu yöntem, teknik bilgi gerektirmeden zamanlama yapmanıza olanak tanır.
Cron Job Hataları ve Çözümleri
Cron job'larda sık karşılaşılan sorunlar ve çözüm önerileri:
| Hata Türü | Nedeni | Çözüm |
|---|---|---|
| Cron çalışmıyor | Cron servisi başlamamış | systemctl start crond komutu ile servisi başlatın |
| Komut bulunamadı | PATH değişkeni eksik | Komutun tam yolunu belirtin (/usr/bin/php gibi) |
| İzin hatası | Script çalıştırılabilir değil | chmod +x script.sh ile izin verin |
| E-posta gelmiyor | Mail servisi yapılandırılmamış | MAILTO değişkenini crontab'ta tanımlayın |
| Çift çalışma | Job süresi intervaldan uzun | Lock file kullanarak önlem alın |
502 Bad Gateway hatası gibi sunucu hatalarıyla karşılaşırsanız, ilgili blog yazımızdan detaylı bilgi alabilirsiniz.
Cron Job En İyi Uygulamaları
- Mutlak Yol Kullanımı: Tüm komut ve script yollarını mutlak (absolute) olarak belirtin
- Log Tutma: Çıktıları bir log dosyasına yönlendirin:
>>/var/log/cron.log 2>&1 - Kilit Dosyası (Lock File): Aynı job'ın aynı anda çalışmasını önlemek için flock kullanın
- Bildirim Ayarları: Başarısız job'larda e-posta bildirimi alacak şekilde yapılandırın
- Test Edin: Canlıya geçmeden önce script'i manuel olarak test edin
- Dakika Değerini 0 Yapın: Yoğun sunucularda crontab taraması için
0değerini tercih edin
Örnek Güvenli Cron Yapılandırması
# Yedekleme scripti örneği SHELL=/bin/bash [email protected] PATH=/usr/local/bin:/usr/bin:/bin # Her gece 03:00'te veritabanı yedekle 0 3 * * * /opt/scripts/backup.sh >> /var/log/backup.log 2>&1 # Her 15 dakikada bir sağlık kontrolü */15 * * * * /opt/scripts/healthcheck.sh >/dev/null 2>&1
Cron Alternatifleri ve Karşılaştırma
| Özellik | Cron | Systemd Timer | Anacron |
|---|---|---|---|
| Kurulum Kolaylığı | Kolay | Orta | Kolay |
| Sistem Kapanmasına Dayanıklı | Hayır | Kısmen | Evet |
| Milisaniye Hassasiyeti | Hayır | Evet | Hayır |
| Daemon Bağımlılığı | crond | systemd | anacron |
| Önerilen Kullanım | Sunucular | Modern Linux | Masaüstü/Sebek |
Modern sistemlerde systemd timer giderek daha fazla tercih edilmektedir. Ancak geleneksel cron, basitliği ve yaygın desteği nedeniyle hâlâ en popüler seçenektir.
Sonuç
Cron job'lar, sunucu yönetiminde vazgeçilmez bir araçtır. Doğru yapılandırıldığında tekrarlayan görevleri otomatize ederek zaman tasarrufu sağlar ve insan hatalarını minimize eder. Serversium olarak sunduğumuz web hosting, sanal sunucu ve kurumsal hosting paketlerinde cron job desteği standart olarak sunulmaktadır.
Otomatik görev zamanlaması hakkında daha fazla bilgi almak veya sunucu ihtiyaçlarınız için profesyonel destek almak isterseniz, iletişim sayfamızdan bizimle irtibata geçebilirsiniz. Oyun sunucuları veya depolama çözümleri için de özel yapılandırmalar mevcuttur.