开始之前先说一句:项目文件和数据一定要记得备份备份备份

背景:服务器是云服务器

项目APP端PC端报异常,无法登录。

一开始以为只是一个小问题。可能哪个服务挂掉了,进服务器重启一下。


坑爹的要来了:服务器无法登录,显示服务器拒绝密码。可以肯定的是账号密码没有错误。当时心里就一紧,可能要出大问题。后来使用VNC登上服务器,ps命令not found,ls、cd、vi、cat等等几乎所有命令都无法使用。系统已经不可使用。

记一次项目文件丢失及恢复,最后不得不重新搭建项目_服务器


赶紧去找服务器镜像或者快照,这个项目是18年的项目,糟心的是这么多年没有做过一次镜像或磁盘快照。

我先把服务停掉,做了一个磁盘快照,用快照制作一个新云盘,挂载到可以用的系统上,准备拷贝磁盘数据。结果发现项目文件已经找不到了。顿时感觉,哦豁~完蛋!


这个时候已经在考虑重新部署项目了。老项目使用的SVN在测试服务器,准备登测试服务器拉取代码。

更糟心来了,这台测试服务器因为病毒入侵被腾讯封禁了!

记一次项目文件丢失及恢复,最后不得不重新搭建项目_服务器_02

时间不等人,

一方面赶紧联系腾讯解除封禁。

第二,尝试恢复磁盘数据(希望渺茫)。

第三,尝试联系以前的工程师,问下还有没有哪里有可能有代码备份(很不好意思打扰人)



1.恢复磁盘数据:

用了testdisk、extundelete、foremost、phtorec分别尝试恢复,都不理想,不是文件损坏,就是恢复出来是空文件。

2.测试服务器解封,发现里面的系统也是被破坏的相当干净,只有cd命令可以用,其他命令也是not found。

3.联系上了之前的工程师,说码云上面可能有代码。(简直就是黑暗中的一盏明灯啊,你相信光吗!)



赶紧登上码云,发现企业账户过期了,我们所有的项目都转移到了另一个仓库,这边已经很久没有关注了。

顿时心情已经无法用言语形容了,屋漏偏逢连夜夜夜夜夜的雨!

记一次项目文件丢失及恢复,最后不得不重新搭建项目_部署项目_03

我们点进去看,好在仓库还能访问,也能拉取代码。心情又平复一点。


至此,已经确定了需要重新部署项目。唯一值得庆幸的是,数据库并不在这台服务器上!只需要重新部署项目即可。



尾记:

周三晚上一直干到3点半,重新部署完别的先不管,赶紧做一个镜像。项目文件和数据一定要记得备份!最好是云端备份。

导致服务器出现这个情况的原因暂时还没有定位到,测试服务器也是一样的情况,初步怀疑是病毒破坏。