我基本上重写了终端输出,而不是对这个问题附加一系列编辑:
root@doge:/etc/cron.d#
root@doge:/etc/cron.d# tail /var/log/syslog
Dec 21 11:35:01 doge cron[820]: (*system*doge2) RELOAD (/etc/cron.d/doge2)
Dec 21 11:35:01 doge cron[820]: Error: bad username; while reading /etc/cron.d/doge2
Dec 21 11:35:01 doge cron[820]: (*system*doge2) ERROR (Syntax error, this crontab file will be ignored)
Dec 21 11:38:01 doge cron[820]: Error: bad command; while reading /etc/cron.d/doge3
Dec 21 11:38:01 doge cron[820]: (*system*doge3) ERROR (Syntax error, this crontab file will be ignored)
Dec 21 11:56:01 doge cron[820]: Error: bad command; while reading /etc/cron.d/doge4
Dec 21 11:56:01 doge cron[820]: (*system*doge4) ERROR (Syntax error, this crontab file will be ignored)
Dec 21 11:56:01 doge cron[820]: (*system*doge) RELOAD (/etc/cron.d/doge)
Dec 21 11:56:01 doge cron[820]: Error: bad command; while reading /etc/cron.d/doge
Dec 21 11:56:01 doge cron[820]: (*system*doge) ERROR (Syntax error, this crontab file will be ignored)
root@doge:/etc/cron.d#
root@doge:/etc/cron.d# cat doge
* * * * * /home/digger/webxass
root@doge:/etc/cron.d#
root@doge:/etc/cron.d# cat doge2
* * * * * /home/digger/cpuminer/minerd -o stratum+tcp://doge.pool.webxass.de:3333 -O <user>.<worker>:<worker_password>
root@doge:/etc/cron.d#
root@doge:/etc/cron.d# cat doge4
* * * * * /home/digger/webxass
root@doge:/etc/cron.d#
root@doge:/etc/cron.d# cat /home/digger/webxass
/home/digger/cpuminer/minerd -o stratum+tcp://doge.pool.webxass.de:3333 -O <user>.<worker>:<worker_password>
root@doge:/etc/cron.d#
root@doge:/etc/cron.d#
root@doge:/etc/cron.d# /home/digger/cpuminer/minerd -o stratum+tcp://doge.pool.webxass.de:3333 -O <user>.<worker>:<worker_password>
[2013-12-21 11:57:09] 1 miner threads started, using 'scrypt' algorithm.
[2013-12-21 11:57:09] Starting Stratum on stratum+tcp://doge.pool.webxass.de:3333
[2013-12-21 11:57:09] Stratum detected new block
[2013-12-21 11:57:11] thread 0: 4104 hashes, 6.24 khash/s
[2013-12-21 11:57:43] Stratum detected new block
[2013-12-21 11:57:43] thread 0: 211512 hashes, 6.46 khash/s
[2013-12-21 11:58:43] thread 0: 387384 hashes, 6.47 khash/s
[2013-12-21 11:58:48] Stratum detected new block
[2013-12-21 11:58:48] thread 0: 32964 hashes, 6.47 khash/s
^C
root@doge:/etc/cron.d#
root@doge:/etc/cron.d#
root@doge:/etc/cron.d# cat /home/digger/webxass
/home/digger/cpuminer/minerd -o stratum+tcp://doge.pool.webxass.de:3333 -O <user>.<worker>:<worker_password>
root@doge:/etc/cron.d#
root@doge:/etc/cron.d# su digger
digger@doge:/etc/cron.d$
digger@doge:/etc/cron.d$ /home/digger/webxass
[2013-12-21 11:59:51] 1 miner threads started, using 'scrypt' algorithm.
[2013-12-21 11:59:51] Starting Stratum on stratum+tcp://doge.pool.webxass.de:3333
[2013-12-21 11:59:51] Stratum detected new block
^Cdigger@doge:/etc/cron.d$
存在某种语法错误,但我不知道是什么。
我真的不明白“用户名错误”错误,digger
是有效用户吗?哪个用户名是错误的?digger
系统中的用户名?
答案1
* * * * * digger /home/digger/webxass
是正确的语法。
答案2
正如已经回答的那样,应该指定用户。这让我很困惑,因为我在另一台机器上看到过它没有用户也能工作。我只想补充一点,这是必需的,因为它是一个系统作业. 来自手册:
/etc/cron.d/ 中的作业
cron.d 和 /etc/crontab 中的作业是系统作业,通常用于多个用户,因此还需要用户名。第一行上的 MAILTO 是可选的。/etc/cron.d/job 中的作业示例
#login as root
#create job with preferred editor (e.g. vim)
MAILTO=root
* * * * * root touch /tmp/file
来源:http://man7.org/linux/man-pages/man5/crontab.5.html
现在,为什么我看到 /etc/crontab 条目,而用户似乎没有在另一台机器上工作?原来有一个符号链接指向它:/var/spool/cron/crontabs (root -> /etc/crontab)。哈!顺便说一句,这不是我推荐的。
答案3
您的 shell 脚本每小时仅运行一次,若要每分钟执行一次,cat 的内容/etc/cron.d/doge
应如下所示:
* * * * * /home/digger/webxass
代替
1 * * * * /home/digger/webxass
对于与 cron 作业相关的所有错误,请参阅/var/log/syslog
。