私の本番サーバーには atop
バージョン1.23があり、プロセスの完全なコマンドラインを抽出する必要があるデータファイルがあります。
残念ながら:
atop
は、ディスプレイの80列目以降のデータを表示しませんstrings
検索は機能しませんデータファイルから完全なコマンドラインを回復する方法はありますか?
編集。 manページを確認すると、次のコマンドラインで完全なコマンドラインを取得できるようです。
atop -r /var/log/atop.log -P PRG
圧縮ファイルからデータを抽出するためのいくつかの一般的なアプローチ:
次の方法で、上部のログファイルからデータを抽出できます。
xxd -p < /var/log/atop.log |
fold -w4 |
awk -v cmd='xxd -r -p | zlib-flate -uncompress | strings' '
/789c/{if (x) close(cmd); x=1}; x {print | cmd}' |
grep your-command
Zlibヘッダー(789c
で始まる)を検出し、それをzlib-flate -uncompress
に渡すというアイデアです。防弾が保証されておらず、それを行うための最も効率的な方法ではありませんが、私にとってはトリックを行います。
zlip-flate -uncompress
( qpdf の一部)の代替には、openssl zlib -d
とpigz -zd
が含まれます。
新しいバージョンでは、インタラクティブコマンド-c
があり、プロセスのコマンドラインとその引数を表示します。
これを行うには、トップログの場所(例:/var/log/atop/atop_20191209
)を見つけ、次のように-r
スイッチを使用してトップに提供します。atop -r /var/log/atop/atop_20191209
次にを押します。 t 時間を進めるために。時間を巻き戻すには、を押すことができます Shift+t。