(コンテキスト:Perl CGIスクリプトから長時間実行されるプロセスを監視しようとしています。MSSQLデータベースをバックアップしてから7-zipします。これまでのところ、バックアップ部分(を使用WITH STATS=1
)はファイルに出力します。数秒ごとに更新して、ブラウザに確認してもらうと、機能します。)
7zipのコマンドラインユーティリティを使用しようとしていますが、プログレスバーをファイルにキャプチャします。残念ながら、SQLバックアップとは異なり、別のパーセントが実行されるたびに別の行が出力されますが、7zipは新しい進行状況データを出力する前に出力を巻き戻すため、コマンドラインで通常使用している場合は見栄えが良くなります。これが残念な理由は、、を使用した通常のリダイレクト>
で1>
、2>
空白のファイルのみが作成され、ジョブが完了するまで出力がないを除いて、出力が表示されないためです>
。これは、プログレスバーにはあまり役立ちません。 。
コマンドライントリック(Perlなし)を使用するか、Perlを使用して、%のすべての変更をログファイルに追加する(つまり、既存のログファイル監視方法を使用できる)ことで、この種の出力をキャプチャするにはどうすればよいですか?呼び出した直後にそれをキャプチャするコードsystem()
?