Cron arka plan programı, sisteminizde süreçleri planlanmış bir zamanda çalıştıran yerleşik bir Linux yardımcı programıdır. Cron okur crontab (cron tabloları) önceden tanımlanmış komutlar ve betikler için.
Belirli bir sözdizimi kullanarak, bir cron işi komut dosyalarını veya diğer komutları otomatik olarak çalışacak şekilde programlamak için.
Bu kılavuz, Linux’ta bir cron işinin nasıl kurulacağını örneklerle gösterir.
Önkoşullar
- Linux çalıştıran bir sistem
- Bir komut satırına/terminal penceresine erişim (Ctrl–Alternatif–T veya Ctrl–Alternatif–F2)
- Köklü bir kullanıcı hesabı veya sudo ayrıcalıklar
Temel Crontab Söz Dizimi
Cron yürütülecek komutların bir listesi için yapılandırma dosyalarını okur. Arka plan programı, satırları yorumlamak için belirli bir sözdizimi kullanır. crontab yapılandırma tabloları.
Bir cron işi kurabilmek için bu sözdizimini oluşturan temel unsurları anlamamız gerekir. Bir crontab satırı için standart form aşağıdaki gibidir:
a b c d e /directory/command output
Bu yüzden, parçaları bir cron
emretmek bunlar:
1. İlk beş alan a b c d e
işin saatini/tarihini ve tekrarını belirtin.
2. İkinci bölümde, /directory/command
çalıştırmak istediğiniz konumu ve komut dosyasını belirtir.
3. Son bölüm output
İsteğe bağlı. Sistemin kullanıcıya işin tamamlandığını nasıl bildireceğini tanımlar.
1. Cron İşi Zaman Biçimi
Komuttaki ilk beş alan, komutun ne zaman ve ne sıklıkla çalışacağını tanımlayan sayıları temsil eder. Belirli bir değeri temsil eden her konumu bir boşluk ayırır.
Aşağıdaki tablo, alanlar ve örnek sözdizimi için olası değerleri özetlemektedir:
Alan | Olası değerler | Sözdizimi | Tanım |
[a] – Dakika | 0 – 59 | 7 * * * * | Cron işi, sistem saati dakika konumunda 7’yi her gösterdiğinde başlatılır. |
[b] – Saat | 0 – 23 | 0 7 * * * | Cron işi, sistem saati sabah 7’yi gösterdiğinde çalışır (akşam 7, 19 olarak kodlanır). |
[c] – Gün | 0 – 31 | 0 0 7 * * | Ayın günü 7’dir, bu da işin her 7’de bir çalıştığı anlamına gelirinci ayın günü. |
[d] – Ay | 0 = yok ve 12 = Aralık | 0 0 0 7 * | İşin yalnızca Temmuz ayında çalıştığını belirleyen sayısal ay 7’dir. |
[e] – Haftanın günü | 0 = Pazar ve 7 = Pazar | 0 0 * * 7 | Mevcut konumda 7, işin yalnızca Pazar günleri çalışacağı anlamına gelir. |
2. Yürütme Komutu
Bir sonraki bölüm yürütülecek komutu belirtir. Komut dosyasının veya cron’un tamamlamasını istediğiniz komutların tam dizinini ve dosya adını temsil eder. Örneğin:
/root/backup.sh
Örneğimizde, komut sistemin kök dizinine bakar ve yedekleme.sh senaryo. İstediğiniz herhangi bir komut dosyasını veya komutu belirtebilirsiniz.
3. Çıktı (Opsiyonel)
Varsayılan olarak, cron
crontab dosyası çalıştığında sahibine bir e-posta gönderir. Bu, görevleri takip etmenin uygun bir yoludur. Sıradan veya küçük görevlerin gelen kutunuzu hızla doldurabileceğini unutmayın.
Bu isteğe bağlı bir özellik olduğundan, çıkış e-postasını devre dışı bırakarak bu senaryoyu önleyebilirsiniz. E-posta çıkışını kapatmak için aşağıdaki dizeyi ekleyin, >/dev/null 2>&1
, zamanlama ve komut alanlarından sonra.
* * * * * directory/command >/dev/null 2>&1
4. Operatörleri Kullanma (Opsiyonel)
Verimlilik için, cron sözdizimi de operatörler kullanır. Operatörler, cron alanında verilen değerler üzerinde işlem yapan özel karakterlerdir.
- bir yıldız
- tüm değerleri temsil eder. Görevlerin tüm aylarda veya haftanın tüm günlerinde çalışmasını sağlamak için bu işleci kullanın. Bir virgül (,)
- ayrı bireysel değerleri belirtir. Bir çizgi (-)
- bir değer aralığını gösterir. eğik çizgi (/)
Bir değeri adımlara bölmek için kullanılır. (*/2 diğer tüm değerler, */3 her üçte bir, */10 her onda bir, vb.)
Bir Cron İşi Ayarlama
Bir cron işini yapılandırmak için tercih edilen bir metin düzenleyiciyle crontab’ı açın ve çalıştırmak istediğiniz komutun sözdizimini girin.
Crontab Dosyası Nasıl Düzenlenir?
crontab –e
Geçerli kullanıcı için crontab yapılandırma dosyasını açmak üzere terminal pencerenize aşağıdaki komutu girin:
cron işini ayarlamak için cronjob yapılandırma dosyası Görev eklemeyi bitirdiğinizde, Dosya ‘yı kaydet
ve çıkış Cron arka plan programı sağlanan talimatları okuyacak ve uygulayacaktır.
Unutmayın, değişiklikleri uygulamak için Cron’un yeniden başlatılması gerekmez.
Farklı bir Kullanıcı için crontab’ı düzenleyin
crontab –u other_username –e
Başka bir kullanıcının crontab’ını düzenlemek için aşağıdaki komutu girin: Not:
Yeniden başlatma sırasında bir cron işi çalıştırmanız gerekirse, lütfen Crontab on Boot kılavuzumuza bakın.
Cron İş Örnekleri
* 2 0 * 4 /root/backup.sh
İşleri belirtirken, tüm değerleri belirtmek için yıldız işaretini kullanın. Alanlardan birine bir değer koymak, yalnızca o değer üzerindeki komutu çalıştırır. Örneğin:
* 2 0 * * /root/backup.sh
Sabah 2’de çalışacak şekilde ayarlanmış olsa da, yalnızca ayın biri (0) Çarşamba’ya (4) denk geldiğinde çalışır. Aşağıdakilere değiştirirseniz: Komut, her ayın ilk günü saat 2’de çalışır. Aşağıdaki tablo, kullanan birkaç temel komut sağlar. /kök/yedekleme.sh
önceki örneklerimizden dosya. | Cron İşi |
Emretmek | Her Dakikada Bir Cron Job Çalıştırın |
* * * * * /root/backup.sh | Her 30 Dakikada Bir Cron Job Çalıştırın |
30 * * * * /root/backup.sh | Cron Job’u Her Saat Çalıştırın |
0 * * * */root/backup.sh | Cron Job’u Her Gün Gece Yarısında Çalıştırın |
0 0 * * * /root/backup.sh | Cron Job’u Her Gün Saat 2’de Çalıştırın |
0 2 * * * /root/backup.shHer 1 Cron İşini Çalıştır st | ayın |
0 0 1 * * /root/backup.shCron Job’u Her 15’te Bir Çalıştırın inci | ayın |
0 0 15 * * /root/backup.sh1 Aralık’ta Cron Job’u çalıştırın st – | Gece yarısı |
0 0 0 12 * /root/backup.sh | Cron Job’u Cumartesi Gece Yarısında Çalıştırın |
0 0 * * 6 /root/backup.sh
Özel Karakterler Kullanmak
*/15 * * * *
Bir zaman dizisini adımlara bölmek için eğik çizgiyi kullanabilirsiniz. Her 15 dakikada bir yedekleme çalıştırmak için: *
bu /15
tüm değerler anlamına gelir ve
her 15 dakikada bir sayar ve tekrarlar.
0 4 * * 1-5 /root/backup.sh
Bir aralık belirtmek için tire karakterini kullanın. Kodu hafta içi her gün saat 4’te çalıştırmak için: 1-5
Bu durumda,
Pazartesi – Cumayı belirtir.
0 4 * * 2,4 /root/backup.sh
Kodun ne zaman çalışması gerektiğini ayrı ayrı belirtmek için virgül kullanın:
Bu, kodu Salı ve Perşembe günleri saat 4’te çalıştırır.
37 1-23/2 * * * /root/backup.sh
1-23
Bazı joker karakterler birleştirilebilir. Komutu iki günde bir, saati 37 geçe çalıştır: /2
saat aralığını belirtir,
aralığı iki saatte bir olarak ayarlar.
Mevcut Cron İşlerini Listeleme
crontab –l
Linux’ta crontab list komutu için terminal çıktısı Not:
cron işinin alternatifi olan at komutundaki gönderiye göz atın.
Çözüm cron
Artık nasıl kullanılacağı konusunda iyi bir anlayışa sahipsiniz. Linux’ta görevleri zamanlamak için. için bu eğitimde sunulan örnekleri kullanın. cron işleri oluştur ve planla
sisteminizde. Zamanla, sıradan görevlerinizin çoğunu otomatikleştirmek için özel karakterler kullanarak görevleri genişletin.
Cron işleri hakkında daha fazla eğitim için Kubernetes CronJob kılavuzumuzu okuyun.