Linux'ta 11 Cron Zamanlama Görevi Örnekleri


Bu yazıda, Crontab komutunu kullanarak Linux görevlerini arka planda düzenli aralıklarla otomatik olarak nasıl planlayıp çalıştırabileceğimizi inceleyip göreceğiz.

Sık yapılan bir işle manuel olarak ilgilenmek, sistem yöneticileri için göz korkutucu bir görevdir ve bu tür görevler, Linux veya Unix benzeri işletim sistemlerinde cron arka plan programı kullanılarak insan müdahalesi olmadan arka planda otomatik olarak programlanabilir ve çalıştırılabilir.

Örneğin, zamanlanmış görevleri komut satırından çalıştırmak için kullanılan Cron arka plan programını kullanarak Linux sistem yedeklemesini, güncellemeleri planlamayı, dosyaların senkronizasyonunu ve çok daha fazlasını otomatikleştirebilirsiniz. veya cron işleri oluşturmak için çevrimiçi araçları kullanın.

Cron her dakika uyanır ve sayılabilir olarak planlanmış görevleri kontrol eder - Crontab (CRON TABLE), bu tür tekrarlanan görevleri planlayabildiğimiz bir tablodur .

İpuçları: Her kullanıcının görevleri oluşturmak, değiştirmek ve silmek için kendi crontab'ı olabilir. Kullanıcılar için varsayılan olarak cron etkindir, ancak /etc/cron.deny dosyasına bir giriş ekleyerek kullanıcıları kısıtlayabiliriz.

Linux'ta Crontab

Crontab dosyası her satırda komutlardan oluşur ve aslında boşluk veya sekmeyle ayrılmış altı alana sahiptir. Başlangıçtaki beş alan görevlerin çalıştırılacağı zamanı temsil eder ve son alan komut içindir.

  • Dakika (0-59 arasındaki değerleri tutun)
  • Saat (0-23 arasındaki değerleri tutun)
  • Ayın Günü (1-31 arasındaki değerleri tutun)
  • Yılın ayı (1-12 veya Ocak-Aralık arasındaki değerleri tutun, her ayın adının ilk üç harfini kullanabilirsiniz, yani Ocak veya Haziran.)
  • Haftanın günü (0-6 veya Paz-Cumartesi arasındaki değerleri tutun. Burada ayrıca her günün adının ilk üç harfini kullanabilirsiniz; yani Paz veya Çrş. )
  • Komut – Planlamak istediğiniz /yol/komut/komut veya komut dosyası.

1. Crontab Girişlerini Listeleyin

Geçerli kullanıcı için -l seçeneği ile crontab komutu ile görevi listeleyin veya yönetin.

crontab -l

00 10 * * * /bin/ls >/ls.txt

2. Crontab Girişlerini Düzenleyin

Crontab girişini düzenlemek için aşağıda gösterilen seçeneği -e kullanın. Aşağıdaki örnek, planlanmış işleri VI düzenleyicisinde açacaktır. Gerekli değişiklikleri yapın ve ayarı otomatik olarak kaydeden :wq tuşlarına basmaktan çıkın.

crontab -e

3. Kullanıcının Planlanmış Cron İşlerini Listeleyin

-u (Kullanıcı) ve -l seçeneğini kullanarak tecmint adlı belirli bir kullanıcının planlanmış işlerini listelemek için (Liste).

crontab -u tecmint -l

no crontab for tecmint

Not: Yalnızca root kullanıcısı diğer kullanıcıların crontab girişlerini görme ayrıcalıklarına sahiptir. Normal kullanıcılar diğerlerini görüntüleyemez.

4. Crontab Girişini Kaldır

Dikkat: -r parametresi ile Crontab, Crontab'ın onayı olmadan planlanmış işlerin tamamını kaldıracaktır. Kullanıcının crontab'ını silmeden önce -i seçeneğini kullanın.

crontab -r

5. Crontab'ı Silmeden Önce Sor

-i ile crontab seçeneği, kullanıcının crontab'ını silmeden önce kullanıcıdan onay isteyecektir.

crontab -i -r

crontab: really delete root's crontab?

6. İzin Verilen Özel Karakterler (*, -, /, ?, #)

  • Yıldız(*) – Alandaki tüm değerleri veya olası herhangi bir değeri eşleştirin.
  • Kısa çizgi(-) – Bir aralık tanımlamak için.
  • Eğik çizgi (/) – 1. alan /10, her on dakikada bir veya aralık artışı anlamına gelir.
  • Virgül (,) – Öğeleri ayırmak için.

7. Sistem Genelinde Cron Programı

Bir sistem yöneticisi önceden tanımlanmış cron dizinini aşağıda gösterildiği gibi kullanabilir.

  • /etc/cron.d
  • /etc/cron.daily
  • /etc/cron.saatlik
  • /etc/cron.monthly
  • /etc/cron.weekly

8. Bir İşi Belirli Bir Zamana Planlayın

Aşağıdaki işler, her gün sabah 12:30'da /tmp dosyasındaki boş dosyaları ve dizinleri siler. Crontab komutunu gerçekleştirmek için kullanıcı adını belirtmeniz gerekmektedir. Aşağıdaki örnekte root kullanıcısı bir cron işi gerçekleştiriyor.

crontab -e

30 0 * * *   root   find /tmp -type f -empty -delete

9. Ortak Program için Özel Diziler

@reboot

Komut, sistem yeniden başlatıldığında çalışacaktır.

@daily

Günde bir kez veya @midnight'ı kullanabilir.

@weekly

Haftada bir.

@yearly

Yılda bir kez. @annually anahtar kelimesini de kullanabiliriz.

Aynısını kullanmak istiyorsanız cron komutunun beş alanını anahtar kelimelerle değiştirmeniz gerekir.

10. Çift ve işaretiyle (&&) Çoklu Komutlar

Aşağıdaki örnekte, komut1 ve komut2 günlük olarak çalıştırılır.

crontab -e

@daily <command1> && <command2>

11. E-posta Bildirimlerini devre dışı bırakın.

Varsayılan olarak cron, cronjob'u yürüten kullanıcı hesabına posta gönderir. Devre dışı bırakmak istiyorsanız aşağıdaki örneğe benzer şekilde cron işinizi ekleyin. Dosyanın sonundaki >/dev/null 2>&1 seçeneğinin kullanılması, cron sonuçlarının tüm çıktısını /dev/null altına yönlendirecektir.

[root@tecmint ~]# crontab -e
* * * * * >/dev/null 2>&1

sonuç: Görevlerin otomasyonu, görevlerimizi daha iyi, hatasız ve verimli bir şekilde gerçekleştirmemize yardımcı olabilir. Daha fazla bilgi için terminalinize 'man crontab' komutunu yazarak crontab'ın manuel sayfasına başvurabilirsiniz.