Debian
兩個 cronjobs 不工作(一個啟動程序,一個停止程序)
我輸入了以下內容
crontab -e
0 0 * * * bitcoind -datadir=/home/pi/bitcoinData -daemon 0 6 * * * bitcoin-cli -datadir=/home/pi/bitcoinData stop
我希望它每天早上 12 點
bitcoind -datadir=/home/pi/bitcoinData -daemon
執行,然後每天bitcoin-cli -datadir=/home/pi/bitcoinData stop
早上 6 點執行。但是命令不會被執行。我怎樣才能解決這個問題?“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:~ $
(如建議的那樣)我
>> /tmp/bitcoin-cron.log 2>&1
在 cron 中添加到每一行的末尾。日誌文件顯示/bin/sh: 1: bitcoind: not found
所以我將程序的完整路徑添加到 PATH 中,如下所示:
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
再次嘗試cron,它在日誌文件中生成了第二行,其中還說
/bin/sh: 1: bitcoind: not found
該問題的解決方案是使用絕對路徑名修改 cron 中的條目。添加了 cron 命令日誌記錄功能,因為機器沒有 MTA 來發送失敗通知,如下所示:
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