误删服务器/tmp下的文件之后引发的问题

本文记录了一次由于误删服务器/tmp目录引发的服务器故障,包括GitLab卸载导致的MySQL停止,以及`showDoc`和MySQL服务无法正常运行的问题。通过查看错误日志,重新创建必要文件并调整权限,最终成功恢复了服务。总结提醒:删除操作需谨慎,尤其是服务器上的关键目录。
摘要由CSDN通过智能技术生成

事件起因


收到阿里云的报告说我的服务器中有挖矿程序,隐藏在/tmp目录下。查看服务器的CPU使用情况,也飙升到了90%以上,于是,我杀掉了一些不相关的进程,顺手执行了 `rm -rf /tmp` 命令。后来把自己安装的gitlab社区版卸载了,卸载过程中自动停掉了mysql。紧接着通过宝塔面板,我的`showDoc`、`mysql`全部不好使了。

`showDoc`不好使是因为它是基于 php7.3部署的,我删掉了`tmp`目录下的`php-cgi-73.sock`文件。`mysql`不好使是因为我后来手动创建的`/tmp`目录没有写入权限。

解决方案

* 先将删除的/tmp目录,授予读写权限

* 找到出问题引用的错误日志,根据日志定位问题

比如我的`showDoc`是通过nginx部署的,那我只用找到错误日志,看是啥原因访问不了。 日志中显示`2021/12/10 17:37:41 [crit] 15987#0: *9509 connect() to unix:/tmp/php-cgi-73.sock failed (2: No such file or directory)`  是说临时目录下找不到php-cgi-73.sock文件,那我先将这个文件创建出来,并开放读写权限。

再访问时,又是`502 Bad Gateway`,再看nginx的错误日志,提示`[error] 22205#0: *1 connect() to unix:/tmp/php-cgi-73.sock failed (111: Connection refused)`,这种情况是因为文件创建出来了,权限也给了,但是php并没有加载到,只用重启php服务即可。

mysql是因为在卸载gitlab时被停掉了,通过`/etc/init.d/mysqld  status`命令查看状态,提示`MySQL is not running, but lock file (/var/lock/subsys/mysql[FAILED]`,执行` rm /var/lock/subsys/mysql `删除lock文件;执行`/etc/init.d/mysqld  start` 启动mysql服务,又报错`Starting MySQL..The server quit without updating PID file ([FAILED]ver/data/iZ8vb53kklhrg4j6sviqtpZ.pid).`,找到mysql的日志目录(如果不知道日志目录在哪,就去`/etc/my.cf`文件中查看),日志目录下能看到一个名为`iZ8vb53kklhrg4j6sviqtpZ.err`的错误日志文件,查看内容,找到最近操作时的日志,就基本上知道啥原因了,我是因为`tmp`目录没写入权限,开了权限后,执行`/etc/init.d/mysqld  start`启动即可。

# 总结
删除需谨慎,幸亏这是自己的服务器,如果是公司的服务器,就是一次事故
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值