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 crontab -e komutunu kullanıyoruz.

crontab komutu

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.

* * * * * komut Çalışma mantığı bu şekilde. Yani yıldızlar yazdığım sırayla;
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 crontab -l komutu ile görebiliyorsunuz.

İptal etmek istediğinizde de crontab -r komutuyla silebiliyorsunuz. (Ama birden fazla işlem oluşturduysanız crontab -r ile silmeyin, çünkü 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.