나는 다음을 입력합니다crontab -e
0 0 * * * bitcoind -datadir=/home/pi/bitcoinData -daemon
0 6 * * * bitcoin-cli -datadir=/home/pi/bitcoinData stop
bitcoind -datadir=/home/pi/bitcoinData -daemon
bitcoin-cli -datadir=/home/pi/bitcoinData stop
매일 정오 12시에 실행한 다음 매일 오전 6시에 실행하고 싶습니다 . 그러나 명령은 실행되지 않습니다. 이 문제를 어떻게 해결할 수 있나요?
"크론 상태" 출력:
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
답변1
이 문제에 대한 해결책은 절대 경로 이름을 사용하여 cron의 항목을 수정하는 것입니다. 머신에는 실패 알림을 보내는 MTA가 없으므로 cron 명령 로깅 기능이 다음과 같이 추가되었습니다.
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