
Cron je plánovací démon, který vám umožňuje naplánovat provádění úloh v určených intervalech. Tyto úlohy se nazývají úlohy cron a lze je naplánovat tak, aby se spouštěly na minutu, hodinu, den v měsíci, měsíc, den v týdnu nebo jakoukoli jejich kombinaci.
Úlohy cron se obvykle používají k provádění operací údržby systému. Například úlohu cron lze nastavit pro automatizaci opakujících se úloh, jako je zálohování databází, aktualizace systému nejnovějšími bezpečnostními záplatami, vymazání mezipaměti, odesílání e-mailů a tak dále.
Tento článek vysvětluje, jak vytvořit seznam úloh cron.
Zápis uživatelů Cron Jobs #
Soubory crontab uživatelů jsou pojmenovány na základě jména uživatele a jejich umístění se liší podle operačních systémů. V distribucích založených na Red Hatu, jako je CentOS, jsou soubory crontab uloženy v /var/spool/cron
adresář, zatímco na Debianu a Ubuntu jsou soubory uloženy v /var/spool/cron/crontabs
adresář.
Chcete-li získat seznam všech úloh cron pro uživatele, pod kterým jste aktuálně přihlášeni, použijte crontab
příkaz:
crontab -l
Pokud uživatel nastavil úlohy cron, obsah uživatelských crontabů se zobrazí na obrazovce. V opačném případě příkaz vytiskne no crontab for <username>
.
Chcete-li zobrazit seznam úloh cronu ostatních uživatelů, použijte -u
možnost zadat uživatelské jméno na konci příkazu. Například pro výpis úloh cron uživatele s názvem „mark“ byste použili:
sudo crontab -u mark -l
Každý uživatelský soubor crontab má 600
oprávnění a ve vlastnictví uživatele. Pouze root a uživatelé s sudo
oprávnění mohou prohlížet úlohy cron ostatních uživatelů.
Chcete-li zjistit, kteří uživatelé vytvořili úlohy cron, vypište obsah spool
adresář jako uživatel root nebo sudo:
sudo ls -1 /var/spool/cron/crontabs
Výstup bude vypadat nějak takto:
root
mark
Seznam úloh Cron společnosti System #
/etc/crontab
a soubory uvnitř /etc/cron.d
adresář jsou systémové soubory crontab, které mohou upravovat pouze správci systému.
Použijte cat
, less
nebo v libovolném textovém editoru pro zobrazení obsahu souborů:
cat /etc/crontab /etc/cron.d/*
Ve většině distribucí Linuxu můžete skripty vkládat také do /etc/cron.{hourly,daily,weekly,monthly}
adresáře a skripty se spouštějí každou hour/day/week/month
.
Každý skript v těchto adresářích musí mít oprávnění ke spuštění. V opačném případě nebude úloha cron provedena.
Chcete-li například zobrazit všechny týdenní úlohy cron, zadejte:
ls -l /etc/cron.weekly/
-rwxr-xr-x 1 root root 813 Feb 10 2019 man-db
Pokud je výstup prázdný, znamená to, že neexistují žádné týdenní úlohy cron.
Systémové časovače #
Systemd timers jsou soubory jednotek, které končí *.timer
přípona a umožní vám spouštět servisní jednotky na základě času.
V linuxových distribucích používajících systemd jako init systém se časovače používají jako alternativa ke standardnímu démonu cron.
Chcete-li zobrazit seznam všech časovačů systemd na vašem počítači, spusťte následující příkaz:
systemctl list-timers
NEXT LEFT LAST PASSED UNIT ACTIVATES
Sun 2020-02-16 00:00:00 UTC 1h 53min left Sat 2020-02-15 17:04:11 UTC 5h 2min ago logrotate.timer logrotate.service
Sun 2020-02-16 00:00:00 UTC 1h 53min left Sat 2020-02-15 17:04:11 UTC 5h 2min ago man-db.timer man-db.service
Sun 2020-02-16 03:50:52 UTC 5h 44min left Sat 2020-02-15 17:04:11 UTC 5h 2min ago apt-daily.timer apt-daily.service
Sun 2020-02-16 06:12:38 UTC 8h left Sat 2020-02-15 17:04:11 UTC 5h 2min ago apt-daily-upgrade.timer apt-daily-upgrade.service
Sun 2020-02-16 18:44:56 UTC 20h left Sat 2020-02-15 17:16:10 UTC 4h 50min ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
Závěr č.
Ukázali jsme vám, jak vytvořit seznam úloh cron a časovačů systemd.
Pokud máte nějaké dotazy, neváhejte zanechat komentář.