web-dev-qa-db-fra.com

erreur cron: mauvais nom d'utilisateur

En gros, j'ai réécrit la sortie du terminal au lieu d'ajouter une série de modifications à cette question:

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$ 

Il y a une sorte d'erreur de syntaxe, mais je ne sais pas ce que c'est.

Je ne comprends vraiment pas l'erreur "Nom d'utilisateur incorrect", digger est un utilisateur valide. Quel nom d'utilisateur est mauvais? Le nom d'utilisateur digger dans le système?

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

est la syntaxe correcte.

7
Thufir

Comme il a été répondu, l'utilisateur doit être spécifié. Cela m'a rendu perplexe parce que je l'avais vu fonctionner sans l'utilisateur sur une autre machine. Je veux juste ajouter que c'est nécessaire car il s'agit d'un travail système . Du manuel:

Jobs dans /etc/cron.d/

Les travaux dans cron.d et/etc/crontab sont des travaux système, généralement utilisés par plusieurs utilisateurs. Par conséquent, le nom d'utilisateur est également nécessaire. MAILTO sur la première ligne est facultatif. EXEMPLE D'UN EMPLOI DANS /etc/cron.d/job

   #login as root
   #create job with preferred editor (e.g. vim)
   MAILTO=root
   * * * * * root touch /tmp/file

Source: http://man7.org/linux/man-pages/man5/crontab.5.html

Maintenant, pourquoi ai-je vu les entrées/etc/crontab sans que l'utilisateur ne travaille apparemment sur une autre machine? Il s'avère qu'il y avait un lien symbolique qui le pointait dans:/var/spool/cron/crontabs (root ->/etc/crontab). Ha! Ce n'est pas ce que je recommanderais, au fait.

5
Nagev

Votre script Shell ne s'exécutera qu'une fois par heure. Pour l'exécuter toutes les minutes, le contenu de cat /etc/cron.d/doge devrait être le suivant:

* * * * * /home/digger/webxass

au lieu de

1 * * * * /home/digger/webxass

Pour toutes les erreurs liées aux tâches cron, voir /var/log/syslog.

1
jobin