Crontab nedir?
Cron adını, zaman için kullanılan Yunanca "Chronos" kelimesinden almıştır. Belirli bir programa göre görevleri otomatik olarak gerçekleştirecek bir sistem işlemidir. Düzenli zamanlama görevlerini yürütmek için kullanılan bir dizi komuttur. Crontab, "cron table" anlamına gelir. Görevleri yürütmek için cron olarak bilinen iş planlayıcının kullanılmasına izin verir.
Crontab aynı zamanda bu programı düzenlemek için kullanılan programın adıdır. Belirli bir zamanlama için periyodik olarak çalıştırılacak kabuk komutlarını gösteren bir yapılandırma dosyası olan bir crontab dosyası tarafından çalıştırılır.
Bu İşletim sistemi eğitiminde şunları öğreneceksiniz:
- Crontab nedir?
- Neden CRONJOB kullanıyorsunuz?
- Linux'ta cron nasıl kullanılır?
- Linux Crontab biçimi
- Crontab Nasıl Eklenir / Değiştirilir
- Crontab Nasıl Listelenir
- Önemli Crontab Örnekleri
Neden Cronjobs kullanıyorsunuz?
Linux'ta Cronjobs kullanmanın nedenleri şunlardır:
- İşletim sisteminin günlük dosyalarının veya veritabanının planlanmış bir yedeklemesini almasına yardımcı olur.
- Eski günlük dosyalarını silin
- Veritabanı tablolarını arşivleyin ve temizleyin
- Bültenler, Parola son kullanma e-postası gibi herhangi bir bildirim e-postası gönderin
- Önbelleğe alınan verilerin düzenli olarak temizlenmesi
- Crontab, Unix işlerini otomatikleştirmek için ideal bir seçenektir.
- Sistem bakımını otomatikleştirmek için kullanılır
Linux'ta cron nasıl kullanılır?
Linux sistem paketi, crontab adında kullanışlı bir görev planlayıcısına sahiptir. Crontab popülerdir çünkü otomatik bir işlemi kök olarak çalıştıracak şekilde programlanabilir. Bu nedenle, kök olarak çalışan otomatik bir işlemin olması, sistem değişikliklerini kolaylaştırır. Sadece görevi değiştirmeniz ve ardından görev yeniden başlatılıncaya kadar beklemeniz gerekir.
Linux Crontab biçimi
Crontab of Linux'un altı alanı vardır. İlk beş alan, yürütme saatini ve tarihini tanımlar ve 6. alan, komutun yürütülmesi için kullanılır.
Crontab sözdizimi:
[Minute] [hour][Day_of_the_Month][Month_of_the_Year][Day_of_the_Week][command]
- Astrikler (*): Eşleştirme için kullanın
- Aralık tanımla: 1-10 veya 30-40 veya jan-mar, mon-wed gibi kısa çizgi yardımıyla bir aralık tanımlamanıza olanak sağlar.
- Birden çok aralık tanımlayın: apr-jun, oct-dec gibi ayrılmış komutlarla çeşitli aralıklar tanımlamanıza olanak sağlar.
Crontab Nasıl Eklenir / Değiştirilir
Kullanıcı, crontab işlerini aşağıdaki crontab komutunun yardımıyla düzenleyebilir:
$ crontab -u -e
Yukarıdaki komut, varsayılan metin düzenleyiciniz kullanılarak düzenlenebilen bilgisayar sisteminizin kişisel crontab yapılandırmasını açacaktır.
Aşağıdaki komutu kullandığınızda değişikliklerinizi otomatik olarak alacağı için crontab'inizi yeniden başlatmanıza gerek yoktur.
$ crontab -l
Crontab görevlerinizi kaldırmak için aşağıdaki komutu kullanın.
$ crontab -r
Crontab'de iş eklemek veya güncellemek için aşağıda verilen komutu kullanın.
crontab -e
Diğer kullanıcının crontab dosyasını düzenleme komutu
crontab -u username -e
Crontab Nasıl Listelenir
Mevcut kullanıcının crontab girdilerini görüntüleme komutu
crontab -l
Belirli bir kullanıcının crontab girdilerini görüntüleme komutu:
crontab -u username -l
Önemli Crontab Örnekleri
İşte Crontab'ın bazı önemli örnekleri
Açıklama | Komut |
Çeşitli zamanlama işlerini yapmak için Cron komutu. Aşağıda verilen komut her gün sabah 7 ve akşam 5'de yürütülür. |
0 7,17 * * * /scripts/script.sh |
Her 5 dakikada bir cron çalıştırma komutu. |
*/5* * * * * /scripts/script.sh |
Cron scheduler komutu, görevi her Pazartesi sabah 5'de yürütmenize yardımcı olur. Bu komut, sistem temizleme gibi haftalık görevler yapmak için faydalıdır. |
0 5 * * mon /scripts/script.sh |
Komut, betiğinizi 3 dakikalık aralıklarla çalıştırın. |
*/3 * * * * /scripts/monitor.sh |
Belirli bir ay için yürütülecek bir cron zamanlama komutu. Görevleri çalıştırmak için bu komut Şubat, Haziran ve Eylül aylarında çalıştırılır. Bazen belirli bir aylık görevi yürütmek için bir görev planlamamız gerekir. |
* * * feb,jun,sep * /script/script.sh |
Seçilen günlerde yürütme komutu. Bu örnek, her Pazartesi ve Çarşamba saat 17: 00'de çalışacaktır. |
0 17 * * mon,wed /script/script.sh |
Bu komut cron'un her ayın ilk Cumartesi günü çalışmasını sağlar. |
0 2 * * sat [ $(date +%d) -le 06 ] && /script/script.sh |
Aşağıdaki gibi yapılandırılabilmesi için bir betiği 6 saat aralıklarla çalıştırma komutu. |
0 */6 * * * /scripts/script.sh |
Bu komut, Pazartesi ve Salı günleri iki kez yürütülecek bir görev zamanlar. Bunu yapmak için aşağıdaki ayarları kullanın. |
0 4,17 * * mon,tue /scripts/script.sh |
Komut, her 15 Saniyede bir cron'u çalıştıracak şekilde planlar. |
* * * * * /scripts/script.sh* * * * * sleep 15; /scripts/script.sh |
Görevleri yıllık olarak planlama komutu. @ yıllık zaman damgası = "0 0 5 1 *". Bu, görevi her yılın beşinci dakikasında yürütür. Yeni yıl kutlamaları için göndermek için kullanabilirsiniz. |
@yearly /scripts/script.sh |
Aylık olarak yürütülecek görevleri komuta edin. @monthly timestamp "0 0 1 * *" ile benzerdir. Bu komut ifadesi, bir görevin ayın ilk dakikasında yürütülmesine izin verir. |
@monthly /scripts/script.sh |
Tek bir cron kullanarak birden fazla görevi yürütme komutu. |
* * * * * /scripts/script.sh; /scripts/scrit2.sh |
Haftalık olarak yürütülecek görevleri zamanlama komutu. @haftalık zaman damgası "0 0 4 * güneş" ile benzerdir. Bu, sistem temizleme vb. Gibi haftalık görevleri gerçekleştirmek için kullanılır. |
@weekly /bin/script.sh |
Görev, günlük olarak yürütülecek şekilde planlanacaktır. @ günlük zaman damgası "0 2 * * *" ile benzerdir. Görevi her günün ikinci dakikasında yürütür. |
@daily /scripts/script.sh |
Görevlerin saatte bir yürütülmesine izin verir. @ saatlik zaman damgası "0 * * * *" ile benzerdir. Bu komut, her saatin ilk dakikasında bir görevi yürütür. |
@hourly /scripts/script.sh |
Sistem yeniden başlatıldığında görevlerin yürütülmesine izin verir. @reboot ifadesi, sistemin sistem başlangıcınızda çalıştırmak istediği görevler için kullanışlıdır. Bu, görevlerin arka planda otomatik olarak başlamasına yardımcı olur. |
@reboot /scripts/script.sh |
Özet:
- Cron adını, zaman için kullanılan Yunanca "Chronos" kelimesinden almıştır.
- Cronjobs, işletim sisteminin günlük dosyalarının veya veritabanının planlanmış bir yedeklemesini almasına yardımcı olur.
- Linux sistem paketinde, kök olarak otomatikleştirilmiş bir işlemi çalıştırmak üzere programlanabilen, crontab adında kullanışlı bir görev zamanlayıcı vardır.
- Crontab of Linux'un altı alanı vardır. İlk beş alan, yürütme saatini ve tarihini tanımlar ve 6. alan, komutun yürütülmesi için kullanılır.