次のコマンドチェーンは
日付スタンプを使用したping(UNIX)、
UNIX 日付スタンプを人間が読みやすい形式に変換します。
端末ファイルとログファイルに出力されます。
ping -D localhost 2>&1 | sed 's/^\[\([0-9]*\.[0-9]*\)\]\(.*$\)/echo "[`date -d @\1 +"%Y-%m-%d %H:%M:%S"`] \2"/e' | tee -a ping.log
問題は、書かれているように、出力がpingの通常の2秒単位、1行単位の出力とは異なり、ほぼ1分または約50行単位でバッファリングされるように見えることです。
バッファリングの原因とそれを防ぐ方法は何ですか?
答え1
システムで利用可能な場合は、次を使用します。バッファリング解除。簡単なはずです。
unbuffer ping -D localhost 2>&1 | unbuffer sed 's/^\[\([0-9]*\.[0-9]*\)\]\(.*$\)/echo "[`date -d @\1 +"%Y-%m-%d %H:%M:%S"`] \2"/e' | tee -a ping.log