序文
私たちは本番サーバー環境にrmコマンドを実行するたびに、常に緊張し、誤って実行誤って削除したため、その後、すべての後に、人々は、マシンでないマシンでも、ハァッ、ハァッ、バグを持って言及しないように、逃げるために準備すること。
あなたが本当にファイルを記録したり、実行し、データベースなど、削除すべきでないファイルを削除する場合は、行うことになって?葬儀、慎重にこの記事を読んでください方法についての情報。
シミュレーションのシナリオ
1、削除
スパイダーの下で誤って削除したサーバーのディレクトリ/ルート/セレン/ MySql.Data.dllファイル:
> RM -f /root/selenium/Spider/MySql.Data.dll
> LL /root/selenium/Spider/MySql.Data.dll
LS:/root/selenium/Spider/MySql.Data.dllにアクセスすることはできません:そのようなファイルまたはディレクトリを
2、回復
(1)現在のプロセスのオープン/root/selenium/Spider/MySql.Data.dllファイルかどうか確認するためにlsofのコマンドを使用:
> lsofを| grepの/root/selenium/Spider/MySql.Data.dll
上記から分かるように、ファイルの現在のステータスが削除済みとして(削除)。
(2)データの回復があるかどうかを確認するには:
/ procの/ 13067 / FD:プロセス・オペレーションのファイルディスクリプタディレクトリ。
86:ファイルディスクリプタ。
>猫の/ proc / 13067 / FD / 86
(3)、I / Oリダイレクションファイルの回復を使用して
>猫の/ proc / 23778 / FD / 86> /root/selenium/Spider/MySql.Data.dll
> LS -l /root/selenium/Spider/MySql.Data.dll
-rw-R - r--の1ルートルート702464 2月10日午前12時03分/root/selenium/Spider/MySql.Data.dll
プログラムを再実行します。
ファイルの回復指示問題ありません。
知りたがります
ファイルを復元するプロセス全体を実証し、シミュレートシナリオの前で、その後、原則とは何か、どのような状況の下で、ファイルが回復可能です。
プロセスPIDを表示するために、LS -l / PROC / 13067:Linuxシステムでは、実行中の各プログラムは、互いに分離ホストプロセスを有しているの/ proc /処理するためにIDを反映するようにする(Linuxの性質上のファイルシステムである)、例えばプロセス情報の13067。
プログラムを実行すると、オペレーティングシステムはファイルに依存するために使用される現在のプロセスに使用可能なメモリの特別な領域を開きます、我々はファイルを削除-f RMを実行すると、オペレーティングシステムは、実際には、ファイルの読み取りや書き込みには、ファイルディスクリプタをリリースする予定単にファイルシステムのファイルのディレクトリのinodeが表示されていない削除しますが、あなたがまだ以前に発行されたファイル記述子を使用してファイルを読み書きできることを、今でも見ることができるプロセスのために開いている、この原理を使用することであるので、我々は、私を使用することができますファイルを回復するために/ Oリダイレクト方法。
概要
あなたが誤ってファイルを削除しない場合は、ファイルを開くプロセスを確認するためにlsofを使用して最初のを心配して、猫の/ proc /プロセスID / FD /ファイルディスクリプタビューリカバリデータを使用して、I / Oリダイレクション道の最後に使用しないでくださいファイルを復元します。