Executando um script todos os dias usando um cronjob


9

Eu preciso do código exato que eu usaria porque não sou capaz de descobrir isso. Eu uso crontab -epara configurar um trabalho cron, mas quando eu o salvo, ele nunca funciona. Também estou apenas tentando executar um arquivo chamado newmail.shdo usuário root.


Você encontrou a resposta para sua pergunta?
bendaf 23/01/19

Respostas:


10

Se você deseja que a tarefa seja executada todos os dias às 15h17, use:

17 15 * * * root newmail.sh

Isso diz "execute newmail.sh como root todos os dias da semana, todos os dias do mês, todos os meses às 15:17".

minuto hora dom mês dow user cmd

minute - controla em que minuto da hora o comando será executado e está entre '0' e '59'

hora - controla em que hora o comando será executado e é especificado no relógio de 24 horas, os valores devem estar entre 0 e 23 (0 é meia-noite)

dom - este é o dia do mês em que você deseja executar o comando, por exemplo, para executar um comando no dia 19 de cada mês, o dom seria 19.

month Este é o mês em que um comando especificado será executado, pode ser especificado numericamente (0-12) ou como o nome do mês (por exemplo, maio)

dow - Este é o dia da semana em que você deseja executar um comando, também pode ser numérico (0-7) ou como o nome do dia (por exemplo, sol).

usuário - Este é o usuário que executa o comando.

cmd - Este é o comando que você deseja executar. Este campo pode conter várias palavras ou espaços.

from: http://www.unixgeeks.org/security/newbie/unix/cron-1.html


no ubuntu 16 e mais tarde o novo formato é: "mh dom mon comando dow"
bendaf

no Ubuntu 19, o minuto é o primeiro. Além disso, ele avisa sobre a hora incorreta.
kelalaka

5
sudo crontab -e

Adicione essas linhas no final do arquivo

*/1 * * * * wget -O /dev/null  project_crone_URL

(Execute cron por uma vez em 1 minuto)

0 0 * * * wget -O /dev/null  project_crone_URL

(Execute o cron por uma vez em 24 horas)

salvar Arquivo

Inicie o crontab por este comando

sudo /etc/init.d/cron start

Pare o crontab por este comando

sudo /etc/init.d/cron stop

Reinicie o crontab por este comando

sudo /etc/init.d/cron restart

1

Se você usa crontab -edesde o Ubuntu 16.0+ não terá o campo de usuário, então o formato correto é:

17 15 * * * newmail.sh

Isso diz "execute newmail.sh todos os dias da semana, todos os dias do mês, todos os meses às 15:17".

Outras maneiras pelas quais a resposta do dm78 está correta e contém a descrição exata do formato.

Além disso, se algo der errado e você tiver um sistema de email instalado, ele enviará uma mensagem. Para mais informações, veja esta resposta

Se você estiver interessado no registro de cronjobs, poderá usar esta resposta .


1
Depende de qual crontab você editar. A crontab -ecoisinha não tem um campo de usuário (como você diz corretamente) mas o arquivo /etc/crontab(o chamado sistema crontab) e os arquivos abaixo /etc/cron.d fazer ter um campo usuário.
PerlDuck
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.