Rain Wiki · Linux

cron ve crontab

cron'un zamanlanmış işleri nasıl çalıştırdığı, beş crontab zaman alanı, sistem cron dosyalarının bulunduğu yerler ve systemd zamanlayıcılarının karşılaştırması.

Linux · Rain Wiki

cron, komutları bir takvime göre çalıştıran klasik Unix artalan işlemidir (daemon). Her kullanıcının crontab -e ile düzenlenebilen ve her satırında komuttan önce beş zaman alanı (dakika, saat, ayın günü, ay, haftanın günü) bulunan bir crontab dosyası vardır. Sistem işleri /etc/crontab ve /etc/cron.d/ dizinlerinde bulunur.

Zaman alanları

'30 2 * * *' her gün 02:30 anlamına gelir; '*/10 * * * *' her on dakikada bir; '0 9 * * 1' her Pazartesi 09:00. Haftanın günü olarak 0 ve 7 Pazarı ifade eder.

Sistem dosyaları

/etc/cron.d/ ve /etc/crontab içindeki dosyalar, zaman ile komut arasında fazladan bir kullanıcı adı alanına sahiptir. /etc/cron.daily gibi dizinler günde bir kez çalıştırılan betikleri barındırır.

Yaygın tuzaklar

cron minimal bir ortamda çalışır: tam yollar kullanın veya crontab içinde PATH tanımlayın. Çıktı sahibine postalanır veya kaybolur; bir günlük (log) dosyasına yönlendirin. % karakteri crontab satırlarında özel bir anlama sahiptir ve \% olarak kaçış karakteriyle kullanılmalıdır.

systemd zamanlayıcıları

systemd dağıtımlarında .timer birimleri; günlük kaydı, rastgele gecikmeler ve kaçırılan çalıştırmaların telafisi (Persistent=true) ile bir alternatif sunar.

Günlük bir iş nasıl eklenir

  1. crontab dosyanızı açın: crontab -e
  2. Örneğin şu satırı ekleyin: 30 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1
  3. Kaydedin ve çıkın; cron değişikliği otomatik olarak algılar.
  4. İşleri listele: crontab -l

Dikkat

  • 'crontab -r' sormadan tüm crontab'ı siler.
  • Zamanlamadan önce komutu aynı kullanıcıyla elle test edin.

Kaynaklar

Son güncelleme: 2026-10-08

İlgili makaleler