Wiki

Crontab Kullanımı

Herhangi bir hosting yönetim paneline sahip veya üzerinde LEMP ya da LAMP kurulu bir web sunucuda crontab kullanmak isterseniz, PHP dosyalarınızın nasıl çalıştırılacağı konusunda bilgi sahibi olmanız gerekiyor. Eğer bir panel aracılığıyla işlem gerçekleştirmiyorsanız, konsol üzerinden crontab dosyasını açmak için aşağıdaki komutu kullanabilirsiniz.

crontab -e

Crontab dosyasına bir görev aşağıdaki gibi eklenir.

*  *  *  *  *  curl https://www.websozluk.net/abc.php

veya

*  *  *  *  * php /home/websozluk/www/abc.php

veya

*  *  *  *  *  /bin/sh /root/abc.sh

Peki, baştaki karakterler neleri ifade ediyor?

.---------------- 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)
| | | | |
* * * * * curl https://www.websozluk.net/abc.php

Yıldız karakterler tüm zamanları ifade etmek amacıyla kullanılırlar. Yukarıdaki örneğe göre eklenmiş olan görev her ay, her hafta, her gün, her saat ve her dakika çalışacaktır.

Sık sık tercih edilen görev zamanlarını ifade etmek için örnekler ekleyelim.

Her 15 Dakikada Bir Görev Çalıştırmak

*/15 * * * * curl https://www.websozluk.net/abc.php

Her 3 Saatte Bir Görev Çalıştırmak

0 */3 * * * curl https://www.websozluk.net/abc.php

Belli Saatlerde Bir Görev Çalıştırmak

0 9,18 * * * curl https://www.websozluk.net/abc.php

Belli Saatler Arasında Bir Görev Çalıştırmak

0 9-18 * * * curl https://www.websozluk.net/abc.php

Hosting yönetim panellerinde de görev eklemenin bir farkı yok. Yine zaman seçip, çalışacak komutu yazmak gerekiyor. Yukarıdaki örneklerin yeterli geleceğini düşündüğüm için herhangi bir panel üzerinden ekran görüntüleri alma gereği duymadım.

Ek olarak belirtmek isterim, kimi zaman çalışacak komutlarda “wget http://www.siteadresi.com/abc.php” gibi eklemeler yapıldığını görüyorum. Bu uygunsuz bir kullanımdır. wget dosyayı indirme görevi görür. Elbette, kod çalışır. Fakat, abc.php dosyasını crontab her çalıştırdığı zaman disk alanınıza kaydeder. Gereksiz yere disk ve inode kaplamış olursunuz. curl ve php komutlarını kullanarak görev eklemenizi öneririm.

Yazar Hakkında

Gürkan Biçer

Gürkan Biçer

PHP Developer, Network & System Administrator

Yorum Yazın