Com o Vixie Cron, eles são apenas arquivos comuns - contanto que você tenha as permissões certas, você pode editá-las como desejar. O Cron notará os arquivos modificados e recarregará o crontab (verifica uma vez por minuto). Isso tudo é realmente documentado na página do cron man "NOTES" , pelo menos no Debian.
Mas você realmente não deveria.
Primeiro, você realmente não precisa: você pode simplesmente passar um arquivo para instalar como um crontab no programa crontab
: crontab -u bob FILE
instalará FILE
como o crontab de Bob. E FILE
pode ser -
para usar stdin. Se você quiser fazer o script de uma alteração do crontab, você pode usar crontab -l -u bob
para listar o crontab, editá-lo e, em seguida, carregá-lo de volta. Você poderia, por exemplo, fazer isso (não testado) para garantir que seu termo como raiz tenha vida curta:
#!/bin/bash
while read -r -u 9 user; do
{
crontab -l -u "$user"
printf '%s\n' '* * * * * fortune -o | mail -s "DegradedArray event on /dev/md0" root'
} | crontab -u "$user" -
done 9< <(getent passwd | cut -d: -f1)
Segundo, uma boa razão para não ter sido mencionada acima: isto está documentado para ser aplicado ao cron do Debian. Mas há muitos Crons diferentes. O RHEL, por exemplo, usa um diferente. Arch usa temporizadores systemd por padrão (não tem certeza se usa a ponte crontab-to-timer systemd ou não), mas dá a você a opção de 5 implementações diferentes para escolher se você quiser um Cron real. Usar crontab
para instalar o crontab funcionará independentemente, ou pelo menos falhará com uma mensagem de erro para que você saiba que não funcionou. É muito mais portátil.