开始之前先说一句:项目文件和数据一定要记得备份!备份!备份!
背景:服务器是云服务器
项目APP端PC端报异常,无法登录。
一开始以为只是一个小问题。可能哪个服务挂掉了,进服务器重启一下。
坑爹的要来了:服务器无法登录,显示服务器拒绝密码。可以肯定的是账号密码没有错误。当时心里就一紧,可能要出大问题。后来使用VNC登上服务器,ps命令not found,ls、cd、vi、cat等等几乎所有命令都无法使用。系统已经不可使用。
赶紧去找服务器镜像或者快照,这个项目是18年的项目,糟心的是这么多年没有做过一次镜像或磁盘快照。
我先把服务停掉,做了一个磁盘快照,用快照制作一个新云盘,挂载到可以用的系统上,准备拷贝磁盘数据。结果发现项目文件已经找不到了。顿时感觉,哦豁~完蛋!
这个时候已经在考虑重新部署项目了。老项目使用的SVN在测试服务器,准备登测试服务器拉取代码。
更糟心来了,这台测试服务器因为病毒入侵被腾讯封禁了!
时间不等人,
一方面赶紧联系腾讯解除封禁。
第二,尝试恢复磁盘数据(希望渺茫)。
第三,尝试联系以前的工程师,问下还有没有哪里有可能有代码备份(很不好意思打扰人)
1.恢复磁盘数据:
用了testdisk、extundelete、foremost、phtorec分别尝试恢复,都不理想,不是文件损坏,就是恢复出来是空文件。
2.测试服务器解封,发现里面的系统也是被破坏的相当干净,只有cd命令可以用,其他命令也是not found。
3.联系上了之前的工程师,说码云上面可能有代码。(简直就是黑暗中的一盏明灯啊,你相信光吗!)
赶紧登上码云,发现企业账户过期了,我们所有的项目都转移到了另一个仓库,这边已经很久没有关注了。
顿时心情已经无法用言语形容了,屋漏偏逢连夜夜夜夜夜的雨!
我们点进去看,好在仓库还能访问,也能拉取代码。心情又平复一点。
至此,已经确定了需要重新部署项目。唯一值得庆幸的是,数据库并不在这台服务器上!只需要重新部署项目即可。
尾记:
周三晚上一直干到3点半,重新部署完别的先不管,赶紧做一个镜像。项目文件和数据一定要记得备份!最好是云端备份。
导致服务器出现这个情况的原因暂时还没有定位到,测试服务器也是一样的情况,初步怀疑是病毒破坏。