Jak nastavit Cron úlohu?

487

Chci naplánovat pravidelné spuštění úlohy a slyšet, že Cron je způsob, jak to udělat.

Jak mohu přidat úlohy Cron v Ubuntu?

    
dané Gabriel Solomon 16.08.2010 10:25

6 odpovědí

602

Umístěte skript shellu do jedné z těchto složek:/etc/cron.daily,/etc/cron.hourly,/etc/cron.monthly nebo/etc/cron.weekly.

Pokud vám to nestačí, můžete přidat další specifické úlohy, např. dvakrát měsíčně nebo každých 5 minut. Přejděte na terminál a zadejte:

crontab -e

Otevře se vaše osobní crontab (konfigurační soubor cron). První řádek v tomto souboru vysvětluje vše! V každém řádku můžete definovat jeden příkaz, který má být spuštěn, a jeho plán, a formát je poměrně jednoduchý, když se dostanete na něj. Struktura je:

minute hour day-of-month month day-of-week command

Pro všechna čísla můžete použít seznamy, např. 5,34,55 v poli minut bude znamenat běh v 5 minulosti, 34 v minulosti a 55 v minulé definované hodině.

Můžete také použít intervaly. Jsou definovány takto:*/20. Tento příklad znamená každých 20, takže ve sloupci minut je ekvivalentní0,20,40.

Takže spusťte příkaz každé pondělí v 5:30 v odpoledních hodinách:

30 17 * * 1 /path/to/command

nebo každých 15 minut

*/15 * * * * /path/to/command

Všimněte si, že den v týdnu se pohybuje od 0-6, kde 0 je neděle.

Další informace naleznete zde .

    
odpověděl LassePoulsen 09.03.2018 03:07
93

Pokud úlohu, kterou chcete spouštět, lze spustit se stejnými oprávněními jako uživatel, doporučuji používat crontab uživatele, který můžete upravit spuštěnímEDITOR="gedit" crontab -e (který bude používat gedit pro úpravu crontab) nebo jednodušecrontab -e (který bude používat výchozí editor) v terminálu.

Pokud chcete spustit něco každých 10 minut, přidáte například tento řádek

*/10 * * * * /usr/bin/somedirectory/somecommand

a uložte soubor.

Můžete vidět obsah uživatele crontab scrontab -l.

Nejplexibilnějším způsobem je použití systému crontab, který můžete upravit spuštěnímsudo crontab -e v terminálu. To vám umožní spustit příkazy jako root (v případě, že potřebujete tuto úroveň oprávnění) nebo kterýkoli jiný uživatel v systému.

Pokud tedy chcete spustit něco každých 10 minut jako root , přidáte například tento řádek

*/10 * * * * root /usr/bin/somedirectory/somecommand

a uložte soubor. (všimněte si přidání uživatele do řádku)

Obsah souboru crontab systému můžete vidět pomocísudo crontab -l.

Další podrobnosti naleznete na adrese: Odkaz

    
odpověděl Li Lo 16.08.2010 10:58
51

Pokud to chcete udělat pomocí grafického uživatelského rozhraní, můžete přejít na Centrum softwaru a nainstalovat Naplánované úlohy (nebo spustitsudo apt-get install gnome-schedule). Poskytuje výkonné grafické rozhraní pro přidání úkolů cron.

Všimněte si, že pokud použijete tuto metodu, úkoly budou ve výchozím nastavení provedeny jako váš vlastní uživatel, nikoliv jako root. To je obvykle dobrá věc.

    
odpověděl Javier Rivera 16.08.2010 11:21
24

Doporučuji Plánovač úloh KDE (kde-config-cron) . Přístup z Nastavení systému v modulu Plánovač úloh .

Spravuje jak osobní, tak systémové Crontabs a snadnost vytváření hranic času mi velice překvapila (viz obrázek níže). Myslím, že tato část je opravdu podceňována.

    
odpověděl gertvdijk 01.02.2013 00:59
11

Plánovač úloh KDE nebude fungovat v běžném Ubuntu. Funguje pouze v systémech KDE, jako je KUbuntu. Pro systém, který nepatří do systému KDE, dáváte přednost použití plánu gnome

$ sudo apt-get install gnome-schedule

Aplikace je naplánované úlohy v pomlčce.

    
odpověděl Antonio 11.02.2014 15:35
8

Chtěl jsem nastavit Cron úlohu pro spuštění skriptu bash, takže spuštění skriptu by přidalo cron úlohu.

Uvědomil jsem si, že když používáte:

crontab -e 

Potom vytvoří soubor:

/var/spool/cron/crontabs/root

Kde root je jméno uživatele, ve kterém běží příkaz crontab. Na základě toho a nejméně v 14.04 můžeme provést následující příkazy bash pro vytvoření nové úlohy Cron:

echo "30 17 * * 1 /path/to/command" > /var/spool/cron/crontabs/root

Také je třeba nastavit správné vlastnictví souboru:

chown root:root /var/spool/cron/crontabs/root

Nastavte správná oprávnění:

chmod 600 /var/spool/cron/crontabs/root

Pokud při spuštěnícrontab -e již existují úlohy Cron v seznamu, můžete přidat do seznamu pomocí následujícího příkazu:

echo "30 17 * * 1 /path/to/command" >> /var/spool/cron/crontabs/root
    
odpověděl Craig van Tonder 27.09.2016 22:25