Cronjob Ne İşe Yarar

Cronjob linux sistemlerde bir programcığı belli aralıklarda sürekli çalıştırmamıza imkan tanıyan bir işlevdir. Cronjob sayesinde her 5 dakikada bir , saatte bir ,günün belli saatlerinde, haftanın belli saatlerinde vb. sekillerde zamanlama belirleyip istediğimiz bir komutun çalışmasını sağlayabiliriz. Mesela her gece saat 02:00 da sistemin veri tabanı yedeğini almasını sağlayacak bir programcık yazıp saati geldiğinde çalışmasını sağlaya biliriz. her saat başı sistem yükünü mail olarak bildirecek bir programcık yazabiliriz. Bunlar gibi daha bir çok tekrarlı iş cronjob ile kolaylıkla yapılabilir.

Kullanımı

crontab_explanation

Bir cronjob ayarlamak için konsolda “crontab -e” komutunu kullanıyoruz. “crontab -e” komutu çalıştırılırken aktif olan kullanıcı hangi kullanıcı ise yapılan değişiklikler sadece o kullanıcını oturumu açık olduğu zaman çalıştırılır. Örneğin: sametatbasch kullanıcısı ile crontab -e komutunu çalıştırdığımda yapacağım düzenlemeler sadece sametatabasch kullanıcısı aktif olduğu zaman çalıştırılır. Sistemin çalıştığı her an komutların çalışmasını istiyorsanız. root kullanıcısı ile değişiklik yapmalısınız. Root kullanıcısına direk erişiminiz yok ise sudo komutu ile bu işlemi yapabilirsiniz.

sudo crontab -e

komutunu çalıştırdığımızda cronjob listesi gelecektir. Herbir satır farklı bir komutu belirtir. Her satırda 5 tane zaman belirteci ve son olarak çalıştırılacak komut yazılır. Bu alanların her biri diğerinden boşluk ile ayrılır. Zaman belirteçleri sıra ile şunları ifade eder: dakika (0-59), saat (0-23, 0 = gece yarısı), gün (1-31), ay (1-12), haftanın günü (0-6, 0 = Pazar).

01 04 1 1 1 /usr/bin/somedirectory/somecommand

 

yukarıdaki satır her Ocak ayının ilk haftasının ilk gününde saate 04:01 de yani her Ocak ayının ilk pazartesi gününde  /usr/bin/somedirectory/somecommand komutunu çalıştıracaktır.

01 04 * * * /usr/bin/somedirectory/somecommand

 

zaman belirteci olarak * işareti kullanırsanı o belirtecin tüm değerlerinde çalıştırılacağı anlamına gelir. Yukarıdaki örnekte her yılın her ayının her gününde saat 04:01 de yani hergün 04:01 de belirtilen komutu çalıştıracaktır.

Zaman belirteçlerinde virgül kullanarak birden fazla değer girişi yapabilirsiniz.

01,31 04,05 1-15 1,6 * /usr/bin/somedirectory/somecommand

 

bu crontab satırı her 1. ve 6. ayın 1. ve 15. günü saat 04:01, 04:31, 05:01, ve 05:31 de belirtilen komutu çalıştıracaktır.

Zaman belirteçlerinde bölme işlemini kullanarak da tanımlama yapabilirsiniz. Örneğin her 10 dakikada bir çalıştırılacak bir komut için :

*/10 * * * * /usr/bin/somedirectory/somecommand

bu kod aşağıdaki ile aynı işi görecektir.

*/10 * * * * /usr/bin/somedirectory/somecommand

Ayrıca zaman belirteçleri için bazı anahtar kelimeler de kullanabilirsiniz. Bunlar:

Anahtar          Anlamı

@reboot          başlangıçta bir kere çalıştırır.

@yearly          Her yıl çalıştırılır, “0 0 1 1 *”.

@annually     (@yearly ile aynı)

@monthly     Ayda bir çalıştırılır, “0 0 1 * *”.

@weekly        Haftada bir çalıştırılır, “0 0 * * 0”.

@daily            Günde bir çalıştırılır, “0 0 * * *”.

@midnight    (@daily ile aynı)

@hourly         Saatte bir çalıştırılır, “0 * * * *”.

@reboot /path/to/execuable1

Crontab fonksiyonunu hiç kullanmadan saatlik, günlük, haftalık ve aylık işlemleri çalıştırmak için /etc/ dizininde bulunan cron.hourly/ cron.daily/ cron.weekly/ cron.monthly/ dizinlerine çalışrıtmak istediğiniz komut dosyasını ekleye bilirsiniz.

KDE masaüstü ortamında görsel arayüz kullanarak bu işlemleri yapmak için Sistem Ayarları -> Başlatma ve Kapatma -> Görev Zamanlayıcı menüsünü kullanabilirsiniz.

 

Samet ATABAŞ

Sakarya Üniversitesi Bilgisayar ve Öğretim Teknolojileri Öğretmenliği Mezunu.PHP Developer

Bir Yorum Yazın