2

ビデオスライドショープログラムであるDiascopeというプログラムを使用するスクリプトを作成しました。

encodeVideo.shでこのコマンドを実行しようとしています

echo "Running diascope -clean /mnt/videos/video$1.txt..."
diascope -clean /mnt/videos/video$1.txt > /var/www/html/video/encodeVideo.log
echo "Removing old deploy dir, and making new one..."

そして、インスタンスを起動するたびに実行されるように、rc.localからこのスクリプトを実行しています。

必要なのは、「diascope」コマンドの出力を取得することだけです。rc.localでencodeVideoを実行します。

/bin/bash /var/www/html/video/encodeVideo.sh > /var/www/html/video/newlog

そしてnewlogで私はこれを見ることができます

Running diascope -clean /mnt/videos/video7.txt...
Removing old deploy dir, and making new one...

そして/var/www/html/video/encodeVideo.logは完全に空です!Diascopeはgawkを使用しますが、encodeVideo.shスクリプトを手動で実行すると、処理の出力を確認できます。このログに記録できないのはなぜですか?

標準出力ではない可能性があるので、「>」は実際にはそれをキャプチャしませんか?

どんなアイデアでも役に立ちます、ありがとう!

4

2 に答える 2

2

stderrstdoutをファイル名にリダイレクトしてみてください

diascope -clean /mnt/videos/video$1.txt 1> /var/www/html/video/encodeVideo.log  2>&1
于 2012-04-05T01:45:31.893 に答える
2

標準出力ではない可能性があるので、">" は実際にそれをキャプチャしませんか?

絶対に: 標準エラーの可能性があります。その場合は、2>代わりにを使用する必要があり>ます。

于 2012-04-05T01:45:56.760 に答える