linux 系统 /bin文件误删恢复

拿到了新linux服务器,开心地操作linx,行云流水地搭建了nginx前端代理服务,并在nginx服务中部署前端应用。心里开始有点膨胀,于是就乐极生悲,有了这个蛋疼的操作,将linx系统根目录下的bin文件夹中的内容全部给删除了,(当时脑子短路了有一分多钟,心里直冒冷汗)。

误操作过程: 部署前端应用的流程是,先将nginx应用根目录下html文件夹中已经部署的旧版本删除,在删除前端项目时,因为有历史操作,所有没有仔细看文件夹路径,直接ctrl-A删除了当下目录中的所有文件。(前端应用是angular2项目,build出来的项目,所有有文件都是同一级目录,文件有点多,且每个文件名都是随机生成的)。

使用xftp,需要先将html文件夹中的内容全部删除,因为已经操作过这个步骤,所以想当然的以为打开xftp会默认打开html文件夹。于是在操作过程中,直接将xftp默认打开的文件夹下的所有文件给删除了(默认在bin目录)。删除那一瞬间感觉删除文件不对,查看目录路径,果然错了。
当时所有文件都已经删除了,ctrl+c已经迟了。。。

⚠️注意:当时我正在使用xftp操作linux,且一直没有关闭,这个为以下操作的前提。也做个提示,如果有类似的误删操作系统的文件,千万不要将已经连接的ssh,或者xftp连接给关闭了,如果关闭了,就很有可能再也不能远程连接了。

1. /bin目录下文件介绍

先了解了一下bin目录下文件内容的作用:bin文件夹下的内容文件为常用的shell命令,在下面的截图中可以看到:cat,chmod,cp,login... 等常用命令。看到login也在里面,感觉有点不妙,会不会是这台服务器已经不能再远程登录了?黑人脸问号.png。

linux 系统 /bin文件误删恢复_第1张图片
修改权限

使用ssh测试远程连接,果然连接不上了。于是网上搜索补救措施,看了好多网上教程,好多都是使用ssh连接(在没有关闭ssh连接的前提下操作),远程恢复的。网络上的恢复教程大致是:从其他的相同的linux操作系统中复制一份bin文件到已经删除的linux系统中。但远程ssh登录不了,复制不了文件到这个linux系统中。但是想到有xftp还没有关闭连接,于是就打算采用这个xftp恢复bin目录。

2.注意:如果已经正在远程连接,不要关远程连接,例如:ssh连接,xftp连接

3.在相同配置的linux系统复制一份bin文件

使用虚拟机软件,创建一台相同liunx版本的系统,再将系统中bin文件夹中的内容复制一份。并使用xftp将bin文件内容复制到删除的目录中。

重新测试ssh远程登录连接系统,结果还是不行。继续思考为什么会不行。想到会不会是文件权限引起的问题,还好xftp可以查看文件权限,果然有这个问题,xftp复制进系统的文件权限只有只读权限,可bin目录下的文件都是需要执行权限的啊。还好xftp可以修改文件权限,于是有了以下的修改权限的截图。绿色的文件代表可以执行,也就说先将以下的的文件中比较重要的文件(绿色的文件,修改权限前文件为灰色)权限改为755。然后再ssh远程登录系统,果然ok,可以登录且可以操作系统。接下来将bin文件夹中的所有文件权限改为 755,恢复完成。

4. 修改权限

linux 系统 /bin文件误删恢复_第2张图片
修改权限

5.总结

  1. 不要随便使用root权限!不要随便使用root权限!不要随便使用root权限!重要的事情说三遍。于是新建了一个用户,专门用部署前端应用,限制权限,够用的操作权限。
  2. 当错误已经发生时,不要慌,不要想着逃避,而是思考如何补救,如何将这个错误的影响降到最低,并记录下错误,反思为什么会有这种情况发生,如何防止这种错误。
  3. 任何事情不要想当然,不要以为你以为的就是你以为的(我以为xftp会打开历史操作的html目录,事实上并没有,打脸)。

6. 传送门(恢复过程中参考文章)

1.一次心惊肉跳的服务器误删文件的恢复过程

  1. 记录一次剁手的"sudo rm -rf /bin"(误删linux /bin目录)

你可能感兴趣的:(linux 系统 /bin文件误删恢复)