makalemizin içeriği crontab nedir , kullanımı nasıldır …
Crontab, windowsta ki zamanlanmış görevlerin Unixteki karşılığıdır.
Yazdığımız komutun yada shell scriptlerin belirttiğimiz zamanlarda calışmasını sağlar.
Crontab editlemek için nano yada vi gibi text editörlerden yararlanırız.
export EDITOR=nano diyerek nano’yu varsayılan editör yapabiliriz yada default olarak vi kullanabiliriz.
Aşağıdaki komutları hangi kullanıci ile calıştırırsanız o kullanıcının crontab’ında işlem yapmış oluruz.
crontab -l : crontab içeriğini görüntüler.
crontab -e : öntanımlı metin editörünüzde crontab konfigurasyonu açılır.Bu sayede crontab’a eklemek istediğimiz scripti ve çalışmasını istediğimiz zaman dilimini belirtebiliriz, yada varolan satırlarda istediğimiz güncellemeyi yapabiliriz.
crontab –r test : test kullanıcısının crontab dosyasını crontab dizininden siler.
Crontab Dosyaları
/etc/cron.d ana cron dizini
/etc/cron.d/cron.allow izin verilen kullanıcı listesi
/etc/cron.d/cron.deny engellenen kullanıcı listesi
/etc/default/cron crontab default ayarlarını içerir.
/var/cron/log accounting bilgileri
/var/spool/cron/crontabs crontab için spool alanı
Crontab ` da zamanlama
Crontab da zamanlama 5 adımda yapılır:
* * * * * çalıştırılacak komut
- - - - -
| | | | |
| | | | +——- haftanın günü (0-7) (pazar için 0, isim kullanılabilir(ingilizce))
| | | +———- ay (1-12) (veya ay isimleri)
| | +————– ayın günü (1-31)
| +—————– saat (0-23)
+———————- dakika (0-59)
Bir zaman biriminde birden fazla değer kullanmak için değerleri virgülle (,) ayırmak gerekir. Eğer bir aralık girmek istiyorsanız başlangıç ve bitir tire (-) ile ayrılır
crontabta tanımlanan script yada komut çalıştırıldıktan sonra kullanıcıya email gönderir. Bu özelliği kapatmak için cronda tanımlanan satırın sonuna
> /dev/null 2>&1 eklenebilir.
Script çalışması esnasında gercekleşen olayları bir log dosyasında toplamak içinse
> /dev/null 2>&1 yerine /tmp/test.log 2>&1 dememiz yeterlidir.
Log dosyasına yazarken > kullanırsak geçmişe ait logu siler , >> kullanırsak yeni logları dosyanın sonuna ekler.
Örnek kullanım şekilleri
Aşağıdaki crontabta her haftanın ilk günü gece 02 de düzenli olarak backup scriptimiz çalışır.
/tmp/oraclebackup.log 2>&1 dosyasına script çalışması esnasında oluşan logları yazar.Eğer herhangi bir hata almışsak script çalışmasında bu dosyaya inceleyip bir sonuca varabiliriz.
-bash-3.00$ crontab -l
GNU nano 2.0.9 File: /tmp/crontabpba4YP
#haftalik backup almak icin eklenmistir.
00 02 * * 1 /u01/oracle_backup/oracle_backup.sh > /tmp/oraclebackup.log 2>&1
Aşağıdaki crontabta her gün her ay her saat 10 dakikada bir scriptimiz çalışır.
/tmp/test.log 2>&1 dosyasına script çalışması esnasında oluşan logları yazar
00,10,20,30,40,50 * * * * /u01/app/scripts/test.sh > /tmp/test.log 2>&1
Aşağıdaki crontabta her gün sabah 9 Akşam 18 Arasında Her Saat scriptimiz çalışır
00 09-18 * * * /u01/app/scripts/test.sh
Bir scriptin yada komutun çalışmasını istemediğinizde silmeniz ya da yorum satırı haline getirmeniz yeterlidir (başına # koyarız).
Keyifli çalışmalar…