23 Mart 2010 Salı

Linux - Açılışta script çalıştırma

root olarak script çalıştırmak için :

/etc/rc.local

dosyasını edit ederek çalıştırılacak script i ekleyebilirsiniz.

Eğer başka bir kullanıcı session açılışında
bir script çalıştıracaksanız :

/home/user_neyse_o/bash_profile

dosyasını edit ederek çalıştırmak istediğiniz script i ekleyebilirsiniz.

Örn : Burada "oracle" kullanıcı adı. Editor olarak vi kullanıyoruz.

[oracle@bizimserver ~]$ pwd
/home/oracle
[oracle@bizimserver ~]$vi .bash_profile

11 Mart 2010 Perşembe

Linux - Crontab kullanarak tekrarlayan işlerin başarımı

Linux işletim sistemi; bir programı veya scripti belirli bir zamanda, bir defaya mahsus olarak veya tekrarlayan şekilde çalıştırmayı desteklemektedir. Bu makalede, periyodik şekilde tekrarlayan işlerin Linux üzerinde "cron" ile nasıl başarılacağını anlatmaya çalışacağım.

Crond servisi, her dakika cron job larını kontrol eder ve çalışma zamanı gelen job lar çalıştırılır. crond servisi ,eğer siz kapatmadıysanız, her açılışta çalışır durumdadır. Bir görev en az 1 dk. da bir çalıştırılabilir. 1 dk. dan daha kısa süreli bir tekrar çalıştırma söz konusu ise cron işinizi görmeyecektir.

Şimdi ,aşağıdaki örnek sh scriptini her 5 dakikada bir çalıştırarak kavramları açıklayacağım.

Örnek sh scripti
****************************
[oracle@oradb ~]$ cat mycrontest.sh
#!/bin/bash
echo "Saat simdi $(date +%T) - $(date +%A)"
[oracle@oradb ~]$ ./mycrontest.sh Saat simdi 18:37:42 - Friday
****************************

Yukarıdaki scripti 5 dk. da bir çalıştıracak crontab girişini yapalım.
****************************
[oracle@oradb ~] crontab -e

yukarıdaki komutu çalıştırdığınızda, çalıştırdığınız kullanıcıya ait zamanlanmış
görev listesi vi editörüne gelir. Aşağıdaki satıra vi editörüne ekleyip kaydetmemizin ardından mycrontest.sh scriptimiz her 5 dk. da bir çalışacaktır.

*/5 * * * * /home/oracle/mycrontest.sh

Yukarıdaki örnek job setup satırının açıklamaları aşağıdaki gibidir.

script_dosyasi : /home/oracle/mycrontest.sh

* * * * * script_dosyasi
- - - - -
| | | | |
| | | | +----- day of week (0 - 6) (Sunday=0)
| | | +------- month (1 - 12)
| | +--------- day of month (1 - 31)
| +----------- hour (0 - 23)
+------------- min (0 - 59)

Bu konuda bir örnek daha vereyim. Örneğin aynı script dosyasını
her gün sabah 04:15 çalıştırmak için aşağıdaki satır cron jobları
arasına eklenebilir.

crontab -e

15 4 * * * /home/oracle/mycrontest.sh

****************************

Cron job görüntüleme ve tüm cron jobları silme
****************************
[oracle@oradb ~]$ crontab -l
5 * * * * /home/oracle/mycrontest.sh
[oracle@oradb ~]$ crontab -r
[oracle@oradb ~]$ crontab -l
no crontab for oracle

Yukarıdaki şekilde crontab -r komutu ile geçerli user için crontab boşaltılabileceği gibi isterseniz crontab -e kullanarak da görev ekleme, çıkarma veya görevlerde değişiklikler yapabilirsiniz.

Ek olarak aşağıdaki linkleri inceleyebilirsiniz.

Türkçe
----------------
http://www.belgeler.org/man/man5/man5-crontab.html

İngilizce
----------------
http://adminschoice.com/crontab-quick-reference