Programlama

cron

cron nedir?

cron, Unix sistemlerinde eski zaman kurulumudur. Listenin adı crontab’dır. Her satır beş zaman gözü ve bir komuttur: dakika, saat, ayın günü, ay, haftanın günü. Yıldız o gözün her değeri demektir. İş senin kullanıcının adıyla açılır. Pencere açmaz. Sonuç postaya veya dosyaya gidebilir. systemd timer benzer iş görebilir, ama cron’un kendisi değildir.

cron ne için kullanılır?

cron yedek, temizlik ve gece raporu içindir. Her gün aynı komutu elle yazmamak içindir.

  • Her gece veritabanının kopyasını almak
  • Eski geçici dosyayı silmek
  • Sabah raporu göndermek
  • Saatte bir denetim çalıştırmak

cron ile ne yapılabilir?

cron ile komutu takvime bağlarsın. Komutun doğru olup olmadığını denetlemez. Yol veya izin yanlışsa iş sessizce düşebilir. Ekran olmadığı için sonucu dosyaya yazmak gerekir. Aynı iş bitmeden yeniden başlayabilir.

cron öğrenmek zor mu?

Bir satır yazmak kolaydır. Zorluk saat dilimi ve yoldadır. Sunucunun saati senin saatin olmayabilir. Komutun içindeki kısa ad cron’un ortamında bulunmayabilir. Tam yol yazılır. Yıldızı yanlış koymak komutu her dakika çalıştırabilir.

Avantajları ve sınırları

Avantaj: iş sensiz de açılır, satır kısadır, Linux sunucusunda hazırdır. Sınır: hata sessiz kalır ve işler üst üste binebilir. cron programın kendisi değildir. Yalnız vakti gelince komutu çağırır.

Temel kavramlar

Beş göz zamanı söyler. Altıncı parça komuttur. Kullanıcı işin kimin adıyla açıldığını söyler.

  • Yıldız her değer demektir
  • 0 3 * * * her gece saat 03:00
  • crontab -l listeyi gösterir
  • Sonuç kendi ekrana çıkmaz

Kısa örnek

Bu satır her gece saat 03:00’te bir kopya komutu çağırır. Komutun kendisi burada yazılmamıştır, yalnız yolu vardır.

0 3 * * * /usr/local/bin/backup

Sık sorulan sorular

  • cron programlama dili mi? Hayır. Vakti gelince hazır komutu çağırır.
  • İş düşünce ekranda görünür mü? Hayır. Pencere yoktur. Sonucu dosyaya veya günlüğe yazmak gerekir.
  • Yıldız yalnız pazartesi mi demektir? Hayır. Yıldız o gözün her değeri demektir.