Chci v počítači ubuntu spustit každé 2 hodiny malý soubor sledování jar.
java -jar mymonitoringtool.jar
Nevím, jak to nastavit.
Komentáře
- za to je vaším přítelem cron.
- Co se musí stát kolem přepnutí na / z letního času? Je velmi důležité, aby se úloha spouštěla každé dvě hodiny a nemělo povolené přeskočit nebo přidat hodinu?
- ano, mělo by to běžet každé dvě hodiny. žádné přeskakování myslím, že by to nebylo efektivní, představovaly by to spíše 2 hodiny monitorování než méně než 2 hodiny. Plánujeme na tom spustit nějaké statistiky. Délka je tedy důležitá.
Odpověď
Pro své požadavky můžete nastavit crontab s následujícím výrazem.
0 */2 * * * path/to/java -jar path/to/mymonitoringtool.jar &> path/to/monitor-$(date "+%Y%b%d-%H%M%S").log
Nejprve byste měli zkontrolovat existující úlohy cron spuštěním crontab -l
.
Pokud tak neučiníte máte ještě nějaké cron úlohy, můžete dát a přesuňte řádek do textového souboru (řekněme my-cron-job.txt) a aktivujte jej crontab my-cron-job.txt
. Poté můžete ověřit, že byla úloha přidána dalším spuštěním crontab -l
.
Pokud máte existující úlohy cron, budete muset spustit crontab -e
a upravte soubor crontab. To vyžaduje práci s editorem příkazového řádku (ve výchozím nastavení vi).
Démon cron nastavuje pouze omezený počet proměnných prostředí, proto je lepší zadat úplnou cestu ke spustitelnému souboru Java. Budete také muset zadat úplnou cestu k spustitelnému souboru JAR.
Předpokládám, že chcete shromáždit výstup z příkazu java -jar
, takže Do příkazu jsem přidal soubor protokolu. Výstupní a chybové toky z příkazu budou přesměrovány do tohoto souboru protokolu, který bude pojmenován časovým razítkem (například monitor-2018Nov03-200000.log).
Jakmile je vše nastaveno, měli byste sledovat úlohu cron pro první jednu nebo dvě spuštění. Pokud vše funguje tak, jak potřebujete, můžete to nechat spuštěné.
Jako externí reference , zde je úvod k úlohám cron. To by vám mělo pomoci pochopit, jak plánování ve skutečnosti funguje.
https://www.howtoforge.com/a-short-introduction-to-cron-jobs
Odpověď
cron je interní plánovač úloh Linuxu. Pomáhá při plánování spuštění vašeho příkazu v určitém intervalu nebo date_time.
zadejte
crontab -e
do terminálupřidejte tento řádek
0 */2 * * * path/to/java -jar path/to/mymonitoringtool.jar
uložit a ukončit
Syntaxe Crontab takto
00 */2 * * * path/to/java -jar path/to/mymonitoringtool.jar
Každou 2. hodinu každou hodinu každý den každý měsíc každý měsíc každý den v týdnu run-this-command
Další možnosti a informace: https://help.ubuntu.com/community/CronHowto
Komentáře
- Je vyžadována cesta / k / java, pokud mám nastavený JAVA_HOME? Vidím, že v mém počítači funguje java -version.
- není třeba přidat cestu, pokud je proměnná prostředí (JAVA_HOME) je nastaven. Ale nějakým způsobem, pokud se proměnná prostředí pokazila, přidala se cesta java v cronjob ' t brzdy