GNU/Linux >> Znalost Linux >  >> Linux

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

V závislosti na tom, jak je váš linuxový systém nastaven, se můžete podívat do:

  • /var/spool/cron/* (uživatelské crontabs)
  • /etc/crontab (crontab pro celý systém)

také mnoho distribucí má:

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

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

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

Kromě toho můžete mít při práci (zaškrtněte /var/spool/at/* ), anacron (/etc/anacrontab a /var/spool/anacron/* ) a pravděpodobně další, na které zapomínám.


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

$ crontab -l

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

# crontab -l -u juser

Chcete-li získat crontabs pro všechny uživatele, můžete projít všechny uživatele a zavolat tento příkaz.

Případně můžete 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é crontab všech uživatelů - kromě uživatele root, který je také schopen konfigurovat úlohy prostřednictvím systémového crontab, který se nachází na adrese

/etc/crontab

S cronie (výchozí na Fedoře/CentOS) existuje .d style config adresář pro úlohy systémového cronu:

/etc/cron.d

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

Pro pohodlí poskytuje většina distribucí také adresáře, kde se propojené/uložené skripty pravidelně spouštějí, např.:

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

Včasné provádění těchto skriptů je obvykle řízeno pomocí run-parts záznamy v systémovém crontab nebo přes anacron.

S Systemd (např. na Fedoře, CentOS 7, ...) lze periodické spouštění úloh navíc konfigurovat pomocí jednotek časovače. Aktivované systémové časovače lze zobrazit pomocí:

$ systemctl list-timers

Všimněte si, že uživatelé vedle root mohou mít spuštěné uživatelské instance systemd, kde jsou také konfigurovány časovače. Například na Fedoře je ve výchozím nastavení spuštěna instance systemd uživatele pro každého uživatele, který je aktuálně přihlášen. Lze je rozpoznat pomocí:

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

Tyto uživatelské časovače lze zobrazit pomocí:

$ systemctl --user list-timers

Alternativa k vydání list-timers příkaz je vyhledat soubory jednotek časovače (vzor:*.timer ) a symbolické odkazy na ně v obvyklých systémových a uživatelských adresářích systemd config:

$ 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 normálních servisních jednotek se jednotka časovače aktivuje vytvořením symbolického odkazu ve správném adresáři systemd config.)

Viz také:

  • Článek na ArchWiki na serveru Cron
  • Článek na ArchWiki o Systemd Timers

Chcete-li vypsat všechny crony pro daného uživatele.

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

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

Spusťte jej 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

Linux
  1. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  2. Jak naplánovat úlohy Cron pomocí Crontab

  3. Jak můžeme získat seznam nesystémových uživatelů na linuxu?

  1. Centos – Jak zobrazit všechny záznamy Cron v Centos7?

  2. Jak mohu zobrazit výsledky svých úloh cron?

  3. Jak mohu zabít všechny zastavené úlohy?

  1. Jak se aktualizuje /etc/motd?

  2. Jak nastavit úlohu cron, aby každou hodinu spouštěla ​​spustitelný soubor?

  3. Linux - Jak vypsat všechny uživatele