Bu Başlığı Değerlendirin

Cronjob - Crontab kullanimi

10-18-2012 Tarihinde saat 23:25alptraum tarafından yazıldı

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. Sistemde Default olarak gelen vi editörünü kullanmakta zorlaniyorsaniz nano editörünüde secebilirsiniz.
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.




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.



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
Bir diger yazida basit bir cron olusturarak bir klasör icini nasil temizleyecegimizi anlatacagim
Eklenmiş Resmin önizlemesi
Resmi gerçek boyutunda görmek için tıklayın.

Resmin ismi:  crontab-1.PNG
Görüntüleme: 848
Büyüklüğü:  15.6 KB (Kilobyte)   Resmi gerçek boyutunda görmek için tıklayın.

Resmin ismi:  crontab-2.PNG
Görüntüleme: 816
Büyüklüğü:  5.3 KB (Kilobyte)  
Etiket Linux
Okunma 1532 Yorumlar 0 Blog Başlığını Email ile Gönder
Toplam Yorumlar 0

Yorumlar