Linux ve Unix icin Crontab – CronJob – Zamanlanmis Gorev

Hızlı Crontab Dökümanı (zamanlanmış görev)

Linux  (Unix) ve Solaris sistemlerde Cronjob (zamanlanmış görev) oluşturmak 

Cron, zamanlanmış görevler hazırlayabileceğiniz ve bu görevlerin arka planda cron sihirbazı ile çalıştırabileceğiniz bir özelliktir. Cron jobs (zamanalanmış görevler) cron tab (cron tables yani cron tablosu) diye çeşitli söylemleri vardır. Bunlar aynı şeydir. Bu görevler, programları ve ne zaman çalışacakları ile ilgili verileri bir dosyada tutar.

1. Crontab Kısıtları

Crontab ‘ı /usr/lib/cron/cron.allow dosyasında kullanıcı adınız yazıyorsa kullanabilirsiniz. Eğer bu dosya yok ise, /usr/lib/cron/cron.deny dosyasında adınız yok ise kullanabilirsiniz. Eğer bu dosya da yoksa, sadece root kullanıcısı crontab özelliğini kullanabilir.Allow (izin) ve deny (engel) dosyaları, 1 satırda 1 kullanıcı adı olacak şekildedir.

2. Crontab komutları

export EDITOR=vi ;cron dosyasını hangi editörde açacağınızı böyle ayarlayabilirsiniz. Burada biz “vi” editörünü seçmişiz.

crontab -e    : Crontab dosyanızı düzenleyin, yoksa oluşturun.
crontab -l     : Crontab dosyasınızın içeriğini görüntüleyin.
crontab -r    : Crontab dosyanızı silin.
crontab -v   : Crontab dosyanızı en son ne zaman düzenlediğinizi görün. (Bu sadece nadir sistemlerde çalışır)

3. Crontab dosyası
Crontab yazım kuralları :
Bir crontab dosyası içinde 5 tane özel zaman anlamı içeren alandan oluşur. Bunlardan sonra da çalıştırılacak komutu yazarız.

*     *     *   *    *        çalıştırılacak komut
-     -     -   -    -
|     |     |   |    |
|     |     |   |    +----- haftanın günü (0 - 6) (Pazar=0)
|     |     |   +------- ay (1 - 12)
|     |     +--------- ayın günü (1 - 31)
|     +----------- saat (0 - 23)
+------------- dakika (0 - 59)

içinde * olan alanlar için geçerli tüm değerleri yazmışsınız gibi düşünebilirsiniz.
Alanların içinde * veya,  (1,2,3) gibi virgülle ayrılmış değerleri yazabilirsiniz.
Notlar
Bazı kullanımlar tüm işletim sistemlerinde geçerli olmadığından, bunları kullanmamak en doğrusu. Bu yüzden belirtmiyorum burada.

Haftanın günü ve ayın günü  kısımlarına bir şey yazdığınızda her ikisi de çalışır. Yani OR ile birleştirilmiş bir query gibidir.

4. Crontab Örnekleri
Crontab dosyasındaki bir satır aşağıdaki gibidir. Bu kod, hergün saat 18.30 da /home/user/tmp/ klasörünün içini temizler.

