私の本番サーバーではatop
バージョン 1.23、このファイルで作成されたデータ ファイルがあり、そのファイルからプロセスの完全なコマンド ラインを抽出する必要があります。
残念ながら:
- このバージョンでは、
atop
ディスプレイの列80以降のデータは表示されません。 - 水平スクロールは1.27でのみ導入されました。
- 新しいバージョンは、以前のバージョンで作成されたデータファイルの読み取りを拒否します。
- ファイル自体が圧縮されており、単純
strings
検索にはなりません
私のデータファイルからコマンドライン全体を回復する方法はありますか?
答え1
編集する。マニュアルページを確認した後、完全なコマンドラインを得ることができるようです。
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
。
答え2
最新バージョンには対話型コマンドがあります。c
プロセスのコマンドラインとその引数を表示します。
これを行うには、下の図のように上部ログ(たとえば/var/log/atop/atop_20191209
)の位置を見つけて、-r
スイッチを使用して上部に供給します。atop -r /var/log/atop/atop_20191209
次に、を押してt時間を早めます。時間を巻き戻すにはShift+を押しますt。