DirectAdmin删除所有Cron Job后旧任务仍被Monibot触发,如何彻底清理不存在的.index_cron.php脚本
DirectAdmin删除所有Cron Job后旧任务仍被Monibot触发,如何彻底清理不存在的.index_cron.php脚本
遇到这种情况别慌,咱们一步步来排查解决,先抓准两个核心问题:一是有没有遗漏的Cron任务残留,二是怎么阻止Monibot继续爬这个无效路径。
第一步:彻底排查所有Cron任务残留
DirectAdmin面板的Cron Job未必是全部,系统层面可能藏着残留任务,你可以通过SSH登录服务器操作:- 先看当前用户的Cron列表:执行
crontab -l,如果有陌生任务就用crontab -e编辑删除 - 检查系统级Cron配置:打开
/etc/crontab文件,再扫一遍/etc/cron.d/目录下的所有文件,确认没有指向.index_cron.php的任务 - 查看DirectAdmin用户专属Cron配置:进入
/usr/local/directadmin/data/users/[你的用户名]/目录,打开cron.conf文件删掉相关任务记录,之后重启Cron服务:- CentOS/RHEL系统:
service crond restart - Debian/Ubuntu系统:
service cron restart
- CentOS/RHEL系统:
- 最后再全局搜索一遍文件:
find /home/[你的用户名]/domains/[你的域名]/ -name ".index_cron.php" -type f,彻底确认这个脚本真的不存在
- 先看当前用户的Cron列表:执行
第二步:拦截Monibot的无效请求
爬虫大概率是缓存了这个URL路径,就算文件不存在它还是会反复爬,咱们可以通过网站根目录的.htaccess文件来阻止它:
方案一:只拦截这个特定路径的Monibot请求RewriteEngine On # 匹配Monibot访问目标路径,返回403禁止访问 RewriteCond %{HTTP_USER_AGENT} ^Monibot [NC] RewriteRule ^2024-2021/Community_Bible_Fellowship_Messages_2022/.index_cron.php - [F,L]方案二:直接屏蔽整个Monibot爬虫
# 标记Monibot为恶意爬虫 SetEnvIfNoCase User-Agent "^Monibot" bad_bot # 拒绝恶意爬虫访问 <RequireAll> Require not env=bad_bot </RequireAll>保存
.htaccess后,爬虫再请求这个路径就会收到403响应,不会再产生404日志,也能避免它反复骚扰。第三步:验证效果
操作完等10-15分钟,再去看网站访问日志,确认有没有Monibot访问该路径的新记录。如果没有就说明问题解决了;如果还有,再回头检查一遍系统Cron有没有遗漏,或者有没有其他脚本在调用这个URL。
备注:内容来源于stack exchange,提问作者mark.four
相关产品推荐
相关产品推荐

