Unix Cron: Podemos definir tarefas cron para serem executadas ao mesmo tempo

4

Eu criei uma entrada no crontab para executar um trabalho à meia-noite como, por exemplo, o usuário A.

De manhã, descobri que não havia resultados do roteiro. Verificando o /var/cron/log , descobri que durante essa hora (mesmo tempo) apenas um usuário root foi executado.

Perguntas: a) Podemos definir várias tarefas no cron para executar o mesmo tempo.
b) Se não? Isso significa que o usuário root do root tem precedência sobre qualquer outro usuário para executar o trabalho cron?

aqui é como eles se parecem.

root$ crontab -l
05 00 10 * * /opt/sdf/sbin/somescriptA.sh> /dev/null 2>&1 #Test

userA$ crontab -l
05 00 10 * * /opt/sdf/sbin/somescriptB.sh> /dev/null 2>&1 #Test
    
por Syed 10.06.2009 / 15:45

10 respostas

4

O Cron pode executar muitos scripts ao mesmo tempo . De fato, no Debian existem diretórios inteiros de scripts cron (ou seja, /etc/cron.daily /etc/cron.hourly) que são executados ao mesmo tempo.

Se o script for executado corretamente em um horário diferente, por que você não tenta alterar a hora do trabalho cron do root para determinar se o problema está com o tempo real ou um conflito entre o scripts.

Eu também concordo com o desligamento do redirecionamento para / dev / null até que você tenha tudo funcionando corretamente.

    
por 10.06.2009 / 16:36
4

Esse crontab que você postou está configurado para ser executado apenas às 00:05 do dia 10 todos os meses, é isso que você queria?

Por favor, verifique se o seu script em / opt tem permissões executáveis e se está chamando sh. Você pode tentar isso simplesmente executando o script no console (usando seu caminho completo, não coloque "sh" na frente do comando)

Tente verificar o diretório / var / spool / cron / para seu nome de usuário, o arquivo cron deve estar lá (em algum lugar - eu não tenho acesso a um sistema agora).

    
por 11.06.2009 / 08:05
3

Eu tomaria o redirecionamento / dev / null para fora do trabalho e teria o cron e-mail com a saída do arquivo. Pode ser que o script tenha um problema (talvez supondo uma variável de ambiente que não exista ao executar pelo cron).

    
por 10.06.2009 / 15:55
2

Os trabalhos Cron podem ser executados ao mesmo tempo. Seu problema é outra coisa. .. ou .. o script está sendo executado como root. Talvez o que você esteja tentando executar tenha seu próprio método de impedir mais de uma instância.

    
por 11.06.2009 / 06:18
1

Eu suspeito que haja alguma interação entre os dois scripts, como um arquivo de bloqueio ou um arquivo aberto.

    
por 10.06.2009 / 16:03
1

Nunca tive um problema com várias tarefas cron executando ao mesmo tempo. Apenas testei no meu sistema Slackware, funciona bem, mas pode variar de acordo com a distro.

Dito isso, geralmente é uma boa idéia escalonar os minutos de suas entradas crontab de qualquer forma, para que eles não sejam todos executados ao mesmo tempo (apenas para evitar carga desnecessária no sistema e possíveis problemas de interação).

Eu dobro a sugestão de Milner de verificar a saída dos trabalhos agendados em vez de redirecioná-los para nulo. Pelo menos até você depurar porque os trabalhos em si não estão funcionando.

    
por 10.06.2009 / 16:15
0

Os usuários devem ser capazes de executar trabalhos agendados simultaneamente sem problemas. Você confirmou que o usuário A tem permissão para usar o cron (tente verificar /etc/cron.allow e /etc/cron.deny).

por 10.06.2009 / 15:49
0

Você usou crontab -e para editar o crontab? Pode ser que o crontab não tenha notado sua mudança, você deve usar este comando para editar / instalar novos crontabs.

    
por 11.06.2009 / 06:18
0

Eu nunca ouvi falar do cron desabilitando silenciosamente os trabalhos do cron porque outros estavam agendados para o mesmo horário. Isso deve funcionar, então acho que seu problema está em outro lugar.

BTW, isso soa como algo para serverfault.com.

    
por 11.06.2009 / 06:18
0

Eu tive um problema semelhante e suspeitei que a execução de dois scripts diferentes ao mesmo tempo do meu crontab de usuário poderia ser o problema. Percebi que o problema era que as permissões no diretório de nível superior do segundo script eram "drwx ------" e o cron não podia acessá-lo para executá-lo. Depois de modificar as permissões nesse diretório, ele foi executado sem problemas.

    
por 21.10.2018 / 23:58

Tags