crontab

Linux'ta Bir Görev Nasıl Planlanır?

Linux'ta Bir Görev Nasıl Planlanır?
UNIX tabanlı bir işletim sistemi kullanıldığında, belirli görevler tekrar tekrar gerçekleştirilmelidir. Bunları her seferinde manuel olarak çalıştırmak zaman alıcıdır ve genel olarak verimsizdir. Bu sorunu çözmek için UNIX, yerleşik görev zamanlayıcılarıyla birlikte gelir. Bu görev zamanlayıcılar, akıllı bir çalar saat gibi çalışır. Alarm çaldığında, işletim sistemi önceden tanımlanmış görevi çalıştıracaktır.

Linux söz konusu olduğunda, iki temel ama güçlü araçla birlikte gelir: Cron arka plan programı (varsayılan görev zamanlayıcı) ve at (bir kerelik görev zamanlaması için daha uygundur).

Bu kılavuzda, Linux'ta bir görevin nasıl zamanlanacağını kontrol edin.

Linux'ta görevleri zamanlayın

cron
cron arka plan programı, belirli zamanlarda birçok işi yürütmekten sorumludur. Bu görevler genellikle planlanmış zamanlarda arka planda çalıştırılır. Aralığa (saat, hafta, ay, yıl veya her neyse) bakılmaksızın görevden bağımsız olarak büyük esneklik sunar.

Cron, crontab dosyasını kullanarak eylemlerini takip eder. crontab dosyası, tüm cron işlerini çalıştırmak için gerekli tüm bilgileri içeren bir komut dosyasıdır.

Cron'un bazı temel kullanımlarına hızlıca bir göz atalım. Aşağıdaki komutlardan herhangi birinin olması durumunda, sudo ayrıcalığı ile çalıştırılıyorsa kök kullanıcı için yapılandırılacaktır. Gösteri için, buradan örnek bir crontab dosyası aldım.

Geçerli kullanıcı için tüm zamanlanmış cron işlerini listelemek için aşağıdaki komutu çalıştırın. crontab dosyasının tüm içeriğini yazdıracak.

$ crontab -l


Farklı bir kullanıcı için cron iş listesini ister? Bunun yerine bu komutu çalıştırın.

$ sudo crontab -u -l


crontab betiğini düzenlemek için şu komutu çalıştırın:. Kök için crontab dosyasını düzenlemek için aşağıdaki komutu sudo ayrıcalığı ile çalıştırın.

$ crontab -e


crontab betiğindeki her satır bir görevi tanımlar. İşte crontab girişlerinin hızlı bir dökümü.

$

İşte tüm bu alanlar için tüm olası değerlerin bir listesi. Sayısal bir değer yerine yıldız işareti (*) kullanılırsa, alanın olası her değeri kullanılacaktır.

  • dakika: 0 - 59
  • saat: 0 - 23
  • ayın günü: 1 ila 31
  • ay: 1 ila 12
  • haftanın günü: 0 (Pazar) ila 6 (Cumartesi)

Görevleri otomatikleştirmek için crontab'ın nasıl kullanılacağına ilişkin ayrıntılı bir kılavuz için Linux'ta cron işlerinin nasıl kurulacağına bakın. İşte her dakika çalışan bir cron işinin başka bir hızlı örneği.

de
Cron, görev zamanlamasının birincil yolu olsa da, at belirli bir zamanda veya sabit bir aralıkta bir komut/komut dosyası çalıştırma yeteneği sunar, at hedef işi bir kez çalıştıracağını, cron'un ise aralıkta işi yeniden çalıştıracağını unutmayın. at aracı, cron ile karşılaştırıldığında daha az popülerdir, ancak kullanımı nispeten daha kolaydır. Gece yarısı veya çay saati gibi belirli anahtar kelimeleri kullanabilirsiniz (4 P.M.).

Bu araç, Linux dağıtımlarının çoğunda önceden yüklenmiş olarak gelmez. Yüklemek için dağıtımınıza göre uygun komutu çalıştırın.

Debian/Ubuntu ve türevleri için.

$ Sudo apt install -y at


CentOS/RHEL ve türevleri için.

$ yum yükleme

Arch Linux ve türevleri için.

$ sudo Pacman -S'de

Fedora ve türevleri için.

$ sudo dnf kurulumu

Kurulum tamamlandıktan sonra, at arka plan programını etkinleştirin.

$ sudo systemctl etkinleştir --şimdi atd.hizmet


İş yerindeki yol biraz farklı. Ne zaman çağırırsan, istenen görevi çalıştırma aralığını tanımlamanız gerekir. Örneğin, belirli bir komutu bir saat sonra çalıştırmak için aşağıdaki komutu kullanın.

$ şu anda + 1 saat


İstenen görevi 6 P'de çalıştırmak için.M., bundan altı gün sonra, bunun yerine aşağıdaki komutu çalıştırın.

$ 18.00 + 6 gün


Komutu çalıştırdığınızda, komutların çalıştırılmasını isteyecektir. Komut isteminden çıkmak için “Ctrl + d tuşlarına basın.” Zamanlanan görevlerin bir özetini ve yürütülecekleri zamanı sunacak.

Bu sadece temel kullanım. at kullanmanın daha tutarlı bir yolu, gerçekleştirilmesi gereken tüm görevleri içeren bir bash betiği yürütmek olabilir. Bash komut dosyası oluşturma hakkında daha fazla bilgi edinmekle ilgileniyor? Kontrol

$ 6pm + 6 gün -ff