Ik wil elke 2 uur een klein monitoring jar-bestand uitvoeren op mijn ubuntu-machine.
java -jar mymonitoringtool.jar
Ik weet niet hoe ik het moet instellen.
Reacties
- cron is hiervoor je vriend.
- Wat moet er gebeuren rond het overschakelen van / naar zomertijd? Is het erg belangrijk dat de taak elke twee uur wordt uitgevoerd en mag er dan geen uur worden overgeslagen of toegevoegd?
- ja, het zou om de twee uur moeten draaien. Niet overslaan denk ik, omdat het niet effectief zou zijn als 2 uur monitoring in plaats van minder dan 2 uur. We zijn van plan er wat statistieken over uit te voeren. De duur is dus van belang.
Antwoord
U kunt een crontab opzetten met de volgende uitdrukking voor uw vereisten.
0 */2 * * * path/to/java -jar path/to/mymonitoringtool.jar &> path/to/monitor-$(date "+%Y%b%d-%H%M%S").log
U moet eerst controleren op bestaande cron-taken door crontab -l
uit te voeren.
Als u dat niet doet nog cron-jobs hebben, kunt u de a regel boven in een tekstbestand (zeg my-cron-job.txt) en voer crontab my-cron-job.txt
uit om het te activeren. U kunt vervolgens controleren of de taak is toegevoegd door crontab -l
nogmaals uit te voeren.
Als u bestaande cron-taken heeft, moet u crontab -e
en bewerk het crontab-bestand. Hiervoor moet u werken met een opdrachtregel-editor (standaard vi).
De cron-daemon stelt slechts een beperkt aantal in van omgevingsvariabelen, dus het verdient de voorkeur om het volledige pad naar het Java-uitvoerbare bestand op te geven. U zult ook het volledige pad naar uw uitvoerbare JAR-bestand moeten specificeren.
Ik neem aan dat u de uitvoer wilt verzamelen van het java -jar
commando, dus Ik heb een logbestand aan de opdracht toegevoegd. De uitvoer- en foutstromen van de opdracht worden omgeleid naar dit logbestand, dat een naam krijgt met een tijdstempel (bijvoorbeeld monitor-2018Nov03-200000.log).
Zodra alles is ingesteld, moet u de cron-taak controleren voor de eerste een of twee uitvoeringen. Als alles werkt zoals u nodig hebt, kunt u het laten draaien.
Als externe referentie , hier is een inleiding over cron-banen. Dit zou u moeten helpen begrijpen hoe de planning werkelijk werkt.
https://www.howtoforge.com/a-short-introduction-to-cron-jobs
Answer
cron is de interne taakplanner van Linux. Het helpt bij het plannen van uw opdracht om op een bepaald interval of datum_tijd uit te voeren.
typ
crontab -e
op de terminalvoeg deze regel toe
0 */2 * * * path/to/java -jar path/to/mymonitoringtool.jar
opslaan en afsluiten
Crontab-syntaxis als volgt
00 */2 * * * path/to/java -jar path/to/mymonitoringtool.jar
0e minuut elk 2 uur elke dag elke maand elke weekdag run-this-commando
Voor meer opties en informatie: https://help.ubuntu.com/community/CronHowto
Opmerkingen
- Is pad / naar / java vereist als ik JAVA_HOME heb ingesteld? Ik kan zien dat java -version werkt op mijn computer.
- Dit is niet nodig pad toevoegen als omgevingsvariabele (JAVA_HOME) is ingesteld. Maar op de een of andere manier, als de omgevingsvariabele een fout maakte, won het toegevoegde Java-pad in cronjob ' t rem