30     18     *     *     *         rm /home/user/tmp/*

Aşağıdaki tabloda da komut olmadan zamanlama ile ilgili bir kaç örnek bulabilirsiniz.

min hour day/month month day/week Execution time
30 0 1 1,6,12 * – Ocak haziran ve aralık aylarının 1. gününde saat 00.30 da çalışır.
0 20 * 10 1-5 – Ekim ayında haftanın her pazartesi ve Cuma günlerinde 20.00 de çalışır.
0 0 1,10,15 * * – her ayın 1 inde 10unda ve 15 inde saat (00.00’da )gece yarısı çalışır.
5,10 0 10 * 1 – Her ayın 10unda ve her pazartesi saat 00.05 ve 00.10 da çalışır.
:

5. Crontab Ortamı

cron komutları kullanıcının ana klasöründen shell ile çalıştırır. (/usr/bin/sh)
cron her shell için varsayılan bir ortam destekler. aşağıdakileri tanımlar.
HOME=/kullnici/klasoru
LOGNAME=kullanicinin_idsi
PATH=/usr/bin:/usr/sbin:.
SHELL=/usr/bin/sh

6. Email gönderimi iptal etmek

Varsayılan olarak cronjob işlemi yapınca mail atar. kapatmak istiyorsanız cronun en sonuna aşağıdaki kodu ekleyin.

>/dev/null 2>&1

7. Log dosyası üretmek
Crondan çıkan outputu bir log dosyasına atmak istiyorsanız da, aşağıdaki gibi >/log/dosya.log şeklinde outputu dosya.log un içine push ettirebilirsiniz.

30 18 * * * rm /home/user/tmp/* > /home/user/cronlogs/clean_tmp_dir.log

 

Bu yazıyı şuradaki  yazıdan çoğunluğunu çevirerek yazdım. Güzel anlatmış orada, türkçesi de olsun istedim. Umarım faydalı olur.

Posted by / Haziran 22, 2012 / 7 Comments
Posted in
OS, Linux, Uygulama
Emre Macit

Emre Macit

Ideasoft yazılım departmanı ve Ar-ge sorumlusu. Matematik mühendisi. İnternet üzerine, yazılım ve koda dair her şey hakkında araştırma yapmayı ve bunları denemeyi seviyor. Yazılıma dair yazılar ağırlıklı olmakla birlikte arama motorları, sosyal medya ve teknolojiyle ilgili diğer konularda da yazılar yazıyor. Bazı konular için vakit bulamamaktan şikayetçi..

7 Comments

    Linux ve Unix icin Crontab – CronJob – Zamanlanmis Gorev « Lé Blog

    […] hazırlayabileceğiniz ve bu görevlerin arka planda cron sihirbazı i… Devamı için : Linux ve Unix icin Crontab – CronJob – Zamanlanmis Gorev Share :FacebookTwitterStumbleUponLinkedInLike this:LikeBe the first to like […]

    Linux ve Unix icin Crontab – CronJob – Zamanlanmis Gorev « kodluyorum

    […] hazırlayabileceğiniz ve bu görevlerin arka planda cron sihirbazı i… Devamı için : Linux ve Unix icin Crontab – CronJob – Zamanlanmis Gorev Share this:TwitterFacebookLike this:BeğenBe the first to like […]

    Linux ve Unix icin Crontab – CronJob – Zamanlanmis Gorev « Musa Usta'nın Yeri

    […] hazırlayabileceğiniz ve bu görevlerin arka planda cron sihirbazı i… Devamı için : Linux ve Unix icin Crontab – CronJob – Zamanlanmis Gorev Share this:TwitterFacebookLike this:BeğenBe the first to like this.   Leave a […]

    Linux ve Unix icin Crontab – CronJob – Zamanlanmis Gorev | Boğaç Aslanyürek

    […] hazırlayabileceğiniz ve bu görevlerin arka planda cron sihirbazı i… Devamı için : Linux ve Unix icin Crontab – CronJob – Zamanlanmis Gorev This entry was posted in Professional and tagged cron, cron job, cron tab, cronjob, crontab, […]

    Linux ve Unix icin Crontab – CronJob – Zamanlanmis Gorev | Kara Kule

    […] hazırlayabileceğiniz ve bu görevlerin arka planda cron sihirbazı i… Devamı için : Linux ve Unix icin Crontab – CronJob – Zamanlanmis Gorev Share this:TwitterFacebookLike this:BeğenBe the first to like this. By ahmet orsorlu • […]

    Linux ve Unix icin Crontab – CronJob – Zamanlanmis Gorev | yusufozkay

    […] hazırlayabileceğiniz ve bu görevlerin arka planda cron sihirbazı i… Devamı için : Linux ve Unix icin Crontab – CronJob – Zamanlanmis Gorev Share this:TwitterFacebookLike this:BeğenBe the first to like this. This entry was posted in […]

    Linux ve Unix icin Crontab – CronJob – Zamanlanmis Gorev « Anil's Blog

    […] hazırlayabileceğiniz ve bu görevlerin arka planda cron sihirbazı i… Devamı için : Linux ve Unix icin Crontab – CronJob – Zamanlanmis Gorev Like this:BeğenBe the first to like […]

Linux ve Unix icin Crontab – CronJob – Zamanlanmis Gorev « Anil's Blog için bir cevap yazın Cevabı iptal et