Cronjob Nedir? Nasıl Kullanılır?

Cron Job (Zamanlanmış Görev) ileri tarihli tek seferlik ya da tekrarlanır veya duruma göre değişkenlik gösterebilir zaman uyarlı komutlar uygulamak için yaygın bir şekilde kullanılan yöntemlerden biridir. Sistem yedeği almaktan e-posta göndermeye, sertifika kurulumlarından herhangi bir servisi aktifleştirme/pasifleştirme, WordPress wp cron fonksiyonu ile postlarınızı planlama işlemlerine aklınıza gelebilecek bir çok amaç için kullanılabilir. Kullanım işlemleri çoğunlukla CPanel üzerinden planlanmaktadır. Ancak, bu yazı ve bir sonra Crontab yazısında komut satırı üzerinden nasıl düzenleyebileceğimizi anlatacak ve örneklendireceğim.

Zaman planlaması şu şekilde belirtilmektedir. Belirli tekrarlar için (saatlik, günlük, haftalık, aylık) işlemler shell script olarak şu klasörler içerisine yerleştirilebilir.

Saatlik: /etc/cron.hourly,
Günlük: /etc/cron.daily,
Haftalık: /etc/cron.weekly
Aylık: /etc/cron.monthly

macOS için benzer dizin tanımlamaları periodic ya da iCal, launchd gibi alternatiflerle de farklı kapsamlarda kontrol edilebilmektedir.

Ancak, daha spesifik işlemler gerçekleştirmek için komutları crontab üzerinden zaman ifadeleriyle birlikte oluşturmak gerekir.

* * * * * ( [dakika] [saat] [gün] [ay] [haftanın günü] )
┬ ┬ ┬ ┬ ┬
│ │ │ │ │
│ │ │ │ │
│ │ │ │ └───── haftanın günü (0 – 6) ([0] pazar - [1] p.tesi - [2] salı - [3] çarş. - [4] perş. - [5] cuma - [6] c.tesi)
│ │ │ └────────── ay (1 – 12)
│ │ └─────────────── gün (1 – 31)
│ └──────────────────── saat (0 – 23)
└───────────────────────── dakika (0 – 59) 

Örneğin, her gün saat 13.00’da bir görevin gerçekleştirilmesini istersek zaman ifademiz şu şekilde olacaktır.

0 13 * * *

Her 30 dakikada bir yinelecek işlemler için ise zaman ifadesini şu şekilde belirtebiliriz.

30 * * * *

Daha detaylı zaman ifadeleri için Cron Format sayfasını inceleyebilirsiniz.

Örneğin, her 1 dakikada bir (* * * * *) bilgisayarımızda Terminal uygulamasının açılmasını görev olarak ekleyelim.

env EDITOR=nano crontab -e

nano ile görev tanımlayacağımız sayfayı açıp aşağıdaki satırı ekleyelim.

* * * * * open -a Terminal

Satırı ekleyip dosyayı kaydettiğimizde crontab: installing new crontab geri bildirimini alacağız. Özetle bu satır her 1 dakikada bir Terminal isimli uygulamayı açacaktır. Eklediğimiz ve işlemde olan görevleri -l parametresiyle görüntüleyebiliriz.

crontab -l

Bir sonraki yazıda Cron Job tanımlamalarını Crontab komutu üzerinden nasıl daha detaylı tanımlayabileceğimiz ile ilgili örnekler paylaşacağım.

Leave a Reply