で手動で実行すると、コマンドが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ジョブが正常に実行されず、なぜログファイルに何もパイプされないのですか?
"funny_quotes"ファイルが/ path/to/scrapersにあると仮定します。その場合、これを試してみましたか? '/ home/foobar/logs/\%Y \%m \%d.funny.log" ' – mathB
'&>> 'はバッシュ4です。あなたのcronジョブがBash 4で動作しているのかどうか疑問に思っています。昔ながらの '2 >> path 1>&2'を試してみてください。 – janos