Cron Jobs Nedir? Nasıl Kullanılır?

Sistem yönetimlerinde bir çok işlevi arada bir bile olsa yapmanız gerekir. Bu yazımızda Linux tabanlı bir web sunucusu üzerinde kurulu olan WHM/cPanel yönetim sisteminden zamanlanmış görev oluşturmayı anlatacağız.

cPanel de bulunan Cronjob ile VPS, Cloud Server, Server, Shared Hosting, VPS ve Reseller paketlerinde kullabilirsiniz. Örneğin X günde bir hostingin yedeğinin alınması ve müşterinize mail yolu ile gönderilmesi gibi görevler oluşturabilirsiniz.

Cron Jobs Kullanımı

Öncelikle belirtmek isterim ki bu özelliği cPanel üzerinden anlatacağım. Elbette Plesk, Virtuzzo gibi panellerde benzer uygulamalar mevcuttur.

cPanel’imizin hosting arayüzüne login olduktan sonra panelde “Advanced” bölümü bulunmaktadır. Burada “Cron Jobs” bölümüne tıklıyoruz.

Cron
Cron İşleri

 

 

 

 

 

 

 

Yukarıda da görüldüğü gibi Türkçe olarak “Cron İşleri” olarak çevrilmiş olabilir. Bunu da dikkate alın.

Öncelikle şunu belirtmekte fayda var ki kullanılan sistem Linux tabanlı olduğu için, Linux komutların da hakim olmakta fayda var.

1. E-posta

Burada ayarlamış olduğunuz crob job maillerinin gönderileceği adresi yazmalısınız. Tavsiyem; cron job için ayrıca bir mail hesabı oluşturmanız ve gönderilecek olan logları o hesapta tutmanızdır.

2. Otomatik Ayarlar

Belirli zaman kalıplarının bulunduğu kısımdır. Zaman kısımlarını ayarlamak ile hiç uğraşmak istemiyorsanız burada ki bir taslağı kullanabilirsiniz.

3. Dakika

Görevin dakika bazında ayarlarıdır. Dilerseniz her X dakika da bu görev çalışsın diyebilirsiniz. Burada ki saatin dakika kısmıdır. Örneğin her saatin 18. dakikası gibi.

4. Saat

Görevin saat ayarlarının yanı sıra her X saatte bir görevin gerçekleşmesini ayarlayabilirsiniz.

5. Gün

Burada da her gün, iki günde bir, ayın 1’inde ve 15’inde veya her ayın 26. gününde gibi seçenekler mevcut.

6. Ay

Burada da gün kısmında olduğu gibi her ay, iki ayda bir, 3 ayda bir, 6 ayda bir veya 9. ayda gibi seçenekler mevcut.

7. Hafta İçi

Bu kısımda da  her hafta sonu (cumartesi), salı ve perşembe, pazartesi salı ve çarşamba gibi seçenekleri seçebilirsiniz.
Burada “0” Pazar gününü temsil ederken “6” ise Cumartesi gününü temsil etmektedir. Bu bağlamda “3” Çarşamba gününü temsil eder.

Command Kısmı

Bu kısma kadar zamanlama kısmını anlattık. Sıra command, yani komut kısmında;

Burada yazdığınız komut, sunucunun shell kabuğunda çalışacaktır. Teker teker bütün komutları anlatmak aylar sürer. Shell dediğimiz kabukta Linux’un temelidir. Bundan dolayıdır ki C dilini bilenler bu konuda zorlanmazlar.

Örnek verecek olursak, her gün sabah saat 8.25’de veritabanı yedeklemek istersek;

25 8 * * * mysqldump -u VERITABANI_USER -pSIFRE VERITABANI_ADI > backup.sql
Burada dikkat edecek olursanız 25 ve 8'in yanı sıra toplam üç adet yıldızlı (*) ifade mevcut. Bunlar zamanlama kısmını anlatmaktadır. Her zaman aralığından sonra bir adet boşluk bırakılır. 25 ile 8 arasında fark ettiyseniz bir adet boşluk içermektedir. Bu bağlam;
dakika saat hafta ay yıl

olarak kavrayabiliriz. Yukarıda ki örnekte biz sunucuya her gün saat 8.25’de backup.sql dosya adında bir veritabanı yedeğini almasını söyledik. Veritabanı yedek almanın komutu da “mysqldump -u” dır. Yedek alma komutundan sonra birer adet boşluk bırakarak sırası ile veritabanı kullanıcı adı, şifre ve veritabanı kullanıcı adını belirtmeliyiz.

E-Posta Göndermemek

Eğer bu işlemlerin sonucunda e-posta almak istemezseniz command’ın sonuna “>/dev/null” komutunu girmelisiniz. Yukarıda ki örneği kullanarak açıklayalım;

25 8 * * * mysqldump -u VERITABANI_USER -pSIFRE VERITABANI_ADI > backup.sql>/dev/null

Diğer Örnekler

Örneğin ayın her 5 ile 15 arasında ve 30 dk da bir PHP kodu çalıştıralım;

*/15 * 4-10 * * php/home/KULLANICI/public_html/php_kodu.php

Bu ve bunun gibi örnekleri sizlerde gerçekleştirebilirsiniz.

Cron Jobs’un en büyük avantajı sizin yerinize sitenizin otomatik bakımlarını yapabilir, yedeklerini alabilirsiniz. Böylece siz sunucunuzun kontrol paneline yıllarca girmeseniz bile aksi bir durum gerçekleşmedikçe, sunucunuz sizin yerinize dediğiniz her şeyi yapacaktır.

Cron Job dahilinde oluşan bütün loglara bakmak istiyorsanız sunucunuzun dosya yönetimine veya FTP sunucusuna bağlanıp, ETC klasörünün altında, ETC yok ise Var/log dizinin altında sys veya rsyslog dosyalarında cronjob ile oluşturulmuş logları inceleyebilirsiniz.

Bir Cevap Yazın