Eu encontrei duas soluções alternativas para isso ...
Opção 1: executar o script cron.daily como usuário não raiz
Os scripts em /etc/cron.daily
serão executados como root, mas a raiz não precisa de uma senha para ser executada como outra pessoa. Então coloque um script lá que faça algo assim:
su myuser -c "/home/myuser/dostuff.sh"
A principal desvantagem se você precisar ser root para configurar isso.
Opção 2: configurar um anacron pessoal
Crie seus próprios diretórios de script anacron, por exemplo, ~/.anacron/daily
, ~/.anacron/weekly
e ~/.anacron/monthly
. Coloque seus scripts diários no diretório diário.
Em seguida, crie seu próprio arquivo anacrontab, por exemplo, ~/.anacron/anacrontab
. E diga isso:
1 5 cron.daily run-parts --report /home/myuser/.anacron/daily
7 10 cron.weekly run-parts --report /home/myuser/.anacron/weekly
@monthly 15 cron.monthly run-parts --report /home/myuser/.anacron/monthly
Também crie um diretório de spool para sua tarefa anacron, por exemplo, ~/.anacron/spool
.
Finalmente, você precisa fazer uma corrida anacron. Use um cron job frequente para isso. Execute crontab -e
e adicione
* * * * * /usr/sbin/anacron -t /home/myuser/.anacron/anacrontab -S /home/myuser/.anacron/spool
Isto irá executar um anacron com sua configuração a cada minuto e se um trabalho for devido, o anacron irá executá-lo. Você pode torná-lo menos freqüente, se quiser, a cada hora pode ser bom o suficiente para a maioria dos usuários.