1 min read

PHP ile Cronjob İşi Tanımlama

Öncelikle Cronjob’un ne olduğundan bahsedelim, cronjob linux sunucularda genellikle kullanılan zaman ayarlı görevlerdir, yani belirli aralıklarla çalışan komutlardır. Örnek olarak zaman ayarlı mail gönderimlerini verebiliriz, bu mail görevlerinde her 5 dakikada bir kontrol yapılıp gönderim işlevini cronjob sayesinde rahatlıkla yapabiliriz.

PHP ile de cronjob işleri tanımlayıp php scriptlerimizi, fonksiyonlarımı çalıştırabiliriz. Bu sayede zamana bağlı işleri (dump alma, mail kontrol vb.) işlevleri sürekli kaçırmadan yapabiliriz.

Cronjob işlevlerini tanımlamak için bazı kuralları vardır bunlardan kısaca bahsedecek olursak.

.---------------- dakika (0 - 59)
|  .------------- saat (0 - 23)
|  |  .---------- Ayın Günleri (1 - 31)
|  |  |  .------- Ay (1 - 12)
|  |  |  |  .---- Haftanın Günleri (0 - 6) (Pazar=0 ya da 7)
|  |  |  |  |
*  *  *  *  *  Çalıştırılacak komut

Olarak tanımlayabiliriz. Bu tanımlamaları crontab (/etc/crontab) dosyasına yazılarak kullanırız.

PHP ile Cronjob Tanımlama

PHP de sistem komut işlemlerini exec fonksiyonu ile yapabiliyoruz, bu fonksiyonu kullanarak yine cronjob işlerimizi tanımlayacağız. Örnek olarak ben bu yazıda 10 dakikada bir çalışan bir php dosyası tanımı yapacağım.

$komut = "echo -e "`crontab -l`\n*/10 * * * * /usr/bin/php /var/www/script.php" | crontab -";
exec($komut);

Bu kodumuz sayesinde Cronjob işini tanımlamış olduk ve PHP tarafından her 10 dakikada bir script.php dosyasını çalıştıracağını belirledik.