Belirlenen Zamanlarda Otomatik Olarak Çalışacak Komut Tanımlama (crontab)

Diyelim bir komutun 2 gün sonra belirlediğiniz saatte çalışmasını istediniz 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. :slight_smile:

NOT: Daha önce bana lazım olduğunda biraz araştırıp bulduğum bu konuyu, benim gibi acemilerin işine yarar diye konu olarak açmak istedim. Aynı konu belki farklı soruların altında paylaşılmış ama oralarda bulmak zor oluyor veya sadece o soruya yönelik kısa cevap olduğundan tam anlaşılmıyor. Ben de burada derli toplu dursun diye konuyu oluşturuyorum. Yanlış veya eksik paylaştığım bilgi olursa ya da şu bilgiyi de ekle, konuyla ilgili bu da önemli dediğiniz bir şey olursa yorumlarda yazın ki, konuyu düzenleyeyim. Toparlanmış bir konu olarak burada dursun.

Bir iş tanımlamak için crontab -e komutunu kullanıyoruz.
1

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.

Örnekler:

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

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

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
Virgül (,) bu örnekte saat hem 10 hem 15 demek oluyor.

10 dakikada bir Masaüstünde Yeni adlı bir klasör oluşturmak için komut:
*/10 * * * * mkdir ~/Masaüstü/Yeni

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
Tire (-) bu örnekte dakika 10 ile 59 arasında demek oluyor.

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ü öyle yapınca hepsini siliyor. Onun yerine crontab -e ile sayfaya girip elle silip kaydedin, böylece diğer tanımladığınız işlemler silinmemiş olur.)

6 Beğeni

Bu konu son yanıttan 10 gün sonra otomatik olarak kapatıldı. Yeni yanıt girilmesine izin verilmiyor.