Eu criei um script para instalar dois scripts no crontab.
#!/bin/bash
sudo crontab -l > mycron
#echo new cron into cron file
echo "*/05 * * * * bash /mnt/md0/capture/delete_old_pcap.sh" >> mycron #schedule the delete script
echo "*/12 * * * * bash /mnt/md0/capture/merge_pcap.sh" >> mycron #schedule the merge script
#install new cron file
crontab mycron
rm mycron
O script é executado e adicione as duas linhas ao crontab. Mas se eu executar o script novamente, ele adicionará essas linhas novamente, portanto terei quatro linhas dizendo a mesma coisa. Eu quero que o script de instalação seja executado de forma que as linhas inseridas no crontab não se repitam. Como eu posso fazer isso
Respostas:
Eu recomendaria usar
/etc/cron.d
maiscrontab
.Você pode colocar arquivos nos
/etc/cron.d
quais se comportam como entradas do crontab. Embora o formato seja um pouco diferente.Por exemplo
/etc/cron.d/pcap
:A diferença no formato é adicionar o usuário para executar o trabalho como após a especificação de horário.
Agora você pode simplesmente verificar se o arquivo existe e, se você o substituir, não importa.
Observe que é possível que seu daemon cron possa não ter
/etc/cron.d
. Não sei quais daemons cron o possuem, mas o vixie cron é o daemon cron padrão no linux, e ele possui.fonte
Você poderia declarar uma função:
e invoque-o dizendo:
Isso acrescentaria a linha apenas se não existir no arquivo.
fonte
-F
fariagrep
interpretar o padrão como uma sequência fixa.do bash eu uso
Use também este script para adicionar entradas cron em servidores remotos
fonte
Você pode escrever um script e adicioná-lo ao crontab para interrompê-lo:
fonte
kill -9
só deve ser feito como último recurso - unix.stackexchange.com/questions/8916/…