2009-08-27 20 views
0

私はPythonでアルゴリズムを研究していましたが、私はこのファイルを編集するためにVimを使っていました。.nfsファイルを回復するにはどうすればよいですか?

"警告:ファイルを保存することはできません!すべての変更は失われます!ファイルを書き込めません!"というメッセージが表示され、それを開いて保存しました。

これは時々起こるので、私は通常やったことをしました:私はヒット:q!変更を書き込むことなく終了します。害はなく、ファウルはありません。私のファイルを見て、すべてが消えていた!すべて!

私はオフィスの周りで話しました.NFSマウントがいっぱいだったので、何も保存できなかったようです。大量のデータを生成する巨大なスクリプトがあり、一時的にマウントが満杯になった。 NFSマウントはNetAppのものだと思います。現在のディレクトリに2つのファイルが見つかりました。

1つは最後に2日前に保存され、1つは今日でした。私は未知の文字の間に飛び散った、あちこちで、私は私のコードのいくつかを参照してください、このファイルを開くしようとしようとすると

.nfs.xxxxxxxxxxx

:彼らはの形式です。明らかに、これはファイルの状態のバイナリ表現でなければなりません。

このNFSマウントからこのファイルを回復する方法はありますか? Emacsでこのファイルを回復するためのショートカットがある場合、私はvimからEmacsに切り替えるでしょう!

答えて

2

私はファイルを回復する方法を見つけました。私は実際には2つの方法を見つけました。 NetAppのNFSマウント上にあったので、スナップショット機能を使用することができました。あなたがディレクトリにある場合だけ

lsが

を.snapshot行うと、これはあなたのシステム管理者が設定した任意のスナップショットを引き上げます。私たちにとっては、毎時0、毎時1、夜間0、夜間1のバックアップがあります。だから、私たちは2日後に戻ることができ、同じ日に1時間(現在の時間、前の時間)に戻ることができます。

もう1つの方法は、ファイルの名前をこのようなvimスワップファイルに変更することでした。

MV .nfs.xxx my_vim_file.cpp.swp vimのmy_vim_file.cpp.swp

その後

のVimでそれを開こうとすると、あなたがそう言って、スワップファイルを復元したい場合、それはあなたに尋ねるべきそれが戻ってくるはずです!

0

明らかに、NetappはNFSを使用してボリュームをマウントします(たとえば、iSCSIではなく)。一般に、各VMは、Netappファイラ上の一意のボリューム(別名データストア)に格納されます。

# list all volumes, snapshots are taken of volumes 
vol status 
# list the snapshots available for a particular volume 
snap list <vol_name> 
# restore a snapshot, nightly.1 for example 
snap restore <vol_name> nightly.1 

それだ:ボリュームおよびスナップショットを見つける、その後、スナップショットを復元するには、ここではコマンドラインで実行するコマンドです。残っているのは、VMを元の状態に戻し、十分に元の状態に戻ったかどうかを確認することです。そうでない場合、別の「スナップリストア」を行いますが、古いスナップショットを使用します。

管理者がスナップショットを無効にしていないこと(Netappにはデフォルトでスナップショットスケジュールが設定されていること)、Netappにスナップショットのライセンスが与えられていることを前提としています。この手順は、Netappを管理するためのGUIであるNetApp OnCommand System Managerを使用している場合は、さらに簡素化できます。GUIでスナップショットを元に戻すのは簡単です:

Go to Storage > Volumes > click on a volume > click on Snapshot Copies (at the bottom) 
Choose a snapshot and restore 
関連する問題