Jak naplánovat úlohy v systému Linux: Příkazy At a Crontab

Emmett Dulaney

Jako správce systému Linux budete možná muset v pravidelných intervalech spouštět některé programy automaticky nebo provádět jeden nebo více příkazů ve stanovenou dobu v budoucnu. Váš systém Linux obsahuje zařízení pro naplánování spuštění úloh na jakékoli budoucí datum nebo čas, kdy chcete. Můžete také nastavit systém tak, aby prováděl úkol pravidelně nebo jen jednou. Zde je několik typických úkolů, které můžete provést naplánováním úloh v systému Linux:



  • Uprostřed noci zálohujte soubory.
  • Stahujte velké soubory brzy ráno, když systém není zaneprázdněn.
  • Posílejte si zprávy jako připomenutí schůzek.
  • Pravidelně analyzujte protokoly systému a hledejte neobvyklé aktivity.

Tyto úlohy můžete nastavit pomocí at příkaz nebo crontab zařízení Linuxu.



Jak naplánovat jednorázové úlohy v systému Linux

Pokud chcete spustit jeden nebo více příkazů později, můžete použít at příkaz. The atd démon - program určený ke zpracování úloh odeslaných pomocí at - spustí vaše příkazy ve stanovenou dobu a pošle vám výstup e-mailem.

Než vyzkoušíte at příkaz v Linuxu, musíte vědět, že následující konfigurační soubory určují, kteří uživatelé mohou naplánovat úkoly pomocí at příkaz:



  • /etc/at.allow obsahuje jména uživatelů, kteří mohou používat at příkaz k odeslání úloh.
  • /etc/at.deny obsahuje jména uživatelů, kteří nemají povoleno používat at příkaz k odeslání úloh.

Pokud tyto soubory nejsou k dispozici nebo pokud najdete prázdné /etc/at.deny soubor, může každý uživatel odesílat úlohy pomocí at příkaz. Výchozí nastavení v systému Linux je prázdný /etc/at.deny soubor; když je toto výchozí nastavení na místě, kdokoli může použít at příkaz. Pokud nechcete, aby někteří uživatelé používali at, jednoduše uveďte jejich uživatelská jména v /etc/at.deny soubor.

Chcete-li použít at k naplánování jednorázové úlohy v systému Linux k provedení at později, postupujte takto:

  1. Spusťte at příkaz s datem nebo časem, kdy chcete provést své příkazy.

    Když stisknete Enter, zobrazí se at> zobrazí se následující výzva:



    at>

    Tato metoda je nejjednodušší způsob, jak určit čas, kdy chcete provést jeden nebo více příkazů; jednoduše zadejte čas ve 24hodinovém formátu. V takovém případě chcete provést příkazy dnes v 9:30 (nebo zítra, pokud je už po 21:30). Čas spuštění však můžete určit mnoha způsoby.

  2. Na ps do příkazového řádku zadejte příkazy, které chcete provést, jako byste zadávali příkazový řádek. Po každém příkazu stiskněte klávesu Enter a pokračujte dalším příkazem.
  3. Po dokončení zadávání příkazů, které chcete provést, označte konec stisknutím Ctrl + D.

    Tady je příklad, který ukazuje, jak provést at příkaz v budoucnu:

    Po stisknutí Ctrl + D se zobrazí atq příkaz odpoví at zpráva, číslo úlohy a datum a čas, kdy bude úloha spuštěna.

Formáty příkazu AT po dobu provedení
Příkaz Kdy bude úloha spuštěna
právě teď Ihned
nyní + 15 minut 15 minut od aktuálního času
nyní + 4 hodiny 4 hodiny od aktuálního času
nyní + 7 dní 7 dní od aktuálního času
a pak Dnes v poledne (nebo zítra, pokud už je poledne)
teď příští hodinu Přesně za 60 minut
teď příští den Zároveň zítra
zítra v 17:00 V 17:00 zítra
v 16:45 V 16:45 dnes (nebo zítra, pokud je už kolem 16:45)
v 3:00 28. prosince 2018 28. prosince 2018 ve 3:00 ráno

