web-dev-qa-db-ja.com

ユーザーのcronジョブは実行されていませんが、システムジョブは実行されています

インターウェブで見つけたすべてを試していなかったら、ここに投稿することはありませんでした...経験豊富なシステム管理者からのガイダンスをいただければ幸いです。

これが私の問題です:/etc/cron.daily/etc/cron.hourlyなどのcronジョブは私のSlicehostUbuntuサーバーで正常に実行されています-それらの実行は/var/log/syslog/var/log/cron.logの両方に記録されています

毎分実行されることになっているcrontabを使用して、rootとしてとadminユーザーとしての2つのテストcronジョブを作成しました。これは、rootとして実行されるcrontab -lの出力です。

$ crontab -l
* * * * * /bin/date > /tmp/unicorns
$ crontab -u neil0 -l
* * * * * /home/neil0/crontab/Unicorn.sh >> /home/neil0/logs/crontab.log >&1

編集1:これを正確にコピーしませんでした...出力に改行がなく、それが問題の原因でした

これがUnicorn.shの内容です

#!/bin/sh
echo 'UNICORNS'

ただし、/home/neil0/logs/crontab.log/tmp/unicornsも更新されておらず、これらのジョブが/var/log/syslogまたは/var/log/cron.logで実行されたという記録はありません。

尋ねる前に、cronが実行されているように見えます-

$ ps aux | grep cron
root      1588  0.0  0.1  18616   980 ?        Ss   12:31   0:00 /usr/sbin/cron
root      1798  0.0  0.1   3944   604 pts/0    R+   13:01   0:00 grep cron

「ユニコーン」が「F ***」の代わりの欲求不満の言葉だと思っていた場合に備えて、ライブWebサイトを使用した特定のデバッグスナフがすっごくわかります。どんな助けでも大歓迎です。

3
Neil Sarkar

うん。ほとんどの人がすでに知っていると思いますが、crontabファイルは改行で終了する必要があります。それが全体の問題でした。これが他の誰かに役立つことを願っています

5
Neil Sarkar

Crontabでは、シェルとは異なり、特殊文字をエスケープする必要があることに注意してください。

0 0 * * * backup_command > /var/log/backup-$(date +**\\**%a).log
0
Oleg Barkov