crontab nedir ?

Özkan ŞEN
SDTR
Published in
2 min readMay 18, 2020

Hakkında

Unix/Linux tabanlı sistemlerde tanımlanan görevleri belirtilen zamanlarda süreklilik içerisinde çalıştırır.

Örn: her saat, her dakika, her ayın birinci günü gibi..

Kullanımı

Her kullanıcı için farklı crontab tanımlamaları mevcuttur.
sudo crontab -e: root kullanıcısının tanımlı listesini
crontab -e: mevcut kullanıcı yetkileri ile çalışan görevleri editorde açar.

Not: bash veya zsh gibi kabukların .bashrc veya .zshrc dosyalarında export EDITOR='nano' gibi tanımlama mevcut ise seçim ekranı gelmeden o editörde açar.

crontab ile kullanılabilecek diğer argümanlar:
-u user yetkiniz varsa o kullanıcının crontab işlemlerini düzenleyebilirsiniz
-l kullanıcının tanımlı görevlerini listeler
-r tanımlı görevlerin tümünü siler
-i yapılan işlem için y/n onayı bekler

crontab -e ile editörümüzü açtığımızda sayfa sonuna şu şekilde tanımlamalar yapabiliriz.
* * * * * echo "Selam" >> cikti_dosyası.txt
yazdığımızda kullanıcı yetkileri ile her dakika ~/ dizininde çalışır ve örnekde belirtildiği gibi cikti_dosyasi.txt adında bir dosyaya çıktıları ekler.

* * * * * 5 adet girdi yıldız ile gösterir. Aralarında birer boşluk var.
Sırasıyla dakika saat ayın-günü ay haftanın-günü nü ifade eder.

Örn:

  • * * * * * her dakika
  • 10 * * * * her 10 dakika da
  • * 1 * * * her saat
  • 5 0 * 8 * 8. ay ağustos saat 00:05 de
  • @daily her gün

Bash scriptlerinde sıkca kullandığım pratik yöntem:

echo "* * * * * example_command | crontab -"

başka bir işleme gerek kalmadan crontab görevlerini ekleyebilirsiniz.

Ek olarak :

@yearly         her sene — yıla girdiğinde 00:00 da
@annually her sene — yıla girdiğinde 00:00 da
@monthly her ay
@weekly her hafta
@daily her gün
@hourly her saat
@reboot sistem açılışında

Kaynaklar

--

--