1- Cronjobs Nedir?
Cron istenilen görevlerin belirli zaman araliklari ile arkaplanda yapilmasina izin veren bir UNIX
aracidir.
2- Crontab (Cron TABle) Nedir?
Çalistirilacak görevi ve görevin çalistirilacagi zamani barindiran dosyadir.
2.1- Crontab Sinirlamalari
Crontab'i kullanici adiniz usr/lib/cron/cron.allow dosyasinda varsa veya böyle bir dosya
bulunmuyorsa ve adiniz usr/lib/cron/cron.deny dosyasinda yoksa kullanabilirsiniz.
Tüm kullanicilarin Crontab'i kullanabilmesi için usr/lib/cron/cron.deny dosyasinin bulunmasi ve
bos olmasi gerekir. usr/lib/cron/cron.deny dosyasi bulunmuyorsa Crontab'i yalnizca Root kullanici
kullanabilir.
2.2- Crontab Komutlari
crontab -e Crontab dosyasi bulunuyorsa düzenlemenizi, bulunmuyorsa yaratmasinizi saglar.
crontab -l Crontab dosyasini gösterir
crontab -r Crontab dosyasini siler
crontab -v Crontab dosyasinin en son düzenlendigi tarihi gösterir
2.3- Crontab Dosyasi
Crontab Dizilimi:
Crontab dosyasi sirasi ile Dakika (0-59), Saat (0-23), Ayin Günü (1-31), Ay (1-12) ve Haftanin
Günü (0-6) (Pazar = 0) alanlarini ve çalistirilacak komutu barindirir. "*" (tirnaklar hariç)
kullanildigi alan için kullanilabilinecek tüm degerleri ifade eder. Bir alan için girilecek
birkaç
deger ","(virgül) ile ayrilabilir.
* * * * * Çalistirilacak Komut
- - - - -
| | | | |
| | | | +----- haftanin günü (0 - 6) (Pazar=0)
| | | +------- ay (1 - 12)
| | +--------- ayin günü (1 - 31)
| +----------- saat (0 - 23)
+------------- dakika (0 - 59)
2.4- Örnek Crontab Dosyasi
Hergün saat 18:30'da /tmp klasöründeki dosyalari silen crontab satiri asagidaki gibidir.
30 18 * * * rm /home/kullaniciadi/tmp/*
Asagida birkaç zamanlama örnegi ve çalistirilma zamanlari verilmistir.
dak saat gün/ay ay gün/hafta Çalistirilma Zaman
30 0 1 1,6,12 * Ocak, Haziran ve Aralik aylarinin birinci günü saat 00:30'da
0 20 * 10 1-5 -- Ekim ayinin her Pazartesi ve Cumasi saat 20:00'de
0 0 1,10,15 * * -- Her ayin 1'inde, 10'unda ve 15'inde gece yarisi (00:00)
5,10 0 10 * 1 -- Pazartesileri ve her ayin 10. gününde saat 12:05 ve 12.10'da
2.5- Crontab Sabitleri
Cron, kullanici ev dizinindeki komutu kabuk yardimiyla çalistirir (/usr/bin/sh) ve tüm kabuklar
için
destekledigi bazi degerler vardir.
Bunlar;
HOME= Kullanici ev dizini
LOGNAME= Kullanici giris adi
PATH= /usr/bin:/usr/sbin:.
SHELL= /usr/bin/sh
2.6 Email Iptali
Cron, öntanimli olarak islemi gerçeklestirdiginde kullaniciya email gönderir.
Eger bunun gerekli olmadigini düsünüyorsaniz asagidaki kodu cron görev satirinin sonuna
eklemelisiniz.
>/dev/null 2>&1
örn: 30 18 * * * rm /home/kullaniciadi/tmp/* >/dev/null 2>&1
2.7- Log Dosyasi Olusturma
Cron'un yaptigi islemleri bir log dosyasinda tutmak isterseniz,
30 18 * * * rm /home/someuser/tmp/* > /home/someuser/cronlogs/clean_tmp_dir.log
3- Cpanel'de Cronjobs
Cpanel altinda Cronjobs kisminda cronjob yaratmak için 2 farkli mod bulunmaktadir.
Orjinal boyutları : Genişlik:446 x Yükseklik:215
3.1- Standart Mod
Standart mod çogu yeni kullanici için daha uygundur. Bu seçenek gerekli ayarlarin formdan
seçilebilmesini sagladigindan islemin daha hizli ve basit yapilabilmesini saglar. Standart mod 12
saatlik biçemi kullanmakta böylece kullanicinin istedigi zamani seçmesini kolaylastirmaktadir.
(AM= 0-12, PM= 12-23)
3.1.1- Standart Mod ile Cronjob Ekleme
Orjinal boyutları : Genişlik:446 x Yükseklik:440
Standart modda kullanicidan islemin yapilacagi zamani seçmesi, rapor gönderilecek mail adresi ve
yapilacak islemi girmesi istenir.
Orjinal boyutları : Genişlik:517 x Yükseklik:34
Formun en üstündeki alana islem gerçeklestiginde ya da bir hata olustugunda rapor gelmesi
istenen
adres girilir.
Orjinal boyutları : Genişlik:294 x Yükseklik:34
Ikinci olarak yapilacak olan islemin girilmesi gerekir. Buraya tüm unix komutlari girilebilir.
Örn: Bir klasörün tüm içerigini silmek için :
rm home/kullaniciadi/tmp/*
komutu kullanilabilir. Bu komutta da oldugu gibi "*" karakteri (joker karakter) cron
tarafindan da desteklenmektedir. Bu komutda "*" /tmp klasöründeki tüm
dosyalari temsil ettiginden /tmp klasörünün tüm içerigi silinecektir.
Orjinal boyutları : Genişlik:89 x Yükseklik:86
Orjinal boyutları : Genişlik:152 x Yükseklik:155
Orjinal boyutları : Genişlik:118 x Yükseklik:87
Üçüncü olarak islemin yapilacagi tarihi seçilir.
Son olarak Kaydet (Save Crontab) diyerek islem tamamlanir.
3.2- Gelismis Mod (UNIX Tarzi) --Advanced (UNIX Style)--
Gelismis mod UNIX tarzi cronjob eklemeyi destekler.
Deneyimli kullanicilar için daha uygundur.
3.2.1- Gelismis Mod ile Cronjob Ekleme
Orjinal boyutları : Genişlik:448 x Yükseklik:271
Gelismis modda ilk alana rapor gelmesi istenen email adresi girilir. Ardindan çalistirilma
zamanini belirlemek için sirasi ile Dakika, Saat, Ayin günü, Ay ve Haftanin günü yazilir.
Son olarak "Command" kismina çalistirilmasi istenilen komut girilerek "Commit Changes"e
tiklanir.
4- Cronjob Hakkinda birkaç ipucu
a) Görevlerin çalistirilma zamanini belirlerken birden fazla deger virgül ile ayrilarak
yazilabilir.
Ayrica asagidaki kodlar da islemin 1, 2, 5, 10 ve 15 dakika, 1, 2, 4 ve 6 saat ara ile
çalistirilmasini
saglar.
Her dakika */1 Her saat */1
Iki dakikada */2 Iki saatte */2
Bes dakikada */5 Dört saatte */4
On dakikada */10 Alti saatte */6
Onbes dakikada */15
b) Cronjobsta UNIX komutlarinin disinda PHP ve MySQL komutlarini da kullanabilmek için gerekli
kodlarin yazili oldugu dosyanin GET methodu ile çagrilmasi yeterli olur.
Örn. 0 0 1 * * GET
[Linkleri görebilmek için üye olun veya giriş yapın.]