Incluindo arquivo em config crontab?

8

Estou tentando colocar a configuração crontab específica do projeto no repositório de código para facilitar a atualização das tarefas cron em todos os back-ends durante a implantação.

É possível incluir arquivos na configuração do crontab? Algo como

* * * * * execsomething /blablabla/blah/
* * * * * onemore /blablabla
@include '/home/user/project/crontab.conf'
    
por Kirzilla 23.10.2013 / 14:53

2 respostas

8

Dependendo do seu daemon do cron e da sua distribuição, deve haver vários diretórios em / etc onde você pode colocar arquivos com tarefas para o cron.

Scripts (não trabalhos cron-formatados) colocados nos seguintes diretórios serão executados nos intervalos especificados. Note que frequência é garantida, mas o tempo exato executado pode não ser. Para a maioria dos usuários, esses diretórios são suficientes:

/etc/cron.hourly
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly

trabalhos cron-formatados (como seus exemplos acima) colocados no diretório a seguir serão executados pelo cron nos horários especificados. Observe que, além das entradas normais, o usuário do trabalho também precisa ser especificado, antes do comando. Para pacotes e distribuições de software, esse método é a melhor maneira de distribuir cronjobs:

/etc/cron.d

Exemplo de um comando formatado cron.d:

1 1 * * * root echo "serverfault is awesome" > /dev/null
    
por 23.10.2013 / 15:32
4

Não tanto quanto eu sei; é para isso que o /etc/cron.d é.

Como Boscoe apontou, há também os diretórios /etc/cron.{hourly,daily,weekly,monthly} , mas os trabalhos ali só podem ser executados como raiz (a menos que você use explicitamente /bin/su para alterar o EUID). As tarefas em /etc/cron.d têm um campo extra que especifica o usuário em que são executadas e a forma como sua pergunta contém um /home/user caminho me faz pensar que você deseja que essas tarefas sejam executadas como usuários arbitrários.

    
por 23.10.2013 / 15:00

Tags