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 terminal

adicione 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

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *