it-swarm-tr.com

Makinemdeki tüm planlanmış cron işlerinin bir listesini nasıl alabilirim?

Sistemim, makinemde bir sürü cron işi ayarladı. Tam olarak ne zaman için planlandığını bilmek istiyorum. Bu listeyi nasıl alabilirim?

215
Frank

Linux sisteminizin kurulumuna bağlı olarak aşağıdakilere bakabilirsiniz:

  • /var/spool/cron/* (Kullanıcı kısaltmaları)
  • /etc/crontab (Sistem çapında crontab)

ayrıca, birçok dağıtımda:

  • /etc/cron.d/* Bu yapılandırmalar /etc/crontab İle aynı sözdizimine sahip.

  • /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly, /etc/cron.monthly

Bunlar, dizin adlarına göre saatlik, günlük, haftalık veya aylık olarak yürütülen yürütülebilir dosyaları içeren dizinlerdir.

Bunun da ötesinde, işlerinizde (/var/spool/at/*), Anacron (/etc/anacrontab Ve /var/spool/anacron/*) Ve muhtemelen unuttuğum diğer kişilerde olabilirsiniz.

150
jsbillings

Çoğu Crons ile (örneğin Vixie-Cron - Debian/Ubuntu varsayılanı, Cronie - Fedora varsayılanı, Solaris Cron ...) geçerli kullanıcı için planlanan cron işlerinin listesini şu yolla alırsınız:

$ crontab -l

veya üzerinden başka bir kullanıcı için

# crontab -l -u juser

Tüm kullanıcılar için crontabs'u almak için tüm kullanıcılar arasında geçiş yapabilir ve bu komutu çağırabilirsiniz.

Alternatif olarak, biriktirme dosyalarını arayabilirsiniz. Genellikle, /var/spool/cron Altına kaydedilir, ör. vcron için aşağıdaki dizin

/var/spool/cron/crontabs

, sistem genelinde bulunan ve sistem genelinde bulunan crontab üzerinden işleri de yapılandırabilen kök kullanıcı hariç, tüm kullanıcıların yapılandırılmış tüm crontablarını içerir

/etc/crontab

cronie (Fedora/CentOS'ta varsayılan) ile sistem cron işleri için de .d Stilinde bir yapılandırma dizini vardır:

/etc/cron.d

(Her zaman olduğu gibi .d Dizini, farklı paketlerin parçası olan yapılandırma girdilerini korumayı basitleştirir.)

Kolaylık sağlamak için, çoğu dağıtım, bağlı/depolanmış komut dosyalarının periyodik olarak yürütüldüğü bir dizin de sağlar, örn .:

/etc/cron.daily
/etc/cron.hourly
/etc/cron.monthly
/etc/cron.weekly

Bu komut dosyalarının zamanında yürütülmesi genellikle sistem crontabındaki run-parts Girdileriyle veya anacron yoluyla yönetilir.

Systemd (örn. Fedora, CentOS 7, ...) ile periyodik iş yürütme ek olarak zamanlayıcı birimleri ile yapılandırılabilir. Etkinleştirilmiş sistem zamanlayıcıları şu yollarla görüntülenebilir:

$ systemctl list-timers

Kökün yanındaki kullanıcıların, zamanlayıcıların yapılandırıldığı yerde çalışan kullanıcı systemd örnekleri de olabileceğini unutmayın. Örneğin, Fedora'da, varsayılan olarak, şu anda oturum açmış olan her kullanıcı için bir kullanıcı systemd örneği başlatılır.

$ ps aux | grep 'systemd[ ]--user'

Bu kullanıcı zamanlayıcıları aşağıdaki yollarla listelenebilir:

$ systemctl --user list-timers

list-timers Komutunun verilmesinin bir alternatifi, zamanlayıcı birim dosyalarını (desen: *.timer) Ve bunlara sembolik bağlantıları normal sistem ve kullanıcı systemd yapılandırma dizinlerinde 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, sağ sistemd yapılandırma dizininde sembolik bir bağlantı oluşturularak bir zamanlayıcı birimi etkinleştirilir.)

Ayrıca bakınız:

149
maxschlepzig

Verilen kullanıcının tüm crons'larını listelemek için.

crontab -u kullanıcı adı -l;

Tüm kullanıcılar için tüm cronsları listelemek için

Süper kullanıcı olarak çalıştır

#!/bin/bash
#List all cron jobs for all users
for user in `cat /etc/passwd | cut -d":" -f1`;
do 
crontab -l -u $user;
done