HELLO, I’M SERHAT AND THIS IS MY FANCY TITLE.

Cronjob ve Moodle Cron İşleri

Cron çok basit ifade etmek gerekirse, zamanlandırılmış görevlerdir. Cron görevleri 2 kısımdan oluşur. Birinci kısım cron'un ne zaman çalışacağını, ikinci kısım ise çalıştığı zaman ne yapacağını belirtir. İlk kısım, yani cron'un ne zaman çalışacağının belirtildiği kısım 5 alandan oluşur ve alanlar bir tane boşluk karakteri (space) ile ayrılır.

# * * * * * çalıştırılacak komut
# ┬ ┬ ┬ ┬ ┬
# │ │ │ │ │
# │ │ │ │ │
# │ │ │ │ └───── Haftanın günü (0-6 arası değer veya *) (0 = Pazar'ı ifade eder.)
# │ │ │ └────────── Ay (1-12 arası değer veya *)
# │ │ └─────────────── Gün (1-31 arası değerveya *)
# │ └──────────────────── Saat (0-23 arası değerveya *)
# └───────────────────────── Dakika (0-59 arası değer veya *)

* karakteri ise "her" anlamı taşır. Örneğin "her hafta", "her gün", "her saat" vb.

Örneğin, her gün saat 23:59'da belli bir dizini temizlemek istiyorsanız:

59 23 * * * rm /home/msdundar/test/*

Örneğin, aynı dizini, sadece Pazartesi'den Cuma'ya her gün saat 23:59'da temizlemek istiyorsanız:

59,23 * * * 1-5

Aynı cron görevini şöyle de yapabilirdik:

59,23 * * * MON, WED, FRI

Eğer bir Cron görevinin birden çok işi yapmasını istiyorsak && kullanırız:

59 23 * * * tar -zcvf sonyedek.tar.gz /home/msdundar/test && rm /home/msdundar/test/*

Cron Görevi oluşturmak ve pattern ile boğuşmamak için CronMaker, oluşturduğunuz cron görevini test etmek için ise EasyCron gibi araçları kullanabilirsiniz.

Moodle ve Cron Görevleri

[Terminal] - Cron görevini çalıştır:

$ [sudo] /usr/bin/php /var/www/moodle/admin/cli/cron.php

[Tarayıcı] - Cron görevini çalıştır:

  • Öncelikle; Site yönetimi -> Güvenlik -> Site ilkeleri adresinden cronremotepassword değeri belirlenmelidir. Daha sonra URL üzerinden çalıştırabilirsiniz:
http://laylaylom/admin/cron.php?password=sifreniz

[curl-wget] - Cron görevini çalıştır:

$ /usr/bin/curl http://laylaylom/admin/cron.php?password=sifeniz

Cron Görevleri Hazırlamak

Sistemde kendi oluşturduğun bir cron görevi var mı kontrol et:

$ crontab -l

Sistemde diğer userların oluşturduğu bir cron görevi var mı kontrol et:

$ [sudo] crontab -u root -l
$ [sudo] crontab -u www-data -l
$ [sudo] crontab -u msdundar -l

Diğer userların oluşturduğu cron görevlerine müdahale et:

$ [sudo] crontab -u root -e

Moodle için cronjob'ı www-data user'ı üzerinden oluşturmak süreklilik açısından tavsiyedir.

Cronjob eklemek için dosyayı düzenle:

$ [sudo] crontab -u www-data -e

Dosyaya görevi ekle ve kaydet:

*/59 * * * * /usr/bin/php /var/www/moodle/admin/cli/cron.php

Başarılar.


Share this post!


Blog Comments powered by Disqus.