Crontab

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…

About Yunus Emre Kilinc

Mersin Üniversitesi Bilgisayar Mühendisliği bölümünü bitirdikten sonra Ankara'da yaşamaya başladım. Şu anda Fatih Üniversitesinde İşletme yüksek Lisansı(MBA) na devam etmekteyim. 2010 yılında Oracle DBA eğitimi aldım. OCA 11gR2 sertifikasına sahibim. 2009 yılından beri Türk Telekom A.Ş de xDSL teknolojileri alanında çalışmaktayım. Oracle veritabanı yönetimi konularında kendimi geliştirmeye çalışmaktayım. İlgilendiğim ve kullandığım teknolojiler : Oracle SQL , PL/SQL Oracle 11g , Oracle 10g , UNIX (Sun Solaris), UNIX (HP-UX) ,OSI Model , IP ,DSL ,Unix Shell Scripting

İlginizi Çekebilir

SQL Server ile Veri Şifreleme

Bilgi teknolojilerinde verinin güvenliği çok kritik bir öneme sahiptir. Önemli verileri korumak için ekstra bir …

Bir Cevap Yazın