Linux’ta Cron Oluşturma
Tarih: : 20 Haz, 2012 Kategori: Programlama, Unix | 1 yorum
Unix tabanlı herhangi bir işletim sisteminde (Ubuntu, Debian vs) zamanlanmış görev oluşturmak için crontab dosyasını aşağıdaki gibi düzeltmeniz gerekiyor. Crontab, bizim belirttiğimiz zamanlarda, yine bizim belirttiğimiz komutları çalıştırmak için kullanılır. Aşağıda bir kaç örnek ile çeşitli zaman aralıklarında, çeşitli komut ve dosyaları çalıştıran kodları paylaşıyorum.
Önce kısa bir giriş yaparak Cronjob alanlarımızın neler olduğunu açıklayalım. Bir crontab dosyasına job eklemek için 5 tane zaman alanı ve bir de komut alanımız var. Genel format şu şekilde:
* * * * * komut
1. *: Dakika (0 – 59)
2. *: Saat (0-23)
3. *: Ayın kaçıncı günü (1-31)
4. *: Ay (1-12)
5. *: Haftanın kaçıncı günü (0:7: Pazar, 1: Pazartesi, 2: Salı, 3: Çarşamba, 4: Perşembe, 5: Cuma, 6: Cumartesi)
Komut: Çalıştırılacak komut
Daha önce oluşturduğunuz -varsa- görevleri görmek için aşağıdaki komutu kullanabilirsiniz.
crontab -l
Düzenlemek için ise:
crontab -e
Her 5 dakikada çalışacak bir Cron Job
*/5 * * * * /home/kullanici/program.sh
Crontab’ınızı bu şekilde oluşturduğunuzda her 5 dakikada belirtilen dizindeki program.sh dosyası çalışacaktır. Eğer dosyamızın 5 değil de 15 dakikada bir çalışmasını isteseydik o zaman */5
yerine */15
yazmamız gerekecekti.
Her 5 saatte çalışacak bir Cron Job
* */5 * * * /home/kullanici/program.sh
Crontab’ınızı bu şekilde oluşturduğunuzda ise her 5 saatte belirtilen dizindeki program.sh dosyası çalışacaktır. Eğer dosyamızın 5 değil de 15 saatte bir çalışmasını isteseydik o zaman */5
yerine */15
yazmamız gerekecekti.
Her 5 günde çalışacak bir Cron Job
* * */5 * * /home/kullanici/program.sh
Crontab’ınızı bu şekilde oluşturduğunuzda ise her 5 günde belirtilen dizindeki program.sh dosyası çalışacaktır. Eğer dosyamızın 5 değil de 15 günde bir çalışmasını isteseydik o zaman */5
yerine */15
yazmamız gerekecekti.
Her 5 ayda çalışacak bir Cron Job
* * * */5 * /home/kullanici/program.sh
Crontab’ınızı bu şekilde oluşturduğunuzda ise her 5 ayda belirtilen dizindeki program.sh dosyası çalışacaktır. Eğer dosyamızın 5 değil de 15 ayda bir çalışmasını isteseydik o zaman */5
yerine */15
yazmamız gerekecekti.
Her haftanın 5. gününde çalışacak bir Cron Job
* * * * 5 /home/kullanici/program.sh
Bu crontab ise diğerlerinden biraz daha farklı. Sebebi ise komutu her 5 günde bir değil, yalnızca her haftanın 5. gününde çalıştırması. Yani her hafta Cuma günü belirlediğimiz komut çalışacak.
Günün belirli saatlerinde çalışacak bir Cron Job
* 8-18/2 * * * /home/kullanici/program.sh
Yukarıdaki örnekte ise saat 8 ile 18 arasında her 2 saatte çalışacak bir komut tanımlıyoruz.
Cron Job ile bir PHP dosyasını çalıştırmak
Eğer zamanladığınız görev bir komut değil de bir php dosyası ise kod aşağıdaki şeklide olmalı.
* */2 * * * php -q /home/kullanici/dosya.php
Bu örnekte de her 2 saatte dosya.php dosyası çalıştırılacaktır.
çok faydalı bir yazı emeklerinize sağlık