web-dev-qa-db-ja.com

cronエラー:悪いユーザー名

この質問に一連の編集を追加する代わりに、基本的にターミナル出力を書き直しました。

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ユーザー名は?

3
Thufir
* * * * * digger /home/digger/webxass

正しい構文です。

7
Thufir

回答済みなので、ユーザーを指定する必要があります。これは、ユーザーが別のマシンを使用しなくても動作するのを見て、私を困惑させました。 システムジョブであるため、必要であることを追加したいだけです。マニュアルから:

/ 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)を指すシンボリックリンクがあったことがわかりました。ハ!ところで、私がお勧めするものではありません。

5
Nagev

シェルスクリプトは1時間に1回しか実行されません。毎分実行するには、cat /etc/cron.d/dogeの内容は次のようになります。

* * * * * /home/digger/webxass

の代わりに

1 * * * * /home/digger/webxass

Cronジョブに関連するすべてのエラーについては、/var/log/syslogを参照してください。

1
jobin