Po zadání jedné nebo více úloh můžete pomocí a zobrazit aktuální seznam naplánovaných úloh příkaz. Výstup tohoto příkazu vypadá podobně jako následující:

atrm

První pole v každém řádku zobrazuje číslo úlohy - stejné číslo jako atrm při odeslání úlohy se zobrazí příkaz. Další pole ukazuje rok, měsíc, den a čas provedení. Poslední pole zobrazuje čekající úlohy v at fronta a uživatelské jméno.

Chcete-li zrušit úlohu, použijte crontab příkaz k odebrání dané úlohy z fronty. Když odstraňujete úlohu pomocí crontab příkazu, odkazujte na úlohu podle jejího čísla takto:

cron

Tento příkaz odstraní úlohu 4 naplánovanou na 3:00 28. prosince 2018.]

Po provedení úlohy vám bude výstup zaslán poštou. Napište e-mail do okna terminálu, abyste si přečetli poštu a zobrazili výstupy z vašich úloh.

Jak naplánovat opakované úlohy v systému Linux

I když crond je dobré pro spouštění příkazů v určitou dobu, není užitečné pro automatické spouštění programu v opakovaných intervalech. Musíte použít cron naplánovat takové opakující se úlohy, například pokud chcete zálohovat soubory na pásku každý večer o půlnoci.

vedlejší účinky diovan hydrochlorothiazidu

Naplánované opakované úlohy naplánujete umístěním informací o úloze do souboru v určitém formátu a odesláním tohoto souboru pomocí cron příkaz. The cron daemon - crontab - každou minutu kontroluje informace o úloze a provádí opakované úlohy v zadaných časech. Protože /etc/cron.allow démon zpracovává opakující se úlohy, tyto úlohy se také označují jako úlohy cron.

Jakýkoli výstup z crontab úloha je zaslána uživateli, který ji odešle. (V odeslaném souboru s informacemi o úloze můžete zadat jiného příjemce pro odeslaný výstup.)

Dva konfigurační soubory určují, kdo může naplánovat /etc/cron.deny úlohy v Linuxu pomocí crontab:

  • /etc/cron.allow obsahuje jména uživatelů, kteří mají povoleno používat cron příkaz k odeslání úloh.
  • /etc/cron.deny obsahuje jména uživatelů, kteří nemají povoleno používat cron příkaz k odeslání úloh.

Pokud se cron soubor existuje, pouze uživatelé uvedení v tomto souboru mohou naplánovat cron pracovní místa. Kdyby jen crontab soubor existuje, uživatelé uvedení v tomto souboru nemohou naplánovat myjob pracovní místa. Pokud žádný ze souborů neexistuje, výchozí nastavení systému Linux umožňuje každému uživateli odeslat * pracovní místa.

Chcete-li odeslat jobinfo úloha v Linuxu, postupujte takto:

  1. Připravte si skript prostředí (nebo spustitelný program v libovolném programovacím jazyce), který může provádět opakující se úkol, který chcete provést.

    Tento krok můžete přeskočit, pokud chcete pravidelně spouštět existující program.

  2. Připravte textový soubor s informacemi o časech, kdy chcete spustit shell skript nebo program (z kroku 1); pak odešlete tento soubor pomocí crontab.

    Do jednoho souboru můžete odeslat několik opakujících se úloh. Každý řádek s časovými informacemi o úloze má standardní formát se šesti poli. Prvních pět polí určuje, kdy je úloha spuštěna, a šesté a následující pole tvoří příkaz, který se spustí. Tady je řádek, který provede cron shell skript v domovském adresáři uživatele každý den 5 minut po půlnoci:

    cron

    Tabulka níže ukazuje význam prvních pěti polí. Poznámka: Hvězdička (crontab -l) znamená všechny možné hodnoty pro dané pole. Záznam v kterémkoli z prvních pěti polí může být také jedno číslo, seznam čísel oddělených čárkami, dvojice čísel oddělených pomlčkou (označující rozsah čísel) nebo hvězdička.

