Devo usar o cron.hourly ou o crontab?

7

Parece que todas as sugestões para usar / agendar awstats são via crontab, como tal: 0 * * * * /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -config=mysite -update >/dev/null (executando awstats por hora).

No entanto, se eu verificar crontab -l , ele diz que o crontab está vazio para o meu usuário.

No entanto, quando eu verifico o /etc/cron.hourly , eu tenho um arquivo awstats com o seguinte:

#!/bin/bash
exec /usr/share/awstats/tools/awstats_updateall.pl now         -configdir="/etc/awstats"           -awstatsprog="/usr/share/awstats/wwwroot/cgi-bin/awstats.pl" >/dev/null
exit 0

Só para você saber, meu awstats é atualizado, cria seus relatórios e tudo é bom.

A execução de um comando crontab cria uma entrada na pasta cron especificada? (ou seja, cron.hourly ou cron.daily, etc)? Ou eles não estão relacionados? Se eles estão relacionados, por que meu usuário não possui uma entrada crontab?

    
por fizzy drink 21.09.2014 / 17:45

1 resposta

10

crontab -e é a maneira tradicional de criar um crontab. Eu acho que é estranho e antiquado, mas as pessoas ainda usam isso.

/etc/cron.hourly , incluindo cron.daily , cron.weekly & /etc/cron.d , etc. são fornecidos pela maioria das distribuições Linux porque são convenientes e funcionam bem com ferramentas de automação, como gerenciadores de pacotes e sistemas de gerenciamento de configuração. É muito fácil para um gerenciador de pacotes colocar um arquivo em /etc/cron.hourly/foo comparado a criar um script e criar um crontab existente. Editar um arquivo programaticamente por meio de um gerenciador de pacotes pode corromper o arquivo, adicionar entradas duplicadas, excluir a linha errada, estragar comentários etc. Consulte Editfiles Considerado Nocivo para alguma discussão, já que este problema já existe há algum tempo.

Does running a crontab command create an entry in the specified cron folder?

Não. /etc/cron.daily/foo é criado pelo gerenciador de pacotes ou criado manualmente. Não é criado quando você executa o comando crontab. crontab -e criará o crontab em /var , como /var/spool/cron/root .

Eu prefiro /etc/cron.$period/foo e /etc/cron.d porque essa hierarquia é organizada e organizada, e é fácil criar scripts para o meu sistema de Gerenciamento de Configurações. /etc/crontab também está disponível no Linux, mas é um pouco monolítico e difícil de editar programaticamente. Sistemas como o FreeBSD suportam /etc/crontab e /etc/periodic .

    
por 21.09.2014 / 18:00