Příkaz Crontab spravuje tabulku cron, kterou používá démon cron k provádění úloh cron. Tento článek vysvětluje různé možnosti příkazového řádku příkazu crontab.
1. Vyladění Crontab pro ostatní uživatele pomocí volby -u
-u znamená uživatel. Poté by mělo následovat platné uživatelské jméno v systému. -u možnost sama o sobě nic nedělá. Mělo by být kombinováno s dalšími možnostmi. Ve skutečnosti jej lze kombinovat s jakýmikoli jinými možnostmi příkazového řádku crontab.
Pokud nezadáte -u uživatelské jméno, příkazy crontab budou provedeny na aktuálním uživateli. Například všechny následující příkazy crontab budou provedeny na aktuálně přihlášeném uživateli.
crontab -l crontab -e crontab -r ..
Pokud zadáte -u uživatelské jméno, bude příkaz crontab proveden s daným uživatelským jménem. Například všechny následující příkazy crontab budou provedeny na uživateli oracle.
crontab -u oracle -l crontab -u oracle -e crontab -u oracle -r ..
2. Zobrazte tabulku Cron pomocí volby -l
-l znamená seznam. Zobrazí se crontab aktuálního uživatele. Protože jsem přihlášen jako root, zobrazí se úlohy cron uživatele root.
# crontab -l 53 00 * * 7 /bin/sh /home/root/bin/server-backup
Chcete-li zobrazit úlohy cron ostatních uživatelů, zkombinujte -l s volbou -u.
# crontab -u oracle -l 01 00 * * * /bin/sh /home/oracle/bin/rman-backup
15 příkladů crontab vysvětluje praktické způsoby použití záznamů úlohy cron.
3. Upravte tabulku Cron pomocí volby -e
-e znamená upravit. To vám umožní upravit crontab aktuálního uživatele. Protože jsem přihlášen jako root, automaticky se tím otevřou úlohy cronu root v editoru Vim a umožní mi to upravit.
# crontab -e 53 00 * * 7 /bin/sh /home/root/bin/server-backup ~ ~ /tmp/crontab.7dgqju
Jak jste si všimli z výše uvedeného, /tmp/crontab.7dgqju je dočasný soubor vytvořený crontabem automaticky, kde můžete upravovat své úlohy cron.
Když uložíte své úpravy a opustíte editor Vim, zobrazí se jedna z následujících zpráv v závislosti na tom, zda jste provedli nějaké změny nebo ne.
# crontab -e crontab: no changes made to crontab # crontab -e crontab: installing new crontab
Poznámka:Editor, který crontab používá k otevírání úloh cron pro úpravy, závisí na proměnné prostředí VISUAL nebo EDITOR. Ve výchozím nastavení bude používat editor Vim v prostředí Linuxu. Můžete ji však změnit pomocí proměnné prostředí VISUAL/EDITOR.
Chcete-li upravit úlohy cron jiných uživatelů, zkombinujte volbu -e s volbou -u.
# crontab -u oracle -e crontab: installing new crontab
Chcete-li porozumět významu samotných položek crontab, podívejte se na Jak spustit úlohu Cron každých 5 minut (nebo hodin, dnů nebo měsíců).
4. Načtěte Crontab ze souboru
Namísto ruční úpravy crontab za účelem přidání nových úloh můžete také nahrát všechny úlohy cron ze souboru. To je užitečné, když musíte udržovat mnoho serverů, které mají stejné položky cron úlohy.
V následujícím příkladu jsou všechny úlohy cron v souboru /home/root/mycronjobs.txt.
# cat /home/root/mycronjobs.txt 53 00 * * 7 /bin/sh /home/root/bin/server-backup 01 00 * * * /bin/sh /home/root/bin/check-user-quota
Chcete-li nahrát úlohy mycronjobs.txt do crontab aktuálního uživatele, proveďte následující:
# crontab /home/root/mycronjobs.txt
Ověřte, zda jsou úlohy cron úspěšně nahrány.
# crontab -l 53 00 * * 7 /bin/sh /home/root/bin/server-backup 01 00 * * * /bin/sh /home/root/bin/check-user-quota
Poznámka:Při používání této metody nahrávání buďte opatrní, protože před nahráním nových vymaže všechny aktuální položky úlohy cron.
Chcete-li nahrát úlohu cron ze souboru jinému uživateli, zkombinujte ji s volbou -u.
# crontab -u oracle /home/oracle/mycronjobs.txt
5. Přidejte zabezpečení SELinux pomocí volby -s
-s znamená SELinux. Tím přidáte proměnnou MLS_LEVEL do crontab, který obsahuje aktuální kontext zabezpečení SELinux.
Chcete-li použít volbu -s, měli byste úlohy cron nahrát ze souboru.
# cat /home/root/mycronjobs.txt 53 00 * * 7 /bin/sh /home/root/bin/server-backup 01 00 * * * /bin/sh /home/root/bin/check-user-quota # crontab -s /home/root/mycronjobs/my.txt SELINUX_ROLE_TYPE=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 53 00 * * 7 /bin/sh /home/root/bin/server-backup 01 00 * * * /bin/sh /home/root/bin/check-user-quota
V závislosti na vašem systému výše uvedené přidá buď proměnnou SELUNUX_ROLE_TYPE, nebo proměnnou MLS_LEVEL, která obsahuje řetězec kontextu zabezpečení SELinux. Pokud ve svém prostředí nepoužíváte SELinux, nedělejte si starosti s tím, co tato možnost dělá. SELinux je samostatné téma diskuse, kterému bychom se mohli podrobně věnovat v budoucích článcích.
6. Smažte všechny úlohy Cron pomocí volby -r
-r znamená odebrat. Tím se odstraní všechny položky cron úlohy aktuálního uživatele, jak je uvedeno níže.
# crontab -l 53 00 * * 7 /bin/sh /home/root/bin/server-backup 01 00 * * * /bin/sh /home/root/bin/check-user-quota # crontab -r # crontab -l no crontab for root
-i znamená interaktivní režim. Kombinací -i s -r budete požádáni o potvrzení před odstraněním všech položek crontab.
# crontab -ir crontab: really delete root's crontab? n
Chcete-li odstranit úlohy cron ostatních uživatelů, zkombinujte -r s volbou -u.
# crontab -u oracle -l 01 00 * * * /bin/sh /home/oracle/bin/rman-backup # crontab -u oracle -r # crontab -u oracle -l no crontab for oracle