Formát pro čas provedení v souborech crontab
Číslo pole Význam pole Přijatelný rozsah hodnot *
1 Minuta 0–59
dva Hodina dne 0–23
3 Den v měsíci 0–31
4 Měsíc 1–12 (1 znamená leden, 2 znamená únor atd.) Nebo názvy měsíců s použitím prvních tří písmen - leden, únor, březen, duben, květen, červen, červenec, srpen, září, říjen, listopad, prosinec
5 Den v týdnu 0–6 (0 znamená neděle, 1 znamená pondělí atd.) Nebo třípísmenné zkratky ve všední dny - ne, po, út, st, čt, pátek, so

*Hvězdička v poli znamená všechny možné hodnoty pro toto pole. Pokud je například ve třetím poli hvězdička, úloha se provádí každý den.

Pokud je textový soubor cron (v aktuálním adresáři) obsahuje informace o úloze, odešlete je do cron s následujícím příkazem:

root

A je to! Jste připraveni na cron práce. Od této chvíle bude cron úloha běží v pravidelných intervalech (jak je uvedeno v souboru informací o úloze) a vy obdržíte e-mailové zprávy s výstupem z úlohy.

Chcete-li ověřit, že je úloha v Linuxu skutečně naplánována, zadejte následující příkaz:

cron jobs

Výstup crontab příkaz zobrazí cron úlohy aktuálně nainstalované na vaše jméno. Odebrání cron úlohy, zadejte crontab -r .

Pokud se přihlásíte jako cron, můžete také nastavit, zkontrolovat a odebrat cron úlohy pro libovolného uživatele. Nastavení cron úlohy pro uživatele, použijte tento příkaz:

/etc/crontab

Tady, uživatelské jméno je uživatel, pro kterého instalujete /etc/crontab a název souboru je soubor, který obsahuje informace o úlohách.

Použijte následující formulář MAILTO příkaz pro zobrazení cron úlohy pro uživatele:

#

Odebrání uživatele run-parts úlohy, použijte následující příkaz:

je hydrokortison bezpečný pro kočky
run-parts

Poznámka: The /usr/bin daemon také provede run-parts úlohy uvedené v celém systému /etc/cron.hourly soubor úlohy /etc/cron.daily. Tady je typický /etc/cron.weekly soubor ze systému Linux (typ kočka / etc / crontab soubor zobrazit):

/etc/cron.monthly

První čtyři řádky nastavují několik proměnných prostředí pro úlohy uvedené v tomto souboru. The run-parts proměnná prostředí určuje uživatele, který obdrží e-mailovou zprávu s výstupem z

at 21:30 at>
úlohy v tomto souboru.

Řádek, který začíná

at> ps at> job 1 at 2018-12-28 21:30
je řádek komentáře. Čtyři řádky následující po
4 2018-12-28 03:00 a root 5 2018-10-26 21:57 a root 6 2018-10-26 16:45 a root
komentář spustit
atrm 4
shell skript (umístěný v adresáři
5 0 * * * $HOME/myjob
) v různých časech s názvem konkrétního adresáře jako argumentem. Každý argument do
crontab jobinfo
-
crontab -l
,
crontab _u  username filename  
,
crontab _u  username  -l
a
crontab -u  username  -r
- je adresář. V zásadě
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly
provede všechny skripty umístěné v adresáři, který zadáte jako argument.

V tabulce níže jsou uvedeny adresáře, kde tyto skripty najdete a kdy se spustí. Musíte se podívat na skripty v těchto adresářích, abyste věděli, co se provádí v těchto intervalech.

Adresáře skriptů pro úlohy cron

Název adresáře Spustí se skript
/etc/cron.hourly Každou hodinu
/etc/cron.denně Každý den
/etc/cron.týden Týdně
/etc/cron.měsíčně Jednou za měsíc