Quero executar um pequeno arquivo jar de monitoramento a cada 2 horas em minha máquina ubuntu.
java -jar mymonitoringtool.jar
Não sei como configurá-lo.
Comentários
- cron é seu amigo para isso.
- O que precisa acontecer para mudar de / para o horário de verão? É muito importante que o trabalho seja executado a cada duas horas e não seja permitido pular ou adicionar uma hora nessa hora?
- sim, ele deve ser executado a cada duas horas. Sem pular, eu acho que não seria eficaz representar 2 horas de monitoramento em vez de menos de 2 horas. Estamos planejando executar algumas estatísticas sobre ele. Portanto, a duração é importante.
Resposta
Você pode configurar um crontab com a seguinte expressão para seus requisitos.
0 */2 * * * path/to/java -jar path/to/mymonitoringtool.jar &> path/to/monitor-$(date "+%Y%b%d-%H%M%S").log
Você deve primeiro verificar se há trabalhos cron existentes executando crontab -l
.
Se não tem qualquer cron jobs ainda, você pode colocar um acima da linha em um arquivo de texto (digamos my-cron-job.txt) e execute crontab my-cron-job.txt
para ativá-lo. Você pode então verificar se o trabalho foi adicionado executando crontab -l
mais uma vez.
Se você tiver trabalhos cron existentes, será necessário executar crontab -e
e edite o arquivo crontab. Isso exigirá que você trabalhe com um editor de linha de comando (vi, por padrão).
O daemon cron define apenas um número limitado de variáveis de ambiente, portanto, é preferível especificar o caminho completo para o executável java. Você também precisará especificar o caminho completo para seu arquivo JAR executável.
Estou assumindo que você deseja coletar a saída do comando java -jar
, então Eu adicionei um arquivo de log ao comando. Os fluxos de saída e de erro do comando serão redirecionados para este arquivo de log, que será nomeado com um carimbo de data / hora (monitor-2018Nov03-200000.log, por exemplo).
Depois que tudo estiver configurado, você deve monitorar o cron job para as primeiras uma ou duas execuções. Se tudo funcionar como você precisa, você pode deixá-lo em execução.
Como uma referência externa , aqui está uma introdução aos trabalhos do cron. Isso deve ajudá-lo a entender como o agendamento realmente funciona.
https://www.howtoforge.com/a-short-introduction-to-cron-jobs
Resposta
cron é o agendador de tarefas interno do Linux. Ele ajuda a programar seu comando para ser executado em determinado intervalo ou data_hora.
digite
crontab -e
no terminaladicione esta linha
0 */2 * * * path/to/java -jar path/to/mymonitoringtool.jar
salve e saia
Sintaxe do Crontab conforme a seguir
00 */2 * * * path/to/java -jar path/to/mymonitoringtool.jar
0º minuto a cada 2ª hora todos os dias todos os meses todos os dias da semana run-this-command
Para mais opções e informações: https://help.ubuntu.com/community/CronHowto
Comentários
- O path / to / java é necessário se eu configurei JAVA_HOME? Posso ver que a versão java funciona em minha máquina.
- não há necessidade de adicione o caminho se a variável ambiental (JAVA_HOME) está definido. Mas de alguma forma, se a variável ambiental bagunçou, o caminho java adicionado no cronjob ganhou ' t travar