insira a linha abaixo no seu terminal
crontab -e
coloque a linha abaixo e salve o arquivo.
1 * * * * date >> /tmp/output.txt
depois de um minuto, veja o arquivo de saída
cat /tmp/output.txt
Estou tentando aprender a usar o crontab para executar regularmente comandos bash. Eu pensei em tentar algo simples primeiro, como ter o crontab lendo a data e a hora a cada minuto. Mas quando tento fazer isso, acontece o seguinte:
Nicholass-MacBook-Air-2:cron_test nick$ crontab 1 * * * * date
crontab: 1: No such file or directory
Como faço para que isso funcione?
Obrigado,
Nick
insira a linha abaixo no seu terminal
crontab -e
coloque a linha abaixo e salve o arquivo.
1 * * * * date >> /tmp/output.txt
depois de um minuto, veja o arquivo de saída
cat /tmp/output.txt
O comando crontab
não aceita a entrada da tarefa agendada na linha de comando. Para adicionar uma entrada de tarefa cron, execute crontab -e
para abrir um editor.
No macOS, isso não funcionará, portanto, você deve preparar um arquivo de texto com a entrada cron nele e alimentar esse em crontab
:
$ vi crontab.txt # use whatever editor you want
Lá, adicione a entrada:
* * * * * date >>/tmp/date.out
Esta entrada irá agendar o comando date
para ser executado a cada minuto, para sempre (ou até que a tarefa cron seja excluída), e gravará sua saída em /tmp/date.out
, adicionando uma nova linha de saída toda vez que for executada .
Salve o arquivo e saia do editor.
Então, para carregar realmente a entrada do cron:
$ crontab crontab.txt
Note, entretanto, que isso substitui todas as entradas existentes do crontab para o usuário atual , se houver algum.
Para adicionar uma entrada no macOS, preservando as entradas já existentes, primeiro crie crontab.txt
com as entradas existentes do crontab e edite o arquivo e carregue-o de volta em:
$ crontab -l >crontab.txt
$ vi crontab.txt
$ crontab crontab.txt
Para remover as entradas all , use crontab -r
.
O Cron no macOS também entende os nomes curtos @reboot
, @hourly
, @daily
, @weekly
etc. para tempos de programação específicos. Consulte o crontab(5)
manual no seu sistema para mais informações ( man 5 crontab
).