Crontab Kullanarak Cron Görevlerini Görüntüleme ve Listeleme Nasıl Yapılır
Unix benzeri işletim sistemlerinde cron aracı, kullanıcıların belirli zamanlarda veya aralıklarla otomatik olarak çalıştırılacak görevleri (komutlar veya betikler) planlamasına olanak tanır. Bir sunucuyu yönetiyor veya yerel bir makinede otomatik görevleri yönetiyorsanız, cron sistem yöneticileri ve geliştiriciler için vazgeçilmez bir araçtır.
Bu makale, planlanmış görevleri verimli bir şekilde yönetmenize yardımcı olmak için
crontabCrontab Komutu Nedir?
Crontab (cron tablosunun kısaltması), cron daemon’u için planlanmış görevleri tanımlayan bir dosyadır.
rootBir crontab girişi bu sözdizimini takip eder:
* * * * * command_to_be_executed
| | | | |
| | | | +----- day of the week (0–7) (Sunday = 0 or 7)
| | | +---------- month (1–12)
| | +--------------- day of the month (1–31)
| +-------------------- hour (0–23)
+------------------------- minute (0–59)
Bu yapı, görevlerin ne zaman yürütüleceği üzerinde hassas kontrol sağlar ve cron’u güçlü bir otomasyon aracı haline getirir.
Crontab Kullanarak Cron Görevlerini Listeleme
crontab1. Kendi Cron Görevlerinizi Görüntüleyin
Şu anda oturum açmış olan kullanıcının cron görevlerini görüntülemek için:
crontab -lBu komut, mevcut kullanıcı için tüm planlanmış cron görevlerini listeler. Eğer hiç cron görevi yoksa, boş bir çıktı veya tanımlı bir crontab olmadığını belirten bir mesaj döndürebilir.
Örnek çıktı:
# m h dom mon dow command
0 0 * * * /home/user/backup.sh
30 2 * * 7 /home/user/scripts/cleanup.sh
Bu örnekte:
- Bir yedekleme betiği her gün gece yarısı çalışır.
- Bir temizlik betiği her Pazar sabahı 2:30’da çalışır.
2. Başka Bir Kullanıcının Cron Görevlerini Listeleyin
Eğer
sudo-usudo crontab -l -u usernameusernamesudo crontab -l -u johnBu, belirtilen kullanıcı için planlanmış tüm cron görevlerini görüntüler.
3. Sistem Genelinde Cron Görevlerini Listeleyin
Kullanıcıya özel cron görevlerinin yanı sıra, sistem veya root kullanıcısı tarafından planlanmış sistem genelinde cron görevleri de vardır. Bunlar genellikle şurada saklanır:
/etc/crontab/etc/cron.d//var/spool/cron/crontabs/
Ana sistem crontab dosyasını görüntülemek için:
cat /etc/crontabÖrnek çıktı:
SHELL=/bin/sh
PATH=/usr/bin:/usr/sbin
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
Bu yapılandırma, saatlik, günlük, haftalık ve aylık sistem bakım görevlerini planlar.
Ek sistem cron dosyalarını listelemek için:
ls /etc/cron.d/Bu dizindeki her dosya, sistem hizmetleri için ek planlanmış görevler tanımlayabilir.
4. /var/spool/cron İçindeki Cron Görevlerini Görüntüleyin
Kullanıcıya özel crontab dosyaları genellikle
/var/spool/cron/crontabsls /var/spool/cron/crontabsBelirli bir kullanıcının crontab dosyasının içeriğini görüntülemek için:
cat /var/spool/cron/crontabs/usernameBu,
crontab -l -u usernameCron Görevlerini Düzenleme
Mevcut kullanıcı için cron görevlerini düzenlemek veya eklemek için:
crontab -eBu, crontab dosyasını varsayılan metin düzenleyicisinde açar. Kaydedip çıkınca, değişiklikler hemen etkili olur.
Örnek: her gün sabah 3:00’te bir betik çalıştırmak:
0 3 * * * /home/user/script.shYaygın Crontab Listeleme Komutları
- Mevcut kullanıcının cron görevlerini listele:
crontab -l - Başka bir kullanıcının cron görevlerini listele (sudo gerekli):
sudo crontab -l -u username - Sistem crontab’ını görüntüle:
cat /etc/crontab - /etc/cron.d/ içindeki cron dosyalarını listele:
ls /etc/cron.d/ - Kullanıcı crontab’larını listele:
ls /var/spool/cron/crontabs
Sonuç
crontabCron’u ustaca kullanarak, tekrarlayan görevleri otomatikleştirebilir, yedeklemeleri yönetebilir ve ortamınızdaki betiklerin tutarlı bir şekilde yürütülmesini sağlayabilirsiniz.
