Diyelim bir komutun iki gün sonra belirlediğiniz saatte çalışmasını veya her pazartesi saat 10’da bir komutun çalışmasını istiyorsunuz. Bunun için ayrıca program yüklemenize gerek yok. Crontab komutu bu iş için.
Gelelim örnekleriyle Crontab komutunun faydalarına.
Bir iş tanımlamak için
komutunu kullanıyoruz.crontab -e
Komutu çalıştırdığımızda karşımıza düzenleme yapacağımız şu sayfa geliyor:
En altta zaten ne yapmamız gerektiği yazıyor.
Çalışma mantığı bu şekilde. Yani yıldızlar yazdığım sırayla;* * * * * komut
Dakika: 0-59 arası değer
Saat: 0-23 arası
Ayın günü: 1-31 arası
Ay: 1-12 arası
Haftanın günü: 0-7 arası (Haftanın günlerini yazarken 0 ve 7 Pazar demek.)
Komut: Çalışmasını istediğimiz komut.
Komutu yazdıktan sonra CTRL+O
ile kaydet diyoruz. Kaydedilsin mi diye soruyor. Enter
ile onaylıyoruz. Sonra da CTRL+X
ile terminal ekranına dönüyoruz.
Crontab örnekleri:
Ben aşağıdaki örneklerde hep masaüstünde yeni adlı bir dosya açmayı gösterdim ama siz bu yöntemle farklı komutları hatta oluşturduğunuz sh dosyalarını çalıştırabilirsiniz.
Örnek 1: Her ayın 3. günü saat 10.30’da Masaüstünde Yeni adlı bir klasör oluşturmak için komut:30 10 3 * * mkdir ~/Masaüstü/Yeni
Örnek 2: Her Pazartesi saat 10.30’da Masaüstünde Yeni adlı bir klasör oluşturmak için komut:30 10 * * 1 mkdir ~/Masaüstü/Yeni
Örnek 3: Her ayın 3. günü saat 10.30’da ve 15.30’da Masaüstünde Yeni adlı bir klasör oluşturmak için komut:
30 10,15 3 * * mkdir ~/Masaüstü/Yeni
Araya virgül (,) koyarak birden fazla tanımlama yapabiliyoruz.
Örnek 4: 10 dakikada bir masaüstünde Yeni adlı bir klasör oluşturmak için komut:*/10 * * * * mkdir ~/Masaüstü/Yeni
Örnek 5: 10.10 ve 10.59 arasında 5 dakikada bir masaüstünde Yeni adlı bir klasör oluşturmak için komut:
10-59/5 10 * * * mkdir ~/Masaüstü/Yeni
Araya kısa çizgi (-) koyarak iki süre arasında tanımlama yapabiliyoruz.
crontab
komutu ile tanımlanmış işlerinizi
komutu ile görebiliyorsunuz.crontab -l
İptal etmek istediğinizde de
komutuyla silebiliyorsunuz. (Ama birden fazla işlem oluşturduysanız crontab -r
ile silmeyin, çünkü crontab -r
crontab -r
tüm tanımlı komutları siliyor. Onun yerine crontab -e
ile sayfaya girip, sileceğiniz komutu elle silip kaydedin, böylece diğer tanımladığınız işlemler silinmemiş olur.)
Crontab kullanımına dair daha detaylı ve farklı kullanımlarıyla örnekleri, internette ve Wikipedia’da bulabilirsiniz. Öte yandan, genel olarak son kullanıcı için bu yazıda andığımız komutlar fazlasıyla yeterli olacaktır.