Um único usuário pode ter vários arquivos crontab?

1

Suponha que eu esteja criando dois arquivos crontab.

  1. /tmp/my-crontab
  2. /root/my-alternate-crontab

Cada arquivo crontab é enviado para executar scripts diferentes.

Quando inicio o cronjob, o primeiro é substituído pelo mais antigo.

crontab -u smarak /tmp/my-crontab
crontab -u smarak /root/my-alternate-crontab

O acima é possível para um único usuário?

    
por SKM 24.04.2017 / 13:31

2 respostas

3

Duas maneiras de contornar um único crontab.

Coloque as entradas do crontab em arquivos em algum diretório, como ~/crontab.d/thisandthat.cron , e confirme as alterações feitas no crontab do sistema com:

cat ~/crontab.d/*.cron | crontab -

A extensão .cron é para evitar incluir acidentalmente arquivos de backup dos editores. Observe que, como todos os arquivos são concatenados juntos, qualquer variável definida nos arquivos também será aplicada aos arquivos que vierem depois.

Você também pode fazer algo semelhante a como /etc/cron.hourly e amigos são implementados no Debian. O principal /etc/crontab contém regras como esta:

17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly

Você poderia organizar uma única entrada crontab para executar vários programas. O run-parts dir do Debian é semelhante ao for f in dir/* ; do "$f" ; done , exceto que ele ignora nomes de arquivos estranhos, novamente para evitar a execução de arquivos de backup criados por editores, etc.

    
por 24.04.2017 / 13:53
2

Não. Cada usuário tem um crontab. Por quê? Porque o crontab é a "tabela" ("tab") de todas as tarefas do cron associadas a um único usuário.

Se você quiser executar várias coisas com cron , basta adicionar várias linhas no seu crontab.

Se você tiver vários arquivos com as especificações da tarefa cron, basta concatená-los:

cat crontab1 crontab2 crontab3 >my-crontab
crontab my-crontab
    
por 24.04.2017 / 13:43