Jak upravit soubor Crontab Linuxu pro naplánování úloh

Úvod

Existuje démon v Linuxu nazvaný cron, který se používá k běhu procesů v pravidelných intervalech.

Způsob, jakým to dělá, je zkontrolovat, zda některé složky ve vašem systému spouštějí skripty. Například je složka nazvaná /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly a /etc/cron.monthly. K dispozici je také soubor nazvaný / etc / crontab.

Ve výchozím nastavení můžete jednoduše umístit skripty do příslušných složek, abyste je mohli spustit v pravidelných intervalech.

Otevřete například okno terminálu (stisknutím kláves CTRL, ALT a T) a spusťte následující příkaz ls :

ls / etc / cron *

Zobrazí se seznam programů nebo skriptů, které se spouštějí hodinově, denně, týdně a měsíčně.

Problémem s těmito složkami je, že jsou trochu nejasné. Například denní znamená, že skript bude spuštěn jednou denně, ale nemáte kontrolu nad časem, kdy skript bude spuštěn během daného dne.

Zde přichází soubor crontab.

Úpravou souboru crontab můžete získat spuštěný skript nebo program přesné datum a čas, kdy chcete spustit. Například možná chcete zálohovat soubory každou noc v 18 hodin.

Oprávnění

Příkaz crontab vyžaduje, aby uživatel měl oprávnění k úpravě souboru crontab. V podstatě existují dva soubory, které se používají ke správě oprávnění crontab:

Pokud soubor /etc/cron.allow existuje, uživatel, který chce upravit soubor crontab, musí být v daném souboru. Pokud soubor cron.allow neexistuje, ale existuje soubor /etc/cron.deny, uživatel nesmí v tomto souboru existovat.

Pokud existují oba soubory, pak /etc/cron.allow přepíše soubor /etc/cron.deny.

Pokud žádný soubor neexistuje, záleží na konfiguraci systému, zda uživatel může upravit crontab.

Uživatel root může vždy upravit soubor crontab. Můžete buď použít příkaz su pro přepnutí na uživatele root nebo příkaz sudo pro spuštění příkazu crontab.

Úprava souboru Crontab

Každý uživatel, který má oprávnění, může vytvořit vlastní soubor crontab. Příkaz cron v podstatě hledá existenci více souborů crontab a prochází je všemi.

Chcete-li zkontrolovat, zda máte soubor crontab, spusťte následující příkaz:

crontab -l

Pokud nemáte soubor crontab, objeví se zpráva "no crontab for " jinak se zobrazí váš soubor crontab (tato funkce se liší od systému k systému, někdy se vůbec nezobrazuje a jinak se zobrazí " neupravujte tento soubor ").

Chcete-li vytvořit nebo upravit soubor crontab, spusťte následující příkaz:

crontab -e

Ve výchozím nastavení, pokud není vybrán žádný výchozí editor, budete vyzváni k výběru výchozího editoru, který chcete použít. Osobně se mi líbí nano, protože je poměrně jednoduché a běží z terminálu.

Otevřený soubor má spoustu informací, ale klíčovou součástí je příklad těsně před koncem části komentáře (komentáře jsou označeny řádky začínajícími čísly #).

# mh dom mon dow příkaz

0 5 * * 1 tar -zcf /var/backups/home.tgz / home /

Existuje 6 informací, které se vejde do každého řádku souboru crontab:

Pro každou položku (kromě příkazu) můžete zadat zástupný znak. Podívejte se na následující příklad crontab řádek:

30 18 * * * tar -zcf /var/backups/home.tgz / home /

Co výše uvedeným příkazem říkáte, je 30 minut, 18 hodin a každý den, měsíc a den v týdnu spustit příkaz zip a tar domovský adresář do složky / var / backups.

Chcete-li dostat příkaz ke spuštění 30 minut po každé hodině, mohu spustit následující příkaz:

30 * * * * příkaz

Chcete-li dostat příkaz ke spuštění každou minutu po 18 hod., Mohu spustit následující příkaz:

* 18 * * * příkaz

Proto musíte být opatrní při nastavování příkazů crontab.

Například:

* * * 1 * příkaz

Výše uvedený příkaz by běžel každou minutu každé hodiny každého dne každého lednového týdne. Pochybuji, že to je to, co chcete.

Chcete-li spustit příkaz v pondělí 5. ledna, měli byste na následující příkaz do souboru crontab:

0 5 1 1 * příkaz

Jak odebrat soubor Crontab

Většinu času nechcete odstranit soubor crontab, ale můžete chtít odstranit některé řádky z souboru crontab.

Pokud však chcete odstranit soubor uživatele crontab, spusťte následující příkaz:

crontab -r

Bezpečnějším způsobem je spustit následující příkaz:

crontab -i

To se ptá otázka "Jste si jisti?" před odebráním souboru crontab.