22 Haziran 2012 Cuma

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. Devamı için : Linux ve Unix icin Crontab - CronJob - Zamanlanmis Gorev

Hiç yorum yok:

Yorum Gönder

Yorumunuzu esirgemeyiniz..