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ı

Windows RDP (Uzak Masa Üstü Bağlantısı) Portu Değiştirme

Bazı durumlarda windows sunucunuzun uzak masaüstü bağlantı portunu (RDP) değiştirmek...

Microsoft Remote Desktop (RDP) Uzak Kod Çalıştırma Açığı - CVE-2019-0708

Merhabalar,Microsoft Windows 8 ve Windows Server 2012 öncesi işletim sistemlerini kapsayan bir...

Microsoft Windows Güvenlik Açığı - MS17-010

Microsoft windows işletim sistemlerinde uzak kod çalıştırma imkanı sağlayan MS17-010 adlı açık...

Windows Server DHCP Açığı - CVE-2019-0725

Windows Server mimarili işletim sistemlerinde DHCP açığı tespit edilmiş ve buna yönelik...