iptablesを使用してファイルを変更し、接続に関する情報を保存し/etc/syslog.conf
ました/var/log/iptables.log
。
したがって、X時間ごとにログファイルから情報を抽出する必要があります。しかし、問題はファイルが大きくなり、検索が遅くなることです。だから私は以下を使用しました。
sed -i '/string/d' iptables.log
もはや不要なものを取り除くために。ただし、このコマンドを使用すると、iptablesはiptables.log
ファイルへのデータの保存を停止します。
それでは、何が間違っていますか?この問題をどのように解決できますか?
ベストアンサー1
たぶん試してみてください
cat iptables.log | sed -n "/PatternYouLookat/ p"
これにより、sed中にファイルをロックしません。
大容量ファイルの場合、sed パフォーマンスが低いため、ファイルを最初に greping するか、マーカー/インデックスを維持してこのファイルから尾部分を削除し、ファイルの尾部分のみを処理できるようにします (一時コピーがあってもスループットが多い場合) 。
sed -u を使用してストリームを操作し、大容量ファイルの一部のバッファの問題を回避できます