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ı listesinicrontab -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 dakika10 * * * *
her 10 dakika da* 1 * * *
her saat5 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
- https://crontab.guru/ — cron zamanlama ifadesi oluşturma aracı.
- https://crontab.guru/examples.html — örnekler
- https://crontab.guru/crontab.5.html — man sayfası
- The Beginner’s Guide to Using Cron to Schedule Tasks in Linux -örnekler ve bilgilendirme
- 4 Useful Cron Alternatives For Linux — özellikleri yeterli değilse alternatifleri