Sistem yöneticim makinemde bir sürü cron işi ayarladı. Hangi saat için neyin planlandığını tam olarak bilmek istiyorum. Bu listeyi nasıl alabilirim?
Linux sisteminizin nasıl kurulduğuna bağlı olarak, şuraya bakabilirsiniz:
/var/spool/cron/*
(crontabs kullanıcısı)/etc/crontab
(sistem genelinde crontab)Ayrıca, birçok dağıtımda var:
/etc/cron.d/*
Bu yapılandırmalar /etc/crontab
ile aynı sözdizimine sahiptir
/etc/cron.hourly
, /etc/cron.daily
, /etc/cron.weekly
, /etc/cron.monthly
Bunlar basitçe, dizin adlarına göre saatlik, günlük, haftalık veya aylık olarak çalıştırılan yürütülebilir dosyaları içeren dizinlerdir.
Bunun da ötesinde, at jobs (/var/spool/at/*
kontrol edin), anacron (/etc/anacrontab
ve /var/spool/anacron/*
) ve muhtemelen unuttuğum diğerlerine sahip olabilirsiniz.
Çoğu Cron ile (örneğin Vixie-Cron - Debian/Ubuntu varsayılanı, Cronie - Fedora varsayılanı, Solaris Cron ...) mevcut kullanıcı için zamanlanmış cron işlerinin listesini alırsınız:
$ crontab -l
veya başka bir kullanıcı için
# crontab -l -u juser
Tüm kullanıcıların crontab'larını almak için tüm kullanıcılar üzerinde döngü oluşturabilir ve bu komutu çağırabilirsiniz.
Alternatif olarak, biriktirme dosyalarına bakabilirsiniz. Genellikle /var/spool/cron
dizini altında kaydedilirler, örneğin vcron için aşağıdaki dizin
/var/spool/cron/crontabs
adresinde bulunan sistem genelindeki crontab aracılığıyla işleri yapılandırabilen root kullanıcısı hariç tüm kullanıcıların yapılandırılmış tüm crontab'larını içerir.
/etc/crontab
cronie]1 (Fedora/CentOS'ta varsayılan) ile, sistem cron işleri için .d
tarzı bir yapılandırma dizini de vardır:
/etc/cron.d
(Her zaman olduğu gibi, .d
dizini farklı paketlerin parçası olan yapılandırma girdilerini korumayı kolaylaştırır).
Kolaylık sağlamak için, çoğu dağıtım ayrıca bağlantılı / depolanmış betiklerin periyodik olarak çalıştırıldığı bir dizin sağlar, örn:
/etc/cron.daily
/etc/cron.hourly
/etc/cron.monthly
/etc/cron.weekly
Bu betiklerin zamanında çalıştırılması genellikle sistem crontab'ındaki run-parts
girdileri veya anacron aracılığıyla yönetilir.
Systemd]3 ile (örneğin Fedora, CentOS 7, ...) periyodik iş yürütme ayrıca timer units aracılığıyla yapılandırılabilir. Etkinleştirilmiş sistem zamanlayıcıları şu yolla görüntülenebilir:
$ systemctl list-timers
Root dışındaki kullanıcıların da zamanlayıcıların yapılandırıldığı çalışan kullanıcı systemd örneklerine sahip olabileceğini unutmayın. Örneğin, Fedora'da, varsayılan olarak, oturum açmış olan her kullanıcı için bir kullanıcı systemd örneği başlatılır. Bunlar şu yolla tanınabilir:
$ ps aux | grep 'systemd[ ]--user'
Bu kullanıcı zamanlayıcıları şu yolla listelenebilir:
$ systemctl --user list-timers
List-timerskomutunu vermenin bir alternatifi, zamanlayıcı birim dosyalarını (kalıp:
*.timer`) ve normal sistem ve kullanıcı systemd yapılandırma dizinlerinde bunlara sembolik bağlantıları aramaktır:
$ find /usr/lib/systemd/ /etc/systemd -name '*.timer'
$ find /home '(' -path '/home/*/.local/share/systemd/user/*' \
-o -path '/home/*/.config/systemd/*' ')' \
-name '*.timer' 2> /dev/null
(Normal hizmet birimlerinde olduğu gibi, bir zamanlayıcı birimi doğru systemd yapılandırma dizininde sembolik bir bağlantı oluşturularak etkinleştirilir).
Ayrıca bakınız:
Verilen kullanıcı için tüm cronları listelemek için.
crontab -u kullanıcı adı -l;
Tüm kullanıcılar için tüm cronları listelemek için
Süper kullanıcı olarak çalıştırın
#!/bin/bash
#List all cron jobs for all users
for user in `cat /etc/passwd | cut -d":" -f1`;
do
crontab -l -u $user;
done