代码之家  ›  专栏  ›  技术社区  ›  Huckphin

如何恢复nfs文件?

  •  0
  • Huckphin  · 技术社区  · 15 年前

    我一直在用Python编写一个算法,并使用Vim编辑这个文件。我打开它,做了一个保存,结果它出现了一个错误,就像它偶尔出现的那样:

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

    当这种情况偶尔发生时,我做了我通常做的事情,然后我按:q!不写任何改动就退出。没有伤害,没有犯规。当我看我的档案时,一切都被抹去了!一切!

    我在办公室里聊了聊,发现nfs挂载已经满了,所以我不能保存任何东西。有一个巨大的脚本生成了大量的数据,这导致装载暂时满了。我相信NFS挂载来自NetApp。我在当前目录中找到了2个文件。

    .nfs.xxxxxxxxxx

    当我试图打开这个文件时,我看到我的一些代码,到处都是,散落在未知字符中。显然,这必须是文件状态的二进制表示。

    是否有任何方法可以从此NFS装载中恢复此文件?如果在EMAC中有一个恢复此文件的快捷方式,我将从vim切换到EMAC!

    2 回复  |  直到 15 年前
        1
  •  2
  •   Huckphin    15 年前

    所以,我确实找到了恢复文件的方法。事实上,我找到了两种方法。因为它在NetApp NFS装载上,所以我能够使用快照功能。当你在一个目录里的时候

    ls.快照

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

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

    维姆我的维姆_文件.cpp.swp

    然后尝试在Vim中打开它,它会询问您是否要恢复交换文件,回答yes,它应该会回来!

        2
  •  0
  •   n2studio    11 年前

    显然,您的Netapp使用NFS装载其卷(例如,与iSCSI相反)。通常,每个虚拟机都存储在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
    

    请注意,此过程假定管理员没有禁用快照(Netapp默认有快照计划),并且Netapp已获得snaprestore的许可(使用“license”命令进行验证)。如果您有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