同事反映网站打不开了,于是登录服务器,几乎不通了,等了好久才登录进系统,执行命令非常卡,发现负载已达十多了,根本没法执行命令做检查,好不容易才执行了reboot命令重启系统。
过了几分钟登录进系统发现负载慢慢开始涨了,执行top命令发现主要是php-fpm进程占用的,检测nginx的log记录,发现有几个IP频繁访问一个url,我就好奇是什么文章这么频繁访问,复制到浏览器打开一看,是一篇好几年前转摘的文章,内容也很少,只是一些网络命令的使用参数参考而已,继续往下拉,发现文章后面一堆的评论,奇怪,我记得wp的设置是关了评论的啊,马上编辑这篇文章,发现这篇文章的评论是开启了的,马上关掉,更新,然后到评论区把全部未审核的评论全部删除掉。。在未审核的评论中还发现有几篇也是几年前的文章也开启了评论,都被机器人在自动发评论了,马上全部编辑关掉评论,top检查发现服务器负载马上就降下来了。。
登录数据库后台,发现还有些早期的文章的评论没有关闭的(表:wp_posts,字段:comment_status),于是,手动登录数据库:
[email protected]:~# mysql -u 数据库 -p
mysql> use 数据库;
mysql> UPDATE wp_posts SET comment_status=’close’;
mysql> quit
这样就批量的把所有已开了评论的文章都关掉了!
当然你若要保持评论开启又要防垃圾评论,你可以安装相应的插件解决,本文只是记录批量关闭已开了评论的mysql命令而已。