我正在编写一个 Bash 脚本来自动删除某些内容。我使用了以下代码rm -rf $路径/*
我不小心运行了脚本而没有传递路径变量,并且由于路径变量为空,因此执行的命令是rm-射频/* 使用 sudo,现在我的服务器上的所有内容都已删除,该服务器托管了 150 多个网站,我有 1 周前的备份。Linux 如此庞大,它必须针对这种情况采取一些解决方法。
答案1
这没有捷径可走。Linux 之所以如此强大,是因为它允许你做任何事情,包括删除所有内容之类的愚蠢事情。
您很幸运,因为您有备份。下一个任务是安装一台新服务器并从备份中恢复数据。虽然可以使用数据恢复软件尝试恢复一些数据,但备份中的数据的完整性要好得多。但是,如果您无论如何都需要旧安装中的一些数据,则不应重复使用同一个磁盘,而应购买一个新磁盘。
这会影响您的业务,因此与客户进行明智的沟通至关重要。不要试图掩盖任何事情。诚实地说,由于人为错误,系统会有一些停机时间,并告诉他们不必担心,因为您有备份。当然,如果备份是昨晚的,那就更好了。事故发生后,您可以修改备份计划。
此外,在编写脚本时,在将变量传递给 之前,请务必验证变量rm -rf
。还可能存在导致$path
相同结果的其他错误,例如rm -rf /some/directory /*
,如果变量有尾随空格。
答案2
如果您没有进行进一步的操作,则很有可能使用 testdisc/photorec 恢复大量数据,但这并不好玩。确保不要弄乱你删除文件的硬盘,因为任何时候你在磁盘上写入任何内容,你的旧数据都会被覆盖。rm 命令通常只是删除文件在驱动器上的位置信息,就像删除书的目录而不改变页面一样。因此,您以前的文件现在为系统提供了可用空间。
因此,请单独安装它以进行恢复,并且不要在上面写东西。您可以通过以下方式恢复大量文件photorec/测试盘。不要被 photorec 这个名字搞糊涂了,它实际上可以恢复一大堆文件类型,而不仅仅是照片。但在许多情况下,只有数据被恢复,文件名丢失。所以你必须有创造力。
您可以看到一些示例这里。