最近一段时间通过宝塔面板查看到服务器资源占用率居高不下。不管是负载、CPU、内存,占用率都是吓人。虽然是海外的服务器,但是最开始也没有这么吓人。

宝塔显示服务器 内存 CPU占用率高

最开始以为是用了Fail2ban服务才导致的,因为我的服务器配置是乞丐版的,误认为是Fail2ban太占用系统资源,所以将它关闭了。但是还是建议,如果服务器配置不高,建议还是不要开启Fail2ban,或者不要太多的配置监狱。

后台通过最对大鸟兄的宝塔插件服务。在大鸟兄的指点下,通过查看进程,发现有一个进程居然CPU占用率高达50%以上

最后找到了,居然是在计划任务里面。这个是我定时扫描出恶意IP并屏蔽的代码。每3分钟扫描一次日志文件,然后找出超出阈值的IP并屏蔽掉。

我将代码也贴出来

#!/bin/bash

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin

export PATH

#/bin/bash

#日志文件,你需要改成你自己的路径

logfile=/www/wwwlogs/

last_minutes=1

#开始时间1分钟之前(这里可以修改,如果要几分钟之内攻击次数多少次,这里可以自定义)

start_time= date +"%Y-%m-%d %H:%M:%S" -d '-1 minutes'

echo $start_time

#结束时间现在

stop_time=`date +"%Y-%m-%d %H:%M:%S"`

echo $stop_time

cur_date="`date +%Y-%m-%d`"

echo $cur_date

#过滤出单位之间内的日志并统计最高ip数,请替换为你的日志路径

tac $logfile/www.sansways.com.log | awk -v st="$start_time" -v et="$stop_time" '{t=substr($2,RSTART+14,21);if(t>=st && t<=et) {print $0}}' | awk '{print $1}' | sort | uniq -c | sort -nr > $logfile/log_ip_top10

ip_top=`cat $logfile/log_ip_top10 | head -1 | awk '{print $1}'`

ip=`cat $logfile/log_ip_top10 | awk '{if($1>2)print $2}'`

# 单位时间[1分钟]内单ip访问次数超过2次的ip记录入black.txt,这里大鸟为了测试设置了2,你需要改成其它的数字

for line in $ip

do

echo $line >> $logfile/black.txt

echo $line

# 这里还可以执行CF的API来提交数据到CF防火墙

done

# 填Cloudflare Email邮箱

CFEMAIL="sansway@163.com"

# 填Cloudflare API key

CFAPIKEY="6f0910f2e5a325bf8283a10f901137a476b03"

# 填Cloudflare Zones ID 域名对应的ID

ZONESID="56446779b03d35bc0101563670129658"

# /www/wwwlogs/black.txt存放恶意攻击的IP列表

# IP一行一个。

IPADDR=$(

# 循环提交 IPs 到 Cloudflare 防火墙黑名单

# 模式(mode)有 block, challenge, whitelist, js_challenge

for IPADDR in ${IPADDR[@]}; do

echo $IPADDR

curl -s -X POST "https://api.cloudflare.com/client/v4/zones/$ZONESID/firewall/access_rules/rules" \

-H "X-Auth-Email: $CFEMAIL" \

-H "X-Auth-Key: $CFAPIKEY" \

-H "Content-Type: application/json" \

--data '{"mode":"block","configuration":{"target":"ip","value":"'$IPADDR'"},"notes":"CC Attatch"}'

done

# 删除 IPs 文件收拾干净

rm -rf /www/wwwlogs/black.txt

echo "----------------------------------------------------------------------------"

endDate=`date +"%Y-%m-%d %H:%M:%S"`

echo "★[$endDate] Successful"

echo "----------------------------------------------------------------------------"

以后请大家不要随便添加计划任务,特别是这种每隔几分钟就需要执行的代码。

我现在的计划任务只有每周定时备份数据库和网站程序。

看看我现在的服务器资源占用率

宝塔面板 后台监控

看起来感觉很有成就感,很舒服!

宝塔添加计划任务linux,请不要再宝塔面板计划任务里面随意添加任务相关推荐

  1. 微信拉群服务器忙请稍后再试,微信群拉人出现“未能添加新成员,请稍后再试”是什么原因?...

    很多做微信营销的朋友,当然少不了创建微信群,通过微信群做营销.在我们利用微信群做营销的过程中,经常会遇到一些问题,其中我们就是微信群拉人进入的时候就有一种情况,那就是出现"未能添加新成员,请 ...

  2. linux 添加spi 驱动,Linux下SPI和IIC驱动免在设备树上添加设备信息的编写方法

    编写驱动时,一般需要往设备树上添加节点信息,这里提供一种直接在驱动中添加设备信息的方法. i2c的驱动模板如下 #include #include #define SENSOR_BUS_NUM 0 # ...

  3. linux服务器关机后计划任务还能进行,宝塔面板计划任务定时安全重启Linux服务器实例操作...

    这篇文章主要为大家详细介绍了宝塔面板计划任务定时安全重启Linux服务器实例操作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴. 宝塔面板有很多"神&q ...

  4. 宝塔服务器管理助手Linux面版-使用教程

    在顺利安装宝塔服务器linux面板之后,我们打开这个面板,UI界面设计的很简介,所有命令一看就知道是干什么用的,和我们以前用过的虚拟主机管理后台是很像的. 方法/步骤 1 使用方法如下: 面板地址:h ...

  5. Linux/Centos7系统管理之进程与计划任务管理

    Linux/Centos7系统管理之进程与计划任务管理查看进程--静态和动态查看控制进程--条件和全部at 一次性任务设置crontab 周期性任务设置一.程序和进程的关系(1)概念程序:保存在硬盘. ...

  6. Linux云服务器搭建宝塔面板零基础教程

    下面稍微介绍一下如何使用阿里云服务器安装宝塔面板. 概述 如果还有不了解宝塔面板怎么使用的小伙伴,可以看下前文: 宝塔面板教程(1)基于云服务器搭建宝塔面板教程最全详解 宝塔面板教程(2)宝塔面板添加 ...

  7. linux添加windows网络打印机,Linux Mint如何添加windows分享的网络打印机?

    1.安装samba sudo apt-get install samba 2.找到系统打印机选项 通过 Menu-->>控制中心-->>系统管理找到 Printers选项,双击 ...

  8. Google及Facebook第三方登录问题,“将你登入到此应用时出错,请稍后再试”

    最近项目需求,需要加上Google及Facebook的第三方登录功能.在根据官方文档按步骤完成配置后,在真机上测试正常. Google登录官方指导文档:https://developers.googl ...

  9. 宝塔安装包下载linux版本,宝塔linux面板下载

    宝塔服务器管理助手linux版是专为linux系统打造的服务器管理软件,该软件大大地简化了服务器的环境配置步骤,支持CentOS 5.x/6.x/7.x系统,拥有一键建立网站.管理FTP.管理数据等功 ...

最新文章

  1. my项目的总结2015.8.26编
  2. Java线上问题排查思路及Linux常用问题分析命令学习
  3. curl-loader介绍
  4. 配置tomcat_Tomcat 配置必备的 10 个小技巧,让你轻松玩转Tomcat
  5. .net pdf转图片_PDF转图片怎么做?PDF一键转图片!
  6. 你不知道的js中关于this绑定机制的解析[看完还不懂算我输]
  7. [unity3d]再次修改socket聊天,完美的服务器端
  8. Mysql 8.0 遇到用遇到的几个问题及解决办法
  9. 华为 项目管理10大模板 【Word版 (可直接套用)】
  10. win10计算机管理删除卷,win10系统删除卷或驱动器分区的方法
  11. Spark中组件Mllib的学习27之逻辑回归-多元逻辑回归,较大数据集,带预测准确度计算
  12. pc弹窗宽度_弹窗设计的5条原则
  13. 微信小程序 表单控件【族谱聚微信小程序表单控件】
  14. SpringBoot word文件转pdf
  15. 集束搜索(beam search)和贪心搜索(greedy search)
  16. 2015美国大学计算机科学专业排名,USNews2015美国大学计算机科学专业研究生排名...
  17. Linux 桌面图标分类
  18. ORACLE 性能优化示例
  19. LC EDA 学习笔记
  20. [Practical.Vim(2012.9)].Drew.Neil.Tip19学习摘要

热门文章

  1. 【keil】 一款舒适的配色主题
  2. showmoney钱包介绍
  3. 信息和数据之间的区别
  4. P1880 [NOI1995]石子合并
  5. 企业运维——Zabbix安装与agent的添加
  6. ABAQUS仿真软件新手入门培训
  7. server 和 location 中的 root,和location语法
  8. 华为服务器RAID配置
  9. ESP32接入百度云,在线语音识别
  10. rust默认赋值的方法