Dois cronjobs que não funcionam (um para iniciar um processo, um para parar um processo)

1

Eu digitei o seguinte em crontab -e

0 0 * * * bitcoind -datadir=/home/pi/bitcoinData -daemon
0 6 * * * bitcoin-cli -datadir=/home/pi/bitcoinData stop

Espero que isso execute bitcoind -datadir=/home/pi/bitcoinData -daemon às 12h todos os dias e execute bitcoin-cli -datadir=/home/pi/bitcoinData stop às 6h todos os dias. Mas os comandos não são executados. Como posso consertar isso?

Saída do "status do cron":

pi@raspberrypi:~ $ sudo service cron status
● cron.service - Regular background program processing daemon
   Loaded: loaded (/lib/systemd/system/cron.service; enabled)
   Active: active (running) since Tue 2016-05-03 20:57:33 BST; 58min ago
     Docs: man:cron(8)
 Main PID: 5932 (cron)
   CGroup: /system.slice/cron.service
           └─5932 /usr/sbin/cron -f

raspberrypi CRON[7608]: pam_unix(cron:session): session opened for user root by (uid=0)
raspberrypi CRON[7615]: (root) CMD (bitcoind -datadir=/home/pi/bitcoinData -daemon)
raspberrypi CRON[7608]: pam_unix(cron:session): session closed for user root
raspberrypi cron[5932]: (root) RELOAD (crontabs/root)
pi@raspberrypi:~ $ 

(como sugerido) Eu adicionei >> /tmp/bitcoin-cron.log 2>&1 ao final de cada linha no cron. O arquivo de log estava mostrando /bin/sh: 1: bitcoind: not found

Então eu adicionei os caminhos completos para os programas no PATH assim:

pi@raspberrypi:~/bin $ locate bitcoind
/usr/local/bin/bitcoind
pi@raspberrypi:~/bin $ locate bitcoin-cli
/usr/local/bin/bitcoin-cli
pi@raspberrypi:~/bin $ export PATH=$PATH:/usr/local/bin/bitcoind
pi@raspberrypi:~/bin $ export PATH=$PATH:/usr/local/bin/bitcoin-cli
pi@raspberrypi:~/bin $ echo $PATH
/home/pi/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games:/usr/local/bin/bitcoind:/usr/local/bin/bitcoin-cli

Tentei novamente o cron e ele gerou uma segunda linha no arquivo de log, que também dizia /bin/sh: 1: bitcoind: not found

    
por oshirowanen 03.05.2016 / 21:49

1 resposta

3

A solução para o problema é modificar as entradas no cron com os nomes dos caminhos absolutos. Adicionado o recurso de registro de comandos do cron, pois a máquina não possui um MTA para enviar notificações de falha, como segue:

0 0 * * * /usr/local/bin/bitcoind -datadir=/home/pi/bitcoinData -daemon >> ~/bitcoinData/bitcoin-cron.log 2>&1
0 6 * * * /usr/local/bin/bitcoin-cli -datadir=/home/pi/bitcoinData stop >> ~/bitcoinData/bitcoin-cron.log 2>&1
    
por 04.05.2016 / 22:42