Cron Job Nedir, Nasıl Kurulur? Linux Zamanlanmış Görev Rehberi
Linux'ta cron job ile yedek alma, log temizleme, script çalıştırma. Crontab syntax, örnekler ve sık yapılan hatalar.
Sunucuda her gece otomatik yedek almak, haftalık log temizlemek ya da 5 dakikada bir health check yapmak istiyorsan cron Linux’un standart aracıdır. Bu rehberde crontab syntax’ını, pratik örnekleri ve sık yapılan hataları anlatıyoruz.
Cron nedir?
Cron, Linux’ta belirli zamanlarda komut çalıştıran bir daemon. Her dakika crontab dosyasını okur, çalışma zamanı gelen komutları tetikler.
Crontab syntax
Bir cron satırı 5 zaman alanı + komut:
* * * * * komut
│ │ │ │ │
│ │ │ │ └── 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)
Pratik örnekler
| İfade | Anlamı |
|---|---|
* * * * * | Her dakika |
*/5 * * * * | Her 5 dakikada |
0 * * * * | Her saat başı |
0 3 * * * | Her gün gece 03:00 |
0 3 * * 1 | Her Pazartesi 03:00 |
0 3 1 * * | Her ayın 1’i 03:00 |
30 2 * * 1-5 | Hafta içi 02:30 |
@reboot | Sunucu açılışında |
@daily | Her gün 00:00 |
@weekly | Her hafta Pazar 00:00 |
Karmaşık ifadeleri test etmek için: crontab.guru
Crontab nasıl düzenlenir?
crontab -e # Mevcut kullanıcı için düzenle
sudo crontab -e # Root için
crontab -l # Mevcut cron'ları listele
crontab -r # TÜM cron'ları sil (dikkat!)
İlk açışta editör seçmen istenir — nano (kolay) ya da vim.
Pratik örnekler
Günlük yedek
# Her gece 03:00'te WordPress yedek
0 3 * * * /usr/local/bin/backup-wp.sh >> /var/log/backup.log 2>&1
>> /var/log/backup.log 2>&1 çıktıyı log’a kaydet, hataları da dahil et.
Saatlik log temizleme
0 * * * * find /var/log/myapp -name "*.log" -mtime +30 -delete
30 günden eski log’ları sil.
Her 5 dakikada health check
*/5 * * * * curl -s -o /dev/null -w "%{http_code}" https://siten.com >> /var/log/health.log
Veritabanı yedeği
30 2 * * * mysqldump -u root -p'PAROLA' veritabani | gzip > /backup/db-$(date +\%Y\%m\%d).sql.gz
⚠️ Crontab’da % karakteri özel — \% ile kaçır.
Sertifika yenileme
0 4 * * * certbot renew --quiet && systemctl reload nginx
Detaylı SSL için Let’s Encrypt yazımıza bak.
Cron çalıştığını nasıl doğrularsın?
# Cron servisi çalışıyor mu?
sudo systemctl status cron
# Cron log'u
sudo tail -f /var/log/syslog | grep CRON
# veya
sudo tail -f /var/log/cron
Komutun çalıştığını test etmek için cron’u 1-2 dakika sonrasına ayarla, log dosyasını izle.
Sık yapılan hatalar
- Cron çalışmadı: Komut yolunu mutlak path ile yaz (
/usr/bin/phpdeğil sadecephpdeğil) - Environment değişkenleri yok: Cron minimal env ile çalışır → script başında
PATH=tanımla %kaçırmamak:date +%Y%m%dcron’da kırılır →\%- Çıktı görünmez: Mail ayarı yoksa STDOUT kaybolur →
>> log 2>&1ile dosyaya yaz - PHP/Node script timeout: CLI olarak çalışır, web timeout’undan etkilenmez ama uzun script’leri arkaplana al
- TZ farkı: Sunucu UTC ise saat uyuşmaz →
sudo timedatectl set-timezone Europe/Istanbul
systemd timer alternatif (modern)
systemd timer’lar cron’a göre daha modern, log entegrasyonu daha temiz:
/etc/systemd/system/backup.service:
[Unit]
Description=Daily backup
[Service]
Type=oneshot
ExecStart=/usr/local/bin/backup-wp.sh
/etc/systemd/system/backup.timer:
[Unit]
Description=Daily backup timer
[Timer]
OnCalendar=*-*-* 03:00:00
Persistent=true
[Install]
WantedBy=timers.target
sudo systemctl enable --now backup.timer
sudo systemctl list-timers
Sonuç
Cron, sunucu otomasyonun temelidir. 5 dakikada öğrenilir, her gün kullanılır. Yedek, temizlik, monitoring — hepsi cron ile.
İlgili: Sunucu Yedekleme · Linux Disk Genişletme
Related Posts
You might also like these.
The 3-2-1 Backup Rule: How to Never Lose Server Data
The 3-2-1 backup rule is the gold standard for server backup strategy. We cover the rule, automation, and KavesNET's backup infrastructure.
Read More
How to Migrate a Site from Plesk to Plesk: Migrator Tool Guide
Move sites, mail, DB, and DNS in one shot with Plesk Migrator. Step-by-step setup, test migration, and cutover.
Read More
FileZilla: VDS-to-VDS File Migration Guide
Move your site from old to new VDS: FileZilla over FTP/SFTP, speed tips, permissions, and error handling.
Read More