cron
によって制御されるbashスクリプトを毎日実行しています。python
(Django)の出力からいくつかの行をgrepしたい私のスラックチャンネルにはslackteeがあります。しかし、私は自分のプリントではなく、スクリプトからいくつかの警告を捕まえているだけです(std :: outとstd :: errと関係があるもの)?しかし、私はそれをデバッグすることができないようです。Cronned Djangoコマンドの出力がbashスクリプトのteeに掲載されていません
#!/bin/bash
printf "\nStarting the products update command\n"
DATE=`date +%Y-%m-%d`
source mypath/bin/activate
cd some/path/_production/_server
./manage.py nn_products_update > logs/product_updates.log
tail --lines=1000 logs/product_updates.log | grep INFO | grep $DATE
だから、毎日のために、私はこれらのようなメッセージをgrepしようとしています:
[INFO][NEURAL_RECO_UPDATE][2017-08-28 22:15:04] Products update...
をしかし、それはティーチャネルで印刷されません。さらに、ファイルは毎日上書きされ、追加されません。どうすればそれを変更できますか? tail
コマンドはシェルで単独で実行したときに正常に動作します。どのように可能ですか? (申し訳ありませんが2つ、私は彼らが何らかの関連性があると信じて、ちょうど答えが見つかりません)
これはちょうどcron
のエントリです。
20 20 * * * /bin/bash /path/to/server/_production/bin/runReco.sh 2>&1 | slacktee.sh -c 'my_watch'
感謝
EDIT:
出力使うgrep -e INFO -e $DATE
grep: [INFO][NEURAL_RECO_UPDATE][2017-08-29: No such file or directory
grep: 07:36:56]: No such file or directory
grep: No: No such file or directory
grep: new: No such file or directory
grep: active: No such file or directory
grep: products: No such file or directory
grep: to: No such file or directory
grep: calculate.: No such file or directory
grep: Terminating...: No such file or directory
こんにちは:したがってテールラインを壊す
!答えをありがとう。それは作品のようなものですが、TMPFILEとgrep -eを使用すると、上の質問で編集したようなものが印刷されます。ほとんどの場合、問題は '>' vs '>>'にあり、今は動作しますが、 'DATE'によるgrepは機能しません。その中に' INFO'を含むファイル全体が表示されます。 :( –
: 'grep -e INFO -e $ DATE logs/product_updates.log'は正しい出力を生成しますか?' $ TMPFILE'の出力にgrepの '-line-buffered'オプションが必要になるでしょう – fcbsd
単純に '' 'で修正されました。これは今すぐうまくいきます!ありがとう! –