Chcę co 2 godziny uruchamiać mały plik jar monitorowania na moim komputerze ubuntu.
java -jar mymonitoringtool.jar
Nie wiem, jak to skonfigurować.
Komentarze
- cron jest twoim przyjacielem.
- Co musi się wydarzyć w przypadku przejścia na czas letni / zimowy / z trybu letniego? Czy bardzo ważne jest, aby zadanie było uruchamiane co dwie godziny i nie można w tym czasie pominąć ani dodać godziny?
- tak, powinien uruchamiać się co dwie godziny. Bez pomijania, myślę, że nie byłby skuteczny, co oznaczałoby 2 godziny monitorowania, a mniej niż 2 godziny. Planujemy uruchomić pewne statystyki, więc czas trwania ma znaczenie.
Odpowiedź
Możesz skonfigurować tabelę crontab z następującym wyrażeniem zgodnie z własnymi wymaganiami.
0 */2 * * * path/to/java -jar path/to/mymonitoringtool.jar &> path/to/monitor-$(date "+%Y%b%d-%H%M%S").log
Najpierw sprawdź, czy nie ma żadnych istniejących zadań cron, uruchamiając crontab -l
.
Jeśli nie masz jeszcze jakieś zadania cron, możesz umieścić plik a powyżej wiersza w pliku tekstowym (powiedzmy my-cron-job.txt) i uruchom crontab my-cron-job.txt
, aby go aktywować. Następnie możesz sprawdzić, czy zadanie zostało dodane, ponownie uruchamiając crontab -l
.
Jeśli masz istniejące zadania cron, „musisz uruchomić crontab -e
i edytuj plik crontab. Będzie to wymagało pracy z edytorem wiersza poleceń (domyślnie vi).
Demon cron ustawia tylko ograniczoną liczbę zmiennych środowiskowych, więc lepiej jest podać pełną ścieżkę do pliku wykonywalnego Java. Będziesz także musiał podać pełną ścieżkę do wykonywalnego pliku JAR.
Zakładam, że chcesz zebrać dane wyjściowe polecenia java -jar
, więc Dodałem plik dziennika do polecenia. Strumienie danych wyjściowych i błędów z polecenia zostaną przekierowane do tego pliku dziennika, który zostanie nazwany znacznikiem czasu (na przykład monitor-2018Nov03-200000.log).
Gdy wszystko jest ustawione, powinieneś monitorować zadanie crona pod kątem pierwszego lub dwóch pierwszych uruchomień. Jeśli wszystko działa tak, jak potrzebujesz, możesz zostawić je uruchomione.
Jako odniesienie zewnętrzne , oto wprowadzenie do zadań cron. To powinno pomóc ci zrozumieć, jak faktycznie działa planowanie.
https://www.howtoforge.com/a-short-introduction-to-cron-jobs
Odpowiedź
cron to wewnętrzny harmonogram zadań Linuksa. Pomaga zaplanować uruchamianie polecenia w określonych odstępach czasu lub w dacie.
wpisz
crontab -e
na terminaludodaj tę linię
0 */2 * * * path/to/java -jar path/to/mymonitoringtool.jar
zapisz i zamknij
Składnia Crontab w następujący sposób
00 */2 * * * path/to/java -jar path/to/mymonitoringtool.jar
0 minuta co 2 godziny codziennie co miesiąc każdego dnia tygodnia uruchom-to-polecenie
Więcej opcji i informacji: https://help.ubuntu.com/community/CronHowto
Komentarze
- Czy ścieżka / do / java jest wymagana, jeśli mam skonfigurowany JAVA_HOME? Widzę, że wersja java działa na moim komputerze.
- nie ma potrzeby dodaj ścieżkę do zmiennej środowiskowej (JAVA_HOME) jest ustawiony. Ale w jakiś sposób, jeśli zmienna środowiskowa zawiodła, dodana ścieżka Java w cronjob wygrała ' t hamulec