rm削除したファイルをlsofで復元する

はじめに rmコマンドでうっかり意図しないファイルを削除してしまった、何てことはいくら気をつけていてもよくある事です。私もつい先日、先輩のアカウントを借りて作業をしている時に.ssh/known_hostsを消去しようとして.ssh/configをうっかり消してしまいお詫びの電話をしたばかりです。 そこでふと思ったのですが、rmコマンドで消したファイルを復元する方法はないのでしょうか。 特殊な条件下なら可能? 調べてみたところ特定の条件下であれば復元可能だという事がわかりました。その条件とは消去したファイルを開いているプロセスが存在している事です。そもそもrmはinodeへのリンクを削除しているだけであってinodeそのものを消しているわけではないのです。inodeへの全てのリンクが失われない限りinodeとデータそのものは失くならないので、ファイルを開いているプロセスが存在していればそこから/proc/【プロセスID】/fd/を辿り復元する事が出来ます。 適当なファイルを作成する $... 御覧になる | 御シェアする

僕と先輩と時々lsofコマンド

はじめに サーバ構築中とっさに「80番ポートは開いてる?」と聞かれたとき貴方はそれをどうやって証明しますか。firewallの設定を見せますでしょうか。それともサービスのステータスでしょうか。はたまたログか。方法は幾つか有るかと思います。 先日先輩から上の質問をされた時にあぱぁーあぱぁーしてしまい、lsofコマンドでのやり方を教えてもらったので備忘録を残しておきたいと思います。 lsofコマンドの概要 プロセスが開いているファイルを表示する。そのファイルを開いているプロセスも表示できる。 lsofコマンドの使い方 例えばsshdプロセスが開いているファイルを表示する場合は次のlsofコマンドを入力します。 $... 御覧になる | 御シェアする