Por que o crontab está sendo executado em um servidor, mas não em outro?

0

Eu tenho dois servidores no linode que têm alguns sites neles. Eu criei um script para ver se o mysql está rodando no servidor e se ele não estiver rodando, o script irá iniciar o mysql. O script está nos dois servidores e na mesma estrutura de arquivos.

Eu adicionei o script ao cron usando o comando "crontab -e" com os dois servidores. O problema é que o meu servidor dev irá executar o script enquanto o servidor prod permanecerá inativo. Eu adicionei espaços ao final do crontab, então eu sei que não é o problema.

Quando o script é executado manualmente no servidor prod, recebo este erro "(Nenhuma informação pode ser lida para" -p ": geteuid () = 1000, mas você deve ser root.)". Mesmo que o erro apareça, o script ainda reinicia o mysql, mas quando o script está sendo executado com o cron, o mysql não será reiniciado. Observe também que executei o script no servidor dev e consegui o mesmo erro. Mesmo que o erro esteja lá, o script será executado no dev e reiniciar o mysql quando executado através do cron.

Quando eu executo um comando sob sudo no servidor dev ele não pede o passe, mas quando eu o executo no servidor prod eu recebo uma senha.

Verifiquei o syslog para saber que o comando cron está sendo executado.

O script usa o comando netstat com os parâmetros -v -u -l -n -t -p.

    
por Henri Lower 28.03.2016 / 20:55

1 resposta

0

When I run a command under sudo on the dev server it doesn't ask for the pass but when I run it on the prod server I get asked for a password

Você comparou a configuração do sudo em ambos os nós? Por favor, execute em ambas as máquinas este comando (da conta onde você modificou o crontab):

sudo -l
    
por 28.03.2016 / 21:11