Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxについて >> lsofコマンドを使用したLinuxの誤った復元手順

lsofコマンドを使用したLinuxの誤った復元手順

  

Linuxシステムでのlsofコマンドの誤った使用法はたくさんありますが、その中の1つ、特にログファイルの誤った復元は、すべての人を紹介します。 Linuxはlsofコマンドを使用して失われたファイルを回復します。

前提条件:ファイルを削除した後、プロセスは、まだ回復のためのログファイルタイプのため、より適切でアクセス可能です。

Linuxコンピュータが危険にさらされた場合、攻撃者の証跡を隠すためにログファイルを削除するのが一般的です。管理エラーは、古いログのクリーンアップ中にデータベースのアクティブなトランザクションログを誤って削除するなど、重要なファイルを誤って削除することもあります。時々これらのファイルはlsofによって回復することができます。

プロセスがファイルを開くとき、そのファイルが削除されていても、そのプロセスがファイルを開いたままにしている限り、そのファイルはディスク上に存在します。これは、ファイルが削除されたことをプロセスが認識していないことを意味します。ファイルを開いたときに、ファイルに提供されているファイル記述子に対して読み書きを行うことができます。このプロセスを除いて、このファイルは対応するディレクトリインデックスノードが削除されているため見えません。

/procディレクトリには、カーネルとプロセスツリーを反映したさまざまなファイルが含まれています。 /procディレクトリはメモリにマップされる領域をマウントするので、これらのファイルとディレクトリはディスク上に存在しません。そのため、これらのファイルを読み書きするとき、実際にはメモリから取得されます。関連情報lsof関連情報のほとんどは、プロセスのPIDにちなんで名付けられたディレクトリに格納されています。つまり、/proc /1234には、PIDが1234のプロセスに関する情報が含まれています。各プロセスディレクトリには、アプリケーションがプロセスのメモリ空間、ファイル記述子リスト、ディスク上のファイルへのシンボリックリンク、およびその他のシステム情報を簡単に理解できるようにするためのさまざまなファイルがあります。 lsofプログラムは、この情報とカーネルの内部状態に関するその他の情報を使用して、その出力を生成します。そのため、lsofはプロセスのファイルディスクリプタや関連するファイル名などの情報を表示できます。つまり、プロセスのファイル記述子にアクセスすることによって、ファイルに関する情報を見つけることができます。システム内のファイルが誤って削除された場合、そのファイルにアクセスしているプロセスがシステム内に残っている限り、lsofを介して/procディレクトリからファイルの内容を復元できます。

/var /log /messagesファイルが誤操作により削除された場合、/var /log /messagesファイルを復元する方法は次のとおりです。まずlsofを使用して、現在開いているプロセスがあるかどうかを確認します。 var /logmessagesファイルは次のとおりです。

#lsof | Grep /var /log /messages

コマンドPIDユーザーFDタイプデバイスサイズ/オフノード名

syslogd 14572 root 1w REG 253,0 5584 1737237 /var /log /messages

#rm - f /var /log /messages

#lsof | Grep /var /log /messages

コマンドPIDユーザーFDタイプデバイスサイズ/オフノード名

syslogd 14572 root 1w REG 253,0 5584 1737237 /var /log /messages(削除済み)< Br>

上記の情報から、PID 14572(syslogd)オープンファイルのファイルディスクリプタは1であることがわかります。また、/var /log /messagesが削除対象としてマークされていることもわかります。そのため、/proc /14572 /fd /1内の対応する情報を見ることができます(fdの下の各デジタル名のファイルは、プロセスに対応するファイル記述子を示します)。

#tail -n 10 /proc /14572 /fd /1

2月4日20時02分25秒host191カーネル:klogd 1.4.1、ログソース= /proc /kmsgが開始されました。

2月4日20時02分: 45 host191 root:aaa

2月4日20:05:07 host191 dhclient:eth0から192.168.0.254へのDHCPREQUESTポート67

Feb 4 20:05:07 host191 dhclient:192.168からのDHCPACK。 0.254

Feb 4 20:05:07 host191 dhclient:192.168.0.191にバインド - 718秒で更新

Feb 4 20:15:50 host191 syslogd 1.4.1:再起動。

Feb 4 20:15:50 host191カーネル:klogd 1.4.1、ログソース= /proc /kmsgが開始されました。

Feb 4 20:17:05 host191 dhclient:eth0からDHCPREQUEST 192.168.0.254 port 67

2月4日20時17分05秒host191 dhclient:DHCPACK from 192.168.0.254

2月4日20:17:05 host191 dhclient:192.168.0.19にバインド1 - 804秒で更新#cat /proc /14572 /fd /1》 /var /log /messages
前のページ次のページ合計3ページzh-CN"],null,[1],zh-TW"]]]

Copyright © Windowsの知識 All Rights Reserved