インターウェブで見つけたすべてを試していなかったら、ここに投稿することはありませんでした...経験豊富なシステム管理者からのガイダンスをいただければ幸いです。
これが私の問題です:/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サイトを使用した特定のデバッグスナフがすっごくわかります。どんな助けでも大歓迎です。
うん。ほとんどの人がすでに知っていると思いますが、crontabファイルは改行で終了する必要があります。それが全体の問題でした。これが他の誰かに役立つことを願っています
Crontabでは、シェルとは異なり、特殊文字をエスケープする必要があることに注意してください。
0 0 * * * backup_command > /var/log/backup-$(date +**\\**%a).log