it-swarm-eu.dev

Jak mohu získat seznam všech naplánovaných úloh cronu na mém počítači?

Můj sysadmin nastavil na mém počítači spoustu cronových úloh. Rád bych přesně věděl, co je naplánováno na jakou dobu. Jak získám tento seznam?

215
Frank

Podle toho, jak je váš linuxový systém nastaven, se můžete podívat na:

  • /var/spool/cron/* (uživatelské crontabs)
  • /etc/crontab (celosystémový crontab)

také mnoho distros má:

  • /etc/cron.d/* Tyto konfigurace mají stejnou syntaxi jako /etc/crontab

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

Jde pouze o adresáře, které obsahují spustitelné soubory, které jsou spouštěny každou hodinu, denně, týdně nebo měsíčně podle názvu adresáře.

Kromě toho můžete mít na úkolech (zaškrtněte /var/spool/at/*), anacron (/etc/anacrontab a /var/spool/anacron/*) a pravděpodobně další zapomínám.

150
jsbillings

U většiny Cronů (např. Vixie-Cron - Debian/Ubuntu výchozí, Cronie - Fedora výchozí, Solaris Cron ...) získáte seznam naplánovaných úloh cronů pro aktuálního uživatele prostřednictvím:

$ crontab -l

nebo pro jiného uživatele prostřednictvím

# crontab -l -u juser

Chcete-li získat crontaby pro všechny uživatele, můžete je smyčkovat přes všechny uživatele a zavolat tento příkaz.

Můžete také vyhledat soubory pro souběžný tisk. Obvykle jsou uloženy pod /var/spool/cron, Např. pro vcron následující adresář

/var/spool/cron/crontabs

obsahuje všechny nakonfigurované crontaby všech uživatelů - s výjimkou kořenového uživatele, který je také schopen konfigurovat úlohy prostřednictvím crontab v celém systému, který je umístěn na

/etc/crontab

S cronie (výchozí ve Fedoře/CentOS) existuje konfigurační adresář stylu .d Pro systémové úlohy cronu:

/etc/cron.d

(Jako vždy, adresář .d Zjednodušuje údržbu konfiguračních položek, které jsou součástí různých balíčků.)

Pro větší pohodlí poskytuje většina distribucí také adresáře, kde jsou pravidelně prováděny spojené/uložené skripty, např .:

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

Včasné spuštění těchto skriptů je obvykle spravováno pomocí položek run-parts V crontab systému nebo pomocí anacron .

S Systemd (např. Na Fedoře, CentOS 7, ...) lze periodické provádění úloh dodatečně konfigurovat pomocí časovač . Povolené systémové časovače lze zobrazit prostřednictvím:

$ systemctl list-timers

Uvědomte si, že uživatelé kromě root mohou mít spuštěny instance uživatelských systémů, kde jsou nakonfigurovány časovače. Například ve Fedoře je ve výchozím nastavení spuštěna instance uživatele systemd pro každého aktuálně přihlášeného uživatele. Lze je rozpoznat prostřednictvím:

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

Tyto uživatelské časovače lze zobrazit prostřednictvím:

$ systemctl --user list-timers

Alternativou k vydání příkazu list-timers Je vyhledání souborů časovačů (vzor: *.timer) A symbolických odkazů na ně v obvyklých systémových a uživatelských konfiguračních adresářích:

$ 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

(Stejně jako u běžných servisních jednotek je časovací jednotka povolena vytvořením symbolického odkazu v pravém konfiguračním adresáři systemd.)

Viz také:

149
maxschlepzig

Seznam všech cronů pro daného uživatele.

crontab -u uživatelské jméno -l;

Chcete-li zobrazit všechny crony pro všechny uživatele

Spusťte ji jako super uživatel

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