Cron jobs nedir nasıl kurulur ayarları nelerdir ?

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.

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

Standart modda kullanicidan islemin yapilacagi zamani seçmesi, rapor gönderilecek mail adresi ve
yapilacak islemi girmesi istenir.


Formun en üstündeki alana islem gerçeklestiginde ya da bir hata olustugunda rapor gelmesi istenen adres girilir.

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.

Üçü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

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.

Bu cevap yeterince yardımcı oldu mu?

Daha Fazlası

Linux Dosya ve Klasör Toplu Chmod İzin Değiştirme

Linux sistemlerde özellikle web site barındıranların sık kullandığı bir komuttur chmod komutu....

PHP-FPM Modu Önerilen Ayarlar

Linux sunucularınızda PHP yi FPM modunda kullanıyor iseniz bazı ayarlar araştırıyorsunuzdur...

SPF Kaydı Ekleme

SPF kaydını hosting / sunucu panelinizin DNS bölümünden TXT türünde aşağıdaki gibi...

cPanel den Centos Web Panele Yedek (Site) Taşıma

cPanel de barınan web sitenizin yedeğini aşağıdaki şekilde centos web panele taşıyıp...

Ubuntu Güncelleme Komutları

Ubuntu işletim sisteminizi aşağıdaki komutlar ile güncelleyebilirsiniz ;sudo apt-get updatesudo...