Incluindo arquivo na configuração do crontab?


8

Estou tentando colocar a configuração específica do projeto crontab no repositório de código para facilitar a atualização de 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'

Respostas:


8

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

Os scripts (trabalhos não formatados em cron) colocados nos seguintes diretórios serão executados nos intervalos especificados. Observe que a frequência é garantida, mas o tempo exato em que pode ser 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

Os trabalhos no formato cron (como os 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

O nome de usuário pode ser uma variável? Eu tenho vários comandos que precisam ser executados como o mesmo usuário, mas podem ser um usuário diferente em ambientes diferentes. Posso fazer algo como $ USER = joeblow 1 1 * * * $ USER echo "serverfault is awesome"> / dev / null
Jay K #

Depende do daemon cron. cronie não permite variáveis ​​de ambiente, por exemplo.
Boscoe 16/05

4

Não tão longe quanto o que sei; /etc/cron.dé para isso que serve.

Como Boscoe apontou, também existem os /etc/cron.{hourly,daily,weekly,monthly}diretórios, mas os trabalhos nele podem ser executados apenas como root (a menos que você use explicitamente /bin/supara alterar o EUID). Os trabalhos /etc/cron.dtêm um campo extra que especifica o usuário em que são executados e a maneira como sua pergunta contém um /home/usercaminho me faz pensar que você deseja que esses trabalhos possam ser executados como usuários arbitrários.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.