Vreau să rulez un mic fișier jar de monitorizare la fiecare 2 ore în mașina mea ubuntu.
java -jar mymonitoringtool.jar
Nu știu cum să îl configurez.
Comentarii
- cron este prietenul tău, pentru asta.
- Ce trebuie să se întâmple în legătură cu trecerea la / de la ora de vară? Este foarte important ca lucrarea să se desfășoare la fiecare două ore și să nu i se permită să sară sau să adauge o oră pe atunci?
- da, ar trebui să ruleze la fiecare două ore. Fără sărituri, cred că nu ar reprezenta efectiv 2 ore de monitorizare, mai degrabă mai puțin de 2 ore. Planificăm să rulăm câteva statistici despre acesta. Deci, durata este importantă.
Răspuns
Puteți configura un crontab cu următoarea expresie pentru cerințele dvs.
0 */2 * * * path/to/java -jar path/to/mymonitoringtool.jar &> path/to/monitor-$(date "+%Y%b%d-%H%M%S").log
Mai întâi ar trebui să verificați eventualele joburi cron existente executând crontab -l
.
Dacă nu faceți acest lucru aveți încă joburi cron, puteți pune a bove line într-un fișier text (spune my-cron-job.txt) și rulați crontab my-cron-job.txt
pentru a-l activa. Apoi puteți verifica dacă lucrarea a fost adăugată executând încă o dată crontab -l
.
Dacă aveți joburi cron existente, va trebui să rulați crontab -e
și editați fișierul crontab. Acest lucru vă va cere să lucrați cu un editor de linie de comandă (vi, în mod implicit).
Daemonul cron setează doar un număr limitat variabilelor de mediu, deci este de preferat să specificați calea completă către executabilul java. De asemenea, va trebui să specificați calea completă către fișierul JAR executabil.
Presupun că doriți să colectați ieșirea din comanda java -jar
, deci Am adăugat un fișier jurnal la comandă. Fluxurile de ieșire și erori de la comandă vor fi redirecționate către acest fișier jurnal, care va fi denumit cu un timestamp (monitor-2018Nov03-200000.log, de exemplu).
Odată ce totul este setat, ar trebui să monitorizați lucrarea cron pentru primele una sau două execuții. Dacă totul funcționează așa cum aveți nevoie, îl puteți lăsa să ruleze.
Ca referință externă , aici este o introducere despre joburile cron. Acest lucru ar trebui să vă ajute să înțelegeți cum funcționează de fapt programarea.
https://www.howtoforge.com/a-short-introduction-to-cron-jobs
Răspuns
cron este programatorul de joburi intern al Linuxului. Vă ajută la programarea comenzii dvs. pentru a rula la un anumit interval sau data_time.
tastați
crontab -e
pe terminaladăugați această linie
0 */2 * * * path/to/java -jar path/to/mymonitoringtool.jar
salvați și ieșiți
Sintaxa Crontab după cum urmează
00 */2 * * * path/to/java -jar path/to/mymonitoringtool.jar
Minutul 0 la fiecare 2-oră în fiecare zi în fiecare lună în fiecare săptămână executați-această-comandă
Pentru mai multe opțiuni și informații: https://help.ubuntu.com/community/CronHowto
Comentarii
- Este necesară calea / către / java dacă am configurat JAVA_HOME? Pot vedea că versiunea java funcționează în mașina mea.
- nu este nevoie să adăugați calea dacă variabila de mediu (JAVA_HOME) este setat. Dar cumva, dacă variabila de mediu s-a încurcat, calea Java adăugată în cronjob a câștigat ' t frână