2017-10-27 19 views
1

で手動で実行すると、コマンドがOKである私は私のcrontabに次のエントリを持っている:cronジョブは実行されませんが、シェル

0,30 7-18 * * 1-5 cd /path/to/scrapers && scrapy crawl funny_quotes &>> $(date "+/home/foobar/logs/\%Y\%m\%d.funny.log" 

このエントリは平日、半時間ごとに実行し、出力を追加することになっていますそれが実行されるたびにログファイルに書き込まれます。私はthis handy toolを使って構文をオンラインでテストしたが、構文は正しい。

ただし、ジョブは実行されません。さらに悪いことに、ログファイルは作成されます(しかし、内容はありません - ファイルサイズ0)ので、私は診断情報を持っていません。

コマンドcd /path/to/scrapers && scrapy crawl funny_quotesは、コマンドで入力すると完全に実行され、コンソールにはscrapyから大量の情報が出力されます。

なぜcronジョブが正常に実行されず、なぜログファイルに何もパイプされないのですか?

+0

"funny_quotes"ファイルが/ path/to/scrapersにあると仮定します。その場合、これを試してみましたか? '/ home/foobar/logs/\%Y \%m \%d.funny.log" ' – mathB

+0

'&>> 'はバッシュ4です。あなたのcronジョブがBash 4で動作しているのかどうか疑問に思っています。昔ながらの '2 >> path 1>&2'を試してみてください。 – janos

答えて

0

は、あなたのcronのログ

grep CRON /var/log/syslog 

私はあなたが同様のscrapy - command not foundか何かのようなエラーに何かを取得していると確信して

を確認してください。

この

は、シェルからecho $PATHの出力を入力し、コピーしない、それを修正します。その後、

そして、ファイルの最上部にcrontab -e

を開くPATH=YOUR_COPIED_CONTENTS

を書いて、それが動作するはずです。

関連する問題