Ana Sayfa » *nix » Cron Hakkında Temel Bilgiler ve Birkaç Örnek

Cron Hakkında Temel Bilgiler ve Birkaç Örnek


BerbatKötüİdare EderGüzelHarika (Toplam 4 oy. 5 puan üzerinden ortalama 5,00 || Oy vererek siz de katkıda bulunabilirsiniz.)
Loading...

Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYu4kGmm' (Errcode: 28 - No space left on device) in /usr/share/nginx/html/syslogs/wp-includes/class-wpdb.php on line 2349
/ sistemlerde zamanlanmış görevler oluşturmak üzere kullanılan cron, bir komutun, scriptin ya da uygulamanın belirli bir zamanda ya da zaman periyodunda çalıştırılmasını sağlamaktadır.

Cron girdileri /etc/crontab isimli dosyada crontab isimli araç ile düzenlenmektedir. Bu aracın temel kullanım şekilleri aşağıdaki gibidir.

Crontab'ın Editlenmesi


Crontab'ı vi editorü ile editmeke üzere -e parametresi kullanılır.

# crontab -e

Cron Girdilerinin Listelenmesi


Tüm cron girdilerini listelemek için ise -l paramteresi kullanılır.

# crontab -l

Cron Girdilerinin Kaldırılması


Tüm cron girdilerini silmek için ise -r paramteresi kullanılır.

# crontab -r

Cron Girdileri


Bir cron girdisi oluşturmak, crontab dosyasını editlemek ve girdi satırını düzgün dosyaya yazmaktan ibarettir. Temel bir cron girdisi aşağıdaki gibidir:

*  *  *  *  * /calistirilacak//yada/script

Yukarıdaki cron girdisindeki (*) işaretleri zaman ve tarih değerlerinin tanımlanmasında kullanılır. Yukarıda görüldüğü şekilde bir cron girdisi tanımlarsanız çalıştırılmasını istediğiniz ya da script dosyası dakikada bir çalıştırılacaktır. Ancak belirli bir zaman set etmek isterseniz ilgili * işaretlerinin yerine doğru değerleri girmeniz gerekecektir.

* işaretlerinin sıralaması ve manaları ise aşağıdaki gibidir

.---------------- dakika (0 - 59)
|  .------------- saat (0 - 23)
|  |  .---------- Ayın Günleri (1 - 31)
|  |  |  .------- Ay (1 - 12)
|  |  |  |  .---- Haftanın Günleri (0 - 6) (Pazar=0 ya da 7)
|  |  |  |  |
*  *  *  *  *  Çalıştırılacak 

Görüldüğü gibi ilk sıradaki yıldız 0 ile 59 arasında bir değer olabilen dakikayı ifade eder, sonraki 0 ile 23 arasında bir değer verebileceğiniz saat ifadesidir. Üçüncü yıldız da 31 gün üzerinden belirlenen ayın günlerini belirler, dördüncü alan ay ve sonunucu alan da haftanın günlerini ifade eder.

Konuyu daha iyi kavramak için aşağıdaki örneklerden yararlanabilirsiniz.

Örnekler


10 Dakikada Bir Çalışacak Cron Girdisi

*/10 * * * * /komut/yada/script
  • */10 – Her On Dakika
  • * – Her Saat
  • * – Her Gün
  • * – Her Ay
  • * – Haftanın Her Günü

Hergün öğlen 12 ve akşam 18'de Çalışacak Cron Girdisi

00 12,18 * * * /komut/yada/script
  • 00 – Her Saat (00 Saat başlangıcı)
  • 12,18 – Öğlen 12'de ve Akşam 18'de
  • * – Her Gün
  • * – Her Ay
  • * – Haftanın Her Günü

Sabah 9 Akşam 18 Arasında Her Saat Çalışacak Cron Girdisi

00 09-18 * * * /komut/yada/script
  • 00 – Her Saat (00 Saat başlangıcı)
  • 09-18 – Sabah 09'dan Akşam 18'e (09, 10, 11, 12, 13, 14, 15, 16, 17, 18)
  • * – Her Gün
  • * – Her Ay
  • * – Haftanın Her Günü

Hafta İçi Günler Sabah 9 Akşam 18 Arasında Her Saat Çalışacak Cron Girdisi

00 09-18 * * 1-5 /komut/yada/script
  • 00 – Her Saat (00 Saat başlangıcı)
  • 09-18 – Sabah 09'dan Akşam 18'e her saat. (09, 10, 11, 12, 13, 14, 15, 16, 17, 18)
  • * – Her Gün
  • * – Her Ay
  • 1-5 – Pazartesi (1), Salı(2), Çarşamba(3), Perşembe(4), Cuma(5)

Örnekleri çoğaltmak mümkün ancak yazım şekli genel olarak böyledir ve kendi cron girdilerinizi kendi ihtiyaçlarınıza göre aynı mantıkla düzenleyebilirsiniz.

Detaylı bilgi için bkz:

http://en.wikipedia.org/wiki/Cron

Visited 7.821 times, 1 visit(s) today
Kategoriler: *nix,Genel |

Bu yazılar da ilginizi çekebilir:


- Daily Security Cron Job ve Disk I/O Yoğunluğu.
- MySQL Replication durumunu bir script ile check etmek
- SUID ve SGID Bit’ler ve Bu Bitlere Sahip Dosyaların Bulunması
- diff ile Dizin Karşılaştırma ve Fark Tespiti
- CPU Limit ile Süreçlerin İşlemci Kullanımını Sınırlamak

Yorumlar


  1. Arslan Topçu | (Haziran 17th, 2010 1:56 pm)

    Merhaba benim sorum cronu 1 dakikadan daha az sürede çalıştırmak örnek 30 sn. bunu nasıl yapabilirim

    [Cevapla]

    Cagri Ersen tarafından yanıtlandı.

    Malesef cron’da en dusuk zaman dilimi 1 dakikadir…

    [Cevapla]

    Murat tarafından yanıtlandı.

    Örnek verecek olursak;

    */1 * * * * command
    */1 * * * * sleep 30 && command

    [Cevapla]

  2. hakan | (Şubat 24th, 2011 2:18 am)

    çok teşekkürler sık kulanılanlara ekledim

    [Cevapla]

  3. recep | (Eylül 11th, 2011 3:20 pm)

    merhaba.benim istedğim bir bilgisayarda oluşturulan klasörün içeriğinin her 10 dk da bir silinmesi..bunun için ne yapmalıyım.yardımcı olursanız sevinirim.

    [Cevapla]

  4. Ümit ÖZKAN | (Aralık 6th, 2011 2:15 pm)

    etc nin içinde crontab -l yaptigim zaman

    crontab -l
    crontab: no crontab for root

    diye bir uyari aliyorum sanirim crontab calismiyor sebebi nedir veya nasıl çözebilirim bu problemi?

    [Cevapla]

    Cagri Ersen tarafından yanıtlandı.

    Selamlar,

    Uyari, root kullancisi icin herhangi bir cron girdisi olmadigini soyluyor. Bir tane cron girdisi eklerseniz crontab -l ciktisinda goruntuleyebilirsiniz.

    [Cevapla]

Trackbacks

Yorumda bulunun.