我怎样才能恢复.nfs文件?

时间:2009-08-27 18:49:29

标签: nfs file-recovery

我一直在研究Python中的算法,我正在使用Vim来编辑这个文件。我打开它,做了一次保存,它偶然发现了一个错误:

“警告:您的文件无法保存!所有更改都将丢失!无法写入文件!”

偶尔会发生这种情况,我做了我通常做的事情,然后点击:q!退出而不写任何更改。没有伤害,没有犯规。当我查看我的文件时,一切都被删除了!所有的一切!

我在办公室里谈过,似乎nfs挂载已经满了,所以这就是为什么我无法保存任何东西。有一个巨大的脚本产生了大量的数据,导致挂载暂时满。我相信NFS挂载来自NetApp。我在当前目录中找到了2个文件。

其中一个是两天前保存的,一个是今天。它们的格式为:

.nfs.xxxxxxxxxxx

当我尝试打开这个文件时,我看到我的一些代码,在这里和那里,溅在未知的字符之间。显然,这必须是文件状态的二进制表示。

有没有办法从这个NFS挂载恢复这个文件?如果有一个快捷方式在Emacs中恢复此文件,我将从vim切换到Emacs!

2 个答案:

答案 0 :(得分:2)

所以,我确实找到了恢复文件的方法。事实上,我找到了两种方法。由于它是在NetApp NFS安装上,我能够使用快照功能。当你在目录中时,只需

ls .snapshot

这将提取系统管理员设置的所有快照。对我们来说,我们有一个每小时0,每小时1,夜间0和夜间1备份。所以,我们可以回去两天,在同一天,我们可以回去一小时(当前小时和前一小时)。

另一种方法是将文件重命名为这样的vim交换文件。

mv .nfs.xxx my_vim_file.cpp.swp vim my_vim_file.cpp.swp

然后尝试在Vim中打开它,它应该问你是否要恢复交换文件,说是,它应该回来了!

答案 1 :(得分: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,看看你是否已经恢复得足够远。如果没有,那就做另一个&#34;快速恢复&#34;但有一个较旧的快照。

请注意,此过程假设您的管理员未禁用快照(Netapp默认情况下具有快照计划),并且Netapp已获得snaprestore许可(使用&#34; license&#34;命令进行验证)。如果您拥有Netapp OnCommand System Manager(用于管理Netapp的GUI),则可以进一步简化此过程。在GUI中恢复快照很简单:

Go to Storage > Volumes > click on a volume > click on Snapshot Copies (at the bottom)
Choose a snapshot and restore