In önceki haber Size cron'dan bahsetmiştim. Cron, belirli bir zamanda görevleri otomatik olarak çalıştıran bir sistem programıdır. Şimdi Anacron ile görevlerin nasıl otomatikleştirileceğini göreceğiz. Anacron, Cron'un zayıf yönlerinden birini aşmamızı sağlıyor. Görevin yapılması gereken zamanda bilgisayar kapalıysa, görev yılın bir sonraki zamanı gelip bilgisayar açılana kadar tekrar yapılmaz.
Anacron'un durumunda, Bilgisayar tekrar açıldığında, daha önce yarım bırakılan görevler tekrar yerine getirilir.
Anacron ile görevler nasıl otomatikleştirilir
Bilgisayar başlatıldığında Anacron, verilen bir talimatın en son ne zaman yürütüldüğünü ve ne sıklıkla yürütülmesi gerektiğinin söylendiğini arar. Tıpkı Cron'da olduğu gibi yapılacaklar listesi anacrontab adı verilen pek de orijinal olmayan bir metin dosyasına kaydedilir. Ancak önemli bir fark var, Bu durumda tarih, gün, dakika cinsinden gecikme, iş tanımlayıcısı ve yürütülecek komut belirlenerek ayarlanır.
Anacron, her görev için belirli gün sayısı içerisinde yürütülüp yürütülmediğini kontrol eder. Belirtilen gün sayısı o iş için belirlenen süredir. Eğer çalışmamışsa Anacron gerekli dakika kadar bekler ve çalışır. Daha sonra, tekrar ne zaman çalıştırılacağına dair bir gösterge görevi görecek olan tarihi kaydedin.
Anacron'u ismen veya büyük dağıtımlarda cronie paketinde bulabiliriz.
Çalıştırmak için aşağıdaki parametreleri belirtmemiz gerekiyor:
-F: Belirtilen tarihte olmasa bile görevin yerine getirilmesi.
-veya: İşlerin tarihini güncel güne değiştirir ancak yürütmez.
-S: Bir öncekinin tamamlanmasının ardından yeni bir görevin yürütüleceğini belirtir.
üzerinde: -fy parametrelerini kullanmaya benzer
-Q: -d ile birlikte kullanıldığında hata mesajlarının görüntülenmesini engeller.
-T: Anacron'a görev listesinin nerede bulunacağını söyler.
-T: Görev listesi ayarlarını kontrol eder ve gerekirse bir hata mesajı görüntüler.
-S Zaman damgalarının saklandığı dizini belirtir.
Anacrontab dosyasına aşağıdaki parametreleri eklemeliyiz
KABUK=/bin/bash: Bash'in komut yorumlayıcısı olarak kullanılması gerektiğini belirtir.
POSTA= Eşittir işaretinden sonra hata raporunu bize göndereceğiniz e-posta adresini belirtiyoruz. Masaüstü dağıtımlarda ise buna gerek yoktur.
YOL=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin: Bu, her göreve rota eklememize gerek kalmamasını sağlar.
Anacrontab görevi için sözdizimi, şu şekildedir: period delay job id komutu:
Dönem: İşin hangi sıklıkta yapılması gerektiğidir. Bir periyot olarak (gün, hafta veya ay için @daily, @weekly veya @monthly) veya sayılarla (gün için 1, hafta için 7, ay için 30 ve herhangi bir gün periyodu için herhangi bir sayı) belirtilebilir.
Gecikme: Başlamadan önce beklenmesi gereken süredir. Dakikalarla ifade edilir
Meslek Kimliği: Bir görevi diğerlerinden ayırt etmek için ona verilen isimdir
Komut: Bu, Anacron'un belirtilen zamanda çalıştırması gereken komuttur.
Ayrıca çeşitli görevleri çalıştırmak için bir dizin oluşturmamız gerekiyor.
mkdir -p ~/.local/etc/anacrontab: ~/.local/etc/cron.daily ~/.local/etc/cron.weekly ~/.local/etc/cron.daily ~/.var/spool/anacron
Bu, günlük, haftalık ve aylık yürütme betiklerinin ve son anakron yürütme raporunun kaydedileceği dizinleri oluşturur.
Bu klasörleri kullanmasını söylemek için:
anacron -fn -t ~/.local/etc/anacrontab -S ~/.var/spool/anacron
Terminalden yapılandırma dosyasını düzenliyoruz
nano ~/.local/etc/anacrontab
Şu satırları ekliyoruz:
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
Diğer iki değişken yapılandırılabilir
START_HOURS_RANGE: İşlerin yalnızca belirli bir zaman dilimi içinde başlaması gerektiğini belirtmek için.
RANDOM_DELAY: Maksimum rastgele gecikmeyi ayarlar
Bilgisayarlarımızdaki görevleri otomatikleştirmek için iki yararlı komut satırı aracına ilişkin kısa incelememizi burada sonlandırıyoruz. Daha sonraki yazılarımızda aynı şeyi yapmamıza olanak tanıyan grafiksel uygulamaların da olduğunu göreceğiz.