Acho que o comando at
é o que você procura depois.
Por exemplo:
echo "mail -s Test mstumm < /etc/group" | at 16:30
Isso enviará uma cópia do /etc/group
às 16:30.
Você pode ler mais sobre at
aqui: link
Gostaria de executar uma tarefa em um determinado momento, uma vez.
Eu sei que posso usar apenas crontab -e para adicioná-lo lá, mas eu gostaria de fazer isso através de um shellscript. crontab -e
me dá algum arquivo temporário para editar, o que é imprevisível.
Além disso, assim que a tarefa for executada, eu gostaria de removê-la do crontab novamente para ter certeza de que ela não deixaria a bagunça.
Então, há uma maneira padronizada de adicionar / remover entradas do meu crontab pessoal por meio de um script?
Sei que posso criar meu próprio sistema: ter um script que execute todos os minutos que executem e excluir arquivos .sh de uma pasta e que meu script "addtask" crie arquivos .sh nessa pasta, mas antes de fazer o roteiro Pergunto-me se já existe alguma coisa.
Se for importante, eu uso o Mac OS X e o zsh, mas também quero usar algo que funcione em outros * nixes.
Acho que o comando at
é o que você procura depois.
Por exemplo:
echo "mail -s Test mstumm < /etc/group" | at 16:30
Isso enviará uma cópia do /etc/group
às 16:30.
Você pode ler mais sobre at
aqui: link
Adicionando um novo trabalho cron:
newJob="/path/to/new/script.sh"
newJobSchedule="0 0 * * 0 $newJob"
cat <(crontab -l) <(echo "$newJobSchedule") | crontab -
Excluindo um trabalho antigo do cron:
oldJob="/path/to/old/script.sh"
cat <(fgrep -i -v "$oldJob" <(crontab -l)) | crontab -
Substituindo um cron job desatualizado:
oldJob="/path/to/old/script.sh"
newJob="/path/to/new/script.sh"
newJobSchedule="0 0 * * 0 $newJob"
cat <(fgrep -i -v "$oldJob" <(crontab -l)) <(echo "$newJobSchedule") | crontab -
Os arquivos temporários são evitados usando canais e redirecionamentos.
Tags cron scheduling shell-script