我真的大无语,刚刚情绪都有点崩溃了。今天本来过年没事情做,就准备把服务器上的文件整理一下。然后我想删除某个文件夹下面的文件的时候,不小心执行了 /* 2 秒之后我意识到什么,立刻 command+c 然后就 gg 了,命令行 ls 都看不到文件夹了 显示-bash: /bin/ls: No such file or directory
是在宿主机上执行的,用的 unraid 系统。目前用之前安装的 docker 插件看,主要我存在硬盘里面的文件还在,smb 目前访问不了。也无法访问 unraid webui 了。虚拟机还能运行。但是我不敢关机,怕关了就启动不了了。
现在有什么办法补救? 救救我 救救我 救救我
1
ChrisFreeMan 2022-02-03 14:57:21 +08:00 via iPhone
我之前也是一样,我把这几年上班攒的资料全给删了😓后来我用 brew 安装了 trash 命令,给我一个反悔的机会
|
2
lifeintools 2022-02-03 14:59:51 +08:00
没什么能补救的。。恢复数据 都是专业机构的事。。
|
3
yaoyao1128 2022-02-03 15:03:56 +08:00 via iPhone
拔掉电源 拆下来硬盘 简单的数据自己用软件镜像千万别写入之后用恢复软件碰碰运气 复杂的话 准备好银两 找一个数据恢复公司
|
4
xxb 2022-02-03 15:17:30 +08:00 via iPhone
存在硬盘里的个人资料还在就好办,如果你只是删除了系统文件,放心重启吧,unraid 跑在内存里呢,重启会恢复。
万一不行大不了重装系统。 |
5
yehoshua 2022-02-03 15:21:02 +08:00 via Android
删除应该只是把表删掉,还是能恢复的吧? win 下面有工具,linux 这方面没经验。
|
6
learningman 2022-02-03 16:53:55 +08:00
立刻关机拔硬盘吧
|
7
antipro 2022-02-03 17:22:46 +08:00 via Android
别再写入数据,有一些工具可以恢复文件的。
|
8
Argon 2022-02-03 17:24:34 +08:00 via Android 45
这种情况,也许 node_modules 能救你半条命。
|
9
patx 2022-02-03 17:24:42 +08:00
在另外一个主机论坛也看到相似的帖子……
|
10
patx 2022-02-03 17:28:22 +08:00
|
11
lslqtz 2022-02-03 17:30:45 +08:00
不少文件一般还会在,没那么快,推荐立马断电改只读,然后上数据恢复工具。
数据重要找专业机构 |
12
sutra 2022-02-03 17:44:21 +08:00
/rescue
|
13
monster33 OP @xxb 我记得之前我好像备份过一次 unraid 结果找到之后发现是另外一台机器的 我感觉大概绿要重装系统了 无语。。。
|
14
gengchun 2022-02-03 19:36:41 +08:00
看 OP 这样,数据应该不太重要。主要是装系统装得太慢了。多 rm -fr * 几次应该就熟练了。
|
15
pcbl 2022-02-03 19:38:03 +08:00 via Android 2
曾经硬盘突然挂了,备份的移动硬盘也出问题了,当时觉得天塌了,后面才发现 好像完全没啥影响。。。
|
16
singerll 2022-02-03 19:39:24 +08:00 via Android
两级反转
|
17
MiketsuSmasher 2022-02-03 19:41:19 +08:00 via Android 9
下次在敲 rm 之前三思,还有把 node_modules 改成__AAAnode_modules 放到根目录下面( rm -rf /* 第一个删的就是它)
|
18
neilyoone 2022-02-03 21:17:15 +08:00
基本没有挽救的可能性了~
把能转移出来的文件 备份一下 |
19
leafre 2022-02-03 21:48:42 +08:00
离职必备命令 rm -rf
|
20
reiji 2022-02-03 22:01:22 +08:00 via Android
@MiketsuSmasher 学到了
|
21
M48A1 2022-02-03 22:01:37 +08:00
又不是公司的生产环境慌什么?
|
22
jinliming2 2022-02-04 01:24:06 +08:00 via iPhone
所以……为啥日常要用 root 身份……
|
23
q9OxQgg 2022-02-04 01:46:14 +08:00 via Android 1
@jinliming2 为了少打 sudo 和输一遍密码。真像楼主这样,不用 root 操作,ta 也可能会用 sudo ,然后毫不犹豫地输一遍密码。
|
24
yayiji 2022-02-04 06:05:55 +08:00
没的救,几周前我鬼使神差把 mv 写成 rm 删除了一个重要的文件,此事之后我几乎把所有重要的文件都做了备份,把散落各处的文件移动到网盘中,原处用软连接代替
|
25
abc8678 2022-02-04 08:57:33 +08:00 via Android
最怕输入到一半,终端窗口卡了一下
|
26
leimao 2022-02-04 09:14:52 +08:00
服务器的数据都没有备份的吗?
|
27
des 2022-02-04 09:15:53 +08:00 via iPhone
以后重要的文件多备份吧,电脑一份 nas 一份 网盘一份
|
28
ltkun 2022-02-04 10:31:37 +08:00 via Android
如果在云上应该有机会吧 运营商应该有不同版本的备份哈哈 以后自己服务器也得用版本控制哈
|
30
killva4624 2022-02-04 11:13:27 +08:00 1
执行 rm -rf 没有问题,但 rm -rf 后面千万不要加 ./* , 因为你可能会忘记那个点...
我个人的做法是,使用“足够多的限定路径条件”。 比如要删除当前目录下所有内容,不能在当前目录操作,而是返回到上一层,这样限定路径就从 ./ 变成了 ./some_folder 。 或者是先 mv some_folder some_folder_to_delete ,这样执行 rm -rf some_folder_to_delete 的时候,因为有 to_delete 限制,也不怕输错目录名。 总而言之,就是尽可能的添加路径条件限定。 |
31
documentzhangx66 2022-02-04 11:53:30 +08:00
是个人,都会有概率犯错。
所以这个问题其实不是如何避免不小心运行了 rm -rf ,以及 dd of=/ 之类的。 而是平时一定要做好自动定时备份。 以上只是针对个人数据。而工作数据,本地服务器的磁盘还需要做 raid 。这些麻烦以及钱,是一定要花的。 |
32
wtdd 2022-02-04 12:33:51 +08:00
服务器应该没戏了,如果硬盘在自己手里,且这么做后没有其他动作,那是可以恢复的
|
34
pengtdyd 2022-02-04 13:14:52 +08:00
大号没有了,换小号吧
|
35
tanranran 2022-02-04 13:16:39 +08:00
@MiketsuSmasher 牛 biu
|
36
dblpx 2022-02-04 13:18:03 +08:00
每次看到这样的帖子都是在提醒我是时候备份一次数据了
|
37
BugCry 2022-02-04 13:49:24 +08:00 via Android
我简单喵两句:
unraid 就一内存系统,重新做下启动盘就完事儿了。而且听你描述,数据盘还没有遭到破坏,那就没任何问题 |
38
BugCry 2022-02-04 13:51:23 +08:00 via Android
补充:对于 unraid 这个特例,确实啥事没有,但是以后在 Linux 上面,还是老老实实保留事故现场,千万不能断 ssh
|
40
Sainnhepark 2022-02-04 13:53:55 +08:00 via Android
|
41
sky96111 2022-02-04 14:02:04 +08:00 via Android
@abc8678 所以我的习惯是,要输入删除命令时绝不先输 sudo ,输完以后 ctrl+a 再加上 sudo 。避免命令写一半按到回车,密钥凭证没过期免密码直接执行了
|
42
NotFoundEgg 2022-02-04 18:25:48 +08:00 4
我一般会在根目录和 home 下建一个文件夹 起名!(因为!排在 ASCII 表的前面位置) 然后调一下权限 可以一定程度防误删
mkdir ! && chmod 000 ! |
43
des 2022-02-04 19:22:22 +08:00 via iPhone
@NotFoundEgg chattr +i 也可以
|
44
abc8678 2022-02-04 19:39:44 +08:00 via Android
@sky96111 打开终端窗口,默认出现中文输入法。打开浏览器地址栏,默认出现中文输入法。到了打字的时候,默认英文输入法。……输入法有点乱。有时候按回车,可以把输入一般的英文打出来,省得前功尽弃。结果有些时候,一回车就执行了,打一半的中英混合体被敲进去执行了……
|
45
iqoo 2022-02-04 20:05:45 +08:00
@NotFoundEgg 果然有想法相同的人
|
46
hackk 2022-02-04 22:48:30 +08:00
@NotFoundEgg 想法非常棒,看到后我测试了一下,我在 Centos 7.9 下,根目录和 home 下都创建了 !和 a 文件夹,权限 000 ,root 用户执行 rm -rf /* 和 普通用户 sudo -rf /* 执行,都是从 /boot 文件夹开始删除。既然 rm 没按套路出牌,我就继续测试,把 /boot 000 了,然后 sudo -rf /* 并未被阻断或出现任何提示,不知朋友这个方法是正对于特定操作系统吗?多谢!
|
47
mritd 2022-02-05 02:00:47 +08:00 via iPhone
@MiketsuSmasher #17 10 年老运维告诉你的小技巧
|
48
MintZX 2022-02-05 02:26:18 +08:00
@zhlxsh 你再仔细看一下。。这个跟 node_modules 没关系,只不过 node_modules 作为一个体积庞大+一堆碎文件的文件夹很适合放在你根目录里面作为手误删除跟目录的一个挡箭牌。因为 rm -rf 按照一定顺序排列,所以有一个命名为 ___AAAxxxx 的文件夹在根目录下至少能挡几秒时间让你还有机会 ctrl + C
|
49
msg7086 2022-02-05 03:09:05 +08:00 via Android
真就没人用 zsh 的删除*时自动警告功能呗。
|
50
xuanbg 2022-02-05 08:47:48 +08:00
我从来只打 rm -rf *,不打 rm -rf /*。而且前面先打个 pwd 看看当前路径对不对
|
51
bbis 2022-02-05 15:12:05 +08:00 via iPhone
前一段时间在 QNAP 上修改自己打包的插件,复制了一段代码,里面包含 rm -rf $approot/* ,而$approot 忘记分配变量,不小心在 ssh 上点了鼠标右键,运行了一大段命令,然后就停留在这个命令上,我瞬间脑炸,按了 Ctrl c ,然后发现 QNAP 的登录页面打不开,当时有登录 winscp ,检查了下个人存储目录数据还在,重启后系统自动修复了错误,一身冷汗
|
52
liuliancao 2022-02-06 20:06:19 +08:00
把盘拆下来挂到另一台机器上面 用 testdisk 修复下 如果不行用 extundlete 试试
|