Je souhaite exécuter un petit fichier jar de surveillance toutes les 2 heures sur ma machine ubuntu.
java -jar mymonitoringtool.jar
Je ne sais pas comment le configurer.
Commentaires
- cron est votre ami, pour cela.
- Que doit-il se passer pour passer de lheure dété à lheure dété? Est-il très important que la tâche soit exécutée toutes les deux heures et ne soit pas autorisée à sauter ou à ajouter une heure à ce moment-là?
- oui, il devrait fonctionner toutes les deux heures. Pas de saut, je suppose car cela ne représenterait pas 2 heures de surveillance plutôt que moins de 2 heures. Nous prévoyons dexécuter des statistiques à ce sujet. La durée est donc importante.
Réponse
Vous pouvez configurer un crontab avec lexpression suivante pour vos besoins.
0 */2 * * * path/to/java -jar path/to/mymonitoringtool.jar &> path/to/monitor-$(date "+%Y%b%d-%H%M%S").log
Vous devez dabord vérifier les travaux cron existants en exécutant crontab -l
.
Si vous ne le faites pas « t avez encore des tâches cron, vous pouvez mettre le au-dessus de la ligne dans un fichier texte (dites my-cron-job.txt) et exécutez crontab my-cron-job.txt
pour lactiver. Vous pouvez ensuite vérifier que la tâche a été ajoutée en exécutant à nouveau crontab -l
.
Si vous avez des tâches cron existantes, vous devrez exécuter crontab -e
et éditez le fichier crontab. Cela vous obligera à travailler avec un éditeur de ligne de commande (vi, par défaut).
Le démon cron ne définit quun nombre limité des variables denvironnement, il est donc préférable de spécifier le chemin complet de lexécutable java. Vous devrez également spécifier le chemin complet de votre fichier JAR exécutable.
Je suppose que vous voulez collecter la sortie de la commande java -jar
, donc Jai ajouté un fichier journal à la commande. Les flux de sortie et derreur de la commande seront redirigés vers ce fichier journal, qui sera nommé avec un horodatage (monitor-2018Nov03-200000.log, par exemple).
Une fois que tout est défini, vous devez surveiller le travail cron pour la ou les deux premières exécutions. Si tout fonctionne comme vous le souhaitez, vous pouvez le laisser en cours dexécution.
En tant que référence externe , voici une introduction sur les tâches cron. Cela devrait vous aider à comprendre le fonctionnement réel de la planification.
https://www.howtoforge.com/a-short-introduction-to-cron-jobs
Réponse
cron est le planificateur de travaux interne de Linux. Il vous aide à planifier lexécution de votre commande à un intervalle ou à une date_heure particuliers.
tapez
crontab -e
sur le terminalajoutez cette ligne
0 */2 * * * path/to/java -jar path/to/mymonitoringtool.jar
enregistrer et quitter
Syntaxe de Crontab comme suit
00 */2 * * * path/to/java -jar path/to/mymonitoringtool.jar
0e minute toutes les 2 heures tous les jours tous les mois tous les jours de la semaine exécuter cette commande
Pour plus doptions et dinformations: https://help.ubuntu.com/community/CronHowto
Commentaires
- Le chemin / vers / java est-il nécessaire si jai configuré JAVA_HOME? Je peux voir que la version java fonctionne sur ma machine.
- pas besoin de ajouter un chemin si une variable denvironnement (JAVA_HOME) est réglé. Mais dune manière ou dune autre, si la variable denvironnement était gâchée, le chemin java ajouté dans cronjob gagnait ' t brake