Solaris 資料一覧
オープン中に削除したファイルを復元する方法
2007/12/28更新
対応バージョン: 8,9,10
オープン中のファイルを誤って削除してしまった場合、その処理を終了させていなければ復元できる。
例えばtail -fでファイルを監視していてそのファイルを削除してしまった場合、tailを終了させていなければ以下の方法で復元することができる。
tailのPIDを確認する
% ps -ef | grep tail foo 6572 6498 0 22:52:20 pts/1 0:00 tail -f sample
/proc//fdディレクトリに移動する
% cd /proc/6572/fd
プロセスが使用しているファイルディスクリプタの数だけ数字のファイルがあるのでfileコマンドなどでテキストファイルを探す
% ls -l -r--r--r-- 0 foo user 6 12月 28日 22:42 0 c--------- 1 foo tty 24, 1 12月 28日 22:52 1 c--------- 1 foo tty 24, 1 12月 28日 22:52 2 % file * 0: ASCII テキスト 1: 文字型デバイス 特殊ファイル (24/1) 2: 文字型デバイス 特殊ファイル (24/1)
この場合は0のみがテキストファイルなので目的のファイルと断定することができる。複数ある場合はcatやmoreなどで中身を確認して判断する
当該ファイルを任意の場所にコピーする
% cp 0 /var/tmp/foo