Por que este trabalho não é crontab em execução?

4

Eu tenho um cron job que é executado a cada minuto em uma caixa do Ubuntu 12.04

$sudo crontab -e
* * * * * mylogin /pathto/file.sh > /log/filelog

Se eu executar file.sh , o script bash faz algumas coisas e echos fora runs :

$ ./file.sh 
runs

Se eu verificar o log da guia cron, mostrará que a tarefa está em execução:

Jul 10 12:41:01 localhost CRON[1811]: (root) CMD (mylogin /pathto/file.sh > /log/filelog)
Jul 10 12:41:01 localhost CRON[1810]: (CRON) info (No MTA installed, discarding output)
Jul 10 12:42:01 localhost CRON[1813]: (root) CMD (mylogin /pathto/file.sh > /log/filelog)

No entanto, o script não está sendo executado. Ele não está funcionando e não está ecoando runs to /log/filelog .

$cat /log/filelog  #shows nothing

Quais outras etapas posso tomar para depurar este problema?

    
por bernie2436 10.07.2014 / 18:47

1 resposta

7

A especificação de um nome de usuário como mylogin é para o arquivo /etc/crontab . Com seu comando sudo crontab -e , você está realmente editando /var/spool/cron/crontabs/root e não deve especificar um nome de usuário em tal arquivo, apenas em /etc/crontab .

Se você precisar executar o comando como usuário mylogin , deverá colocar a linha em /etc/crontab (e editá-la com root privileges) ou apenas colocá-la no crontab do usuário mylogin .

De man 5 crontab :

EXAMPLE SYSTEM CRON FILE
    The following lists the content of a regular system-wide crontab  file.
    Unlinke  a user's crontab, this file has the username field, as used by
    /etc/crontab.
    
por 10.07.2014 / 19:41

Tags