当前位置: 首页 > news >正文

linux 系统监控脚本

1.对CPU的监控函数

function GetCpu(){cpu_num=`grep -c "model name" /proc/cpuinfo`cpu_user=`top -b -n 1 | grep Cpu | awk '{print $2}' | cut -f 1 -d "%"`cpu_system=`top -b -n 1 | grep Cpu | awk '{print $4}' | cut -f 1 -d "%"`cpu_idle=`top -b -n 1 | grep Cpu | awk '{print $8}' | cut -f 1 -d "%"`cpu_iowait=`top -b -n 1 | grep Cpu | awk '{print $10}' | cut -f 1 -d "%"`cpu_interrupt=`vmstat -n 1 1 | sed -n 3p | awk '{print $11}'`cpu_context_switch=`vmstat -n 1 1 | sed -n 3p | awk '{print $12}'`cpu_load_15min=`uptime | awk '{print $12}' | cut -f 1 -d ','`cpu_load_5min=`uptime | awk '{print $11}' | cut -f 1 -d ','`cpu_load_1min=`uptime | awk '{print $10}' | cut -f 1 -d ','`color "cpu总核数:" "$cpu_num"color "用户空间占用CPU百分比:" "$cpu_user"color "内核空间占用CPU百分比:" "$cpu_system"color "空闲CPU百分比:" "$cpu_idle"color "等待输入输出占CPU百分比:" "$cpu_iowait"color "CPU中断次数:" "$cpu_interrupt"color "CPU上下文切换次数:" "$cpu_context_switch"color "CPU 15分钟前到现在的负载平均值:" "$cpu_load_15min"color "CPU 5分钟前到现在的负载平均值:" "$cpu_load_5min"color "CPU 1分钟前到现在的负载平均值:" "$cpu_load_1min"
}

2.对内存的监控函数

function GetMem(){mem_total=`free | grep Mem | awk '{print $2}'`mem_sys_used=`free | grep Mem | awk '{print $3}'`mem_sys_free=`free | grep Mem | awk '{print $4}'`mem_user_used=`free | sed -n 3p | awk '{print $3}'`mem_user_free=`free | sed -n 3p | awk '{print $4}'`mem_swap_total=`free | grep Swap | awk '{print $2}'`mem_swap_used=`free | grep Swap | awk '{print $3}'`mem_swap_free=`free | grep Swap | awk '{print $4}'`color "物理内存总量:" "$mem_total"color "已使用内存总量(操作系统):" "$mem_sys_used"color "剩余内存总量(操作系统):" "$mem_sys_free"color "已使用内存总量(应用程序):" "$mem_user_used"color "剩余内存总量(应用程序):" "$mem_user_free"color "交换分区总大小:" "$mem_swap_total"color "已使用交换分区大小:" "$mem_swap_used"color "剩余交换分区大小:" "$mem_swap_free"
}

3.对磁盘IO的监控函数

function GetDiskIo(){disk=sdaread -p "请输入指定磁盘:(eg:sda)" input_diskif [ -z "$input_disk" ]; thenecho "用户未输入,使用默认值 $disk"input_disk="$disk"  # 由于未赋值,这里相当于保持默认elseecho "用户输入的disk路径: $input_disk"fiecho "指定设备($input_disk)的统计信息"disk_sda_rs=`iostat -kx | grep $input_disk| awk '{print $4}'`disk_sda_ws=`iostat -kx | grep $input_disk| awk '{print $5}'`disk_sda_avgqu_sz=`iostat -kx | grep $input_disk| awk '{print $9}'`disk_sda_await=`iostat -kx | grep $input_disk| awk '{print $10}'`disk_sda_svctm=`iostat -kx | grep $input_disk| awk '{print $11}'`disk_sda_util=`iostat -kx | grep $input_disk| awk '{print $12}'`color "每秒向设备发起的读请求次数:" "$disk_sda_rs"color "每秒向设备发起的写请求次数:" "$disk_sda_ws"color "向设备发起的I/O请求队列长度平均值:" "$disk_sda_avgqu_sz"color "每次向设备发起的I/O请求平均时间:" "$disk_sda_await"color "向设备发起的I/O服务时间均值:" "$disk_sda_svctm"color "向设备发起I/O请求的CPU时间百分占比:" "$disk_sda_util"
}

4.对线程状态的监控函数

function GetPidstat(){#初始化变量Ptotal=0Rtotal=0Stotal=0Ttotal=0Dtotal=0Ztotal=0for pid in /proc/[1-9]*do#获取进程状态let Ptotal=Ptotal+1stat=$(cd $pid && cat stat| awk '{print $3}')case $stat inR)let Rtotal=Rtotal+1;;S)let Stotal=Stotal+1;;T)let Ttotal=Ttotal+1;;D)let Dtotal=Dtotal+1;;Z)let Ztotal=Ztotal+1;;esacdonecolor "当前进程总数为:" "$Ptotal"color "其中Running进程数为:" "$Rtotal"color "其中Sleeping进程数为:" "$Stotal"color "其中Stopped进程数为:" "$Ttotal"color "其中Disk sleep进程数为:" "$Dtotal"color "其中Zombies进程数为:" "$Ztotal"
}

5.对网卡流量的监控函数

function GetNet(){eth_name=`sar -n DEV 1 1|grep ens|awk 'NR==2{print $2}'`rxpck_num=`sar -n DEV 1 1|grep ens|awk 'NR==2{print $3}'`txpck_num=`sar -n DEV 1 1|grep ens|awk 'NR==2{print $4}'`rxkB_num=`sar -n DEV 1 1|grep ens|awk 'NR==2{print $5}'`txkB_num=`sar -n DEV 1 1|grep ens|awk 'NR==2{print $6}'`rxcmp_num=`sar -n DEV 1 1|grep ens|awk 'NR==2{print $7}'`txcmp_num=`sar -n DEV 1 1|grep ens|awk 'NR==2{print $8}'`rxmcst_num=`sar -n DEV 1 1|grep ens|awk 'NR==2{print $9}'`color "$eth_name每秒钟接收的数据包:" "$rxpck_num"color "$eth_name每秒钟发送的数据包:" "$txpck_num"color "$eth_name每秒钟接收的字节数:" "$rxkB_num"color "$eth_name每秒钟发送的字节数:" "$txkB_num"color "$eth_name每秒钟接收的压缩数据包:" "$rxcmp_num"color "$eth_name每秒钟发送的压缩数据包:" "$txcmp_num"color "$eth_name每秒钟接收的多播数据包:" "$rxmcst_num"
}

6.实现效果

#!/bin/bash
function color() {local a=$1local b=$2echo -e "\033[1;32m$a\033[0m \033[1;31m$b\033[0m"
}
function GetIp(){IP=`ifconfig | grep inet | grep -vE 'inet6|127.0.0.1' | awk '{print $2}'`echo "IP地址:"$IP
}
#检查CPU利用率
function GetCpu(){cpu_num=`grep -c "model name" /proc/cpuinfo`cpu_user=`top -b -n 1 | grep Cpu | awk '{print $2}' | cut -f 1 -d "%"`cpu_system=`top -b -n 1 | grep Cpu | awk '{print $4}' | cut -f 1 -d "%"`cpu_idle=`top -b -n 1 | grep Cpu | awk '{print $8}' | cut -f 1 -d "%"`cpu_iowait=`top -b -n 1 | grep Cpu | awk '{print $10}' | cut -f 1 -d "%"`cpu_interrupt=`vmstat -n 1 1 | sed -n 3p | awk '{print $11}'`cpu_context_switch=`vmstat -n 1 1 | sed -n 3p | awk '{print $12}'`cpu_load_15min=`uptime | awk '{print $12}' | cut -f 1 -d ','`cpu_load_5min=`uptime | awk '{print $11}' | cut -f 1 -d ','`cpu_load_1min=`uptime | awk '{print $10}' | cut -f 1 -d ','`color "cpu总核数:" "$cpu_num"color "用户空间占用CPU百分比:" "$cpu_user"color "内核空间占用CPU百分比:" "$cpu_system"color "空闲CPU百分比:" "$cpu_idle"color "等待输入输出占CPU百分比:" "$cpu_iowait"color "CPU中断次数:" "$cpu_interrupt"color "CPU上下文切换次数:" "$cpu_context_switch"color "CPU 15分钟前到现在的负载平均值:" "$cpu_load_15min"color "CPU 5分钟前到现在的负载平均值:" "$cpu_load_5min"color "CPU 1分钟前到现在的负载平均值:" "$cpu_load_1min"
}
#检查内存使用率
function GetMem(){mem_total=`free | grep Mem | awk '{print $2}'`mem_sys_used=`free | grep Mem | awk '{print $3}'`mem_sys_free=`free | grep Mem | awk '{print $4}'`mem_user_used=`free | sed -n 3p | awk '{print $3}'`mem_user_free=`free | sed -n 3p | awk '{print $4}'`mem_swap_total=`free | grep Swap | awk '{print $2}'`mem_swap_used=`free | grep Swap | awk '{print $3}'`mem_swap_free=`free | grep Swap | awk '{print $4}'`color "物理内存总量:" "$mem_total"color "已使用内存总量(操作系统):" "$mem_sys_used"color "剩余内存总量(操作系统):" "$mem_sys_free"color "已使用内存总量(应用程序):" "$mem_user_used"color "剩余内存总量(应用程序):" "$mem_user_free"color "交换分区总大小:" "$mem_swap_total"color "已使用交换分区大小:" "$mem_swap_used"color "剩余交换分区大小:" "$mem_swap_free"
}#检查磁盘IO状态
function GetDiskIo(){disk=sdaread -p "请输入指定磁盘:(eg:sda)" input_diskif [ -z "$input_disk" ]; thenecho "用户未输入,使用默认值 $disk"input_disk="$disk"  # 由于未赋值,这里相当于保持默认elseecho "用户输入的disk路径: $input_disk"fiecho "指定设备($input_disk)的统计信息"disk_sda_rs=`iostat -kx | grep $input_disk| awk '{print $4}'`disk_sda_ws=`iostat -kx | grep $input_disk| awk '{print $5}'`disk_sda_avgqu_sz=`iostat -kx | grep $input_disk| awk '{print $9}'`disk_sda_await=`iostat -kx | grep $input_disk| awk '{print $10}'`disk_sda_svctm=`iostat -kx | grep $input_disk| awk '{print $11}'`disk_sda_util=`iostat -kx | grep $input_disk| awk '{print $12}'`color "每秒向设备发起的读请求次数:" "$disk_sda_rs"color "每秒向设备发起的写请求次数:" "$disk_sda_ws"color "向设备发起的I/O请求队列长度平均值:" "$disk_sda_avgqu_sz"color "每次向设备发起的I/O请求平均时间:" "$disk_sda_await"color "向设备发起的I/O服务时间均值:" "$disk_sda_svctm"color "向设备发起I/O请求的CPU时间百分占比:" "$disk_sda_util"
}
function GetPidstat(){#初始化变量Ptotal=0Rtotal=0Stotal=0Ttotal=0Dtotal=0Ztotal=0for pid in /proc/[1-9]*do#获取进程状态let Ptotal=Ptotal+1stat=$(cd $pid && cat stat| awk '{print $3}')case $stat inR)let Rtotal=Rtotal+1;;S)let Stotal=Stotal+1;;T)let Ttotal=Ttotal+1;;D)let Dtotal=Dtotal+1;;Z)let Ztotal=Ztotal+1;;esacdonecolor "当前进程总数为:" "$Ptotal"color "其中Running进程数为:" "$Rtotal"color "其中Sleeping进程数为:" "$Stotal"color "其中Stopped进程数为:" "$Ttotal"color "其中Disk sleep进程数为:" "$Dtotal"color "其中Zombies进程数为:" "$Ztotal"
}
function GetNet(){eth_name=`sar -n DEV 1 1|grep ens|awk 'NR==2{print $2}'`rxpck_num=`sar -n DEV 1 1|grep ens|awk 'NR==2{print $3}'`txpck_num=`sar -n DEV 1 1|grep ens|awk 'NR==2{print $4}'`rxkB_num=`sar -n DEV 1 1|grep ens|awk 'NR==2{print $5}'`txkB_num=`sar -n DEV 1 1|grep ens|awk 'NR==2{print $6}'`rxcmp_num=`sar -n DEV 1 1|grep ens|awk 'NR==2{print $7}'`txcmp_num=`sar -n DEV 1 1|grep ens|awk 'NR==2{print $8}'`rxmcst_num=`sar -n DEV 1 1|grep ens|awk 'NR==2{print $9}'`color "$eth_name每秒钟接收的数据包:" "$rxpck_num"color "$eth_name每秒钟发送的数据包:" "$txpck_num"color "$eth_name每秒钟接收的字节数:" "$rxkB_num"color "$eth_name每秒钟发送的字节数:" "$txkB_num"color "$eth_name每秒钟接收的压缩数据包:" "$rxcmp_num"color "$eth_name每秒钟发送的压缩数据包:" "$txcmp_num"color "$eth_name每秒钟接收的多播数据包:" "$rxmcst_num"
}
echo "---------------------开始检查CPU----------------------"
GetCpu
echo "---------------------开始检查内存---------------------"
GetMem
echo "---------------------开始检查磁盘IO-------------------"
GetDiskIo
echo "---------------------开始检查进程状态-----------------"
GetPidstat
echo "---------------------开始检查网卡流量-----------------"
GetNet

相关文章:

linux 系统监控脚本

1.对CPU的监控函数 function GetCpu(){cpu_numgrep -c "model name" /proc/cpuinfocpu_usertop -b -n 1 | grep Cpu | awk {print $2} | cut -f 1 -d "%"cpu_systemtop -b -n 1 | grep Cpu | awk {print $4} | cut -f 1 -d "%"cpu_idletop -b -…...

K8s Pod的QoS类

文章目录 OverviewPod的QoS分类Guaranteed1.如何将 Pod 设置为保证Guaranteed2. Kubernetes 调度器如何管理Guaranteed类的Pod Burstable1. 如何将 Pod 设置为Burstable2.b. Kubernetes 调度程序如何管理 Burstable Pod BestEffort1. 如何将 Pod 设置为 BestEffort2. Kubernete…...

TCP/IP协议栈

一、TCP/IP协议栈和OSI参考模型对比 二、TCP/IP五层功能 三、TCP/IP模型的层间通信与数据封装 四、TCP/IP模型的层间通信与数据解封装...

Vector容器详解

Vector容器详解 本文将详细介绍C#中的Vector容器,包括其定义、特点、使用方法以及示例代码。 目录 Vector容器简介Vector容器的特点Vector容器的使用方法示例代码 1. Vector容器简介 Vector容器是一种动态数组,它可以自动调整大小以容纳更多的元素。…...

设计模式-抽象工厂(创建型)

创建型-抽象工厂 角色 抽象工厂: 声明创建一个族产品对象的方法,每个方法对应一中产品,抽象工厂可以是接口,也可以是抽象类;具体工厂: 实现抽象工厂接口,复杂创建具体的一族产品;抽…...

攻防世界---web---Web_php_unserialize

1、题目描述 2、 3、分析代码 class Demo { private $file fl4g.php; }:定义了一个名为Demo的类,该类有一个私有属性$file,默认值为fl4g.php。 $a serialize(new Demo);:创建了一个Demo类的实例,并对其进行序列化&a…...

嵌入式学习记录

一 环境搭建 1.Ubuntu ssh登陆开发板,短命令替换ssh命令 交叉编译命令 sudo gedit ~/.bashrc # 文件结尾加入: alias tob"ssh root192.168.1.104" alias gb"arm-buildroot-linux-gnueabihf-gcc"往后终端输入top 相当于输入ssh roo…...

使用from…import语句导入模块

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 在使用import语句导入模块时,每执行一条import语句都会创建一个新的命名空间(namespace),并且在该命名…...

idea mac快捷键

Mac快捷键 快捷键 说明 ⌘ F 在当前窗口查找 ⌘ ⇧ F 在全工程查找 ⌘ ⇧ ⌥ N 查找类中的方法或变量 F3 / ⇧ F3 移动到搜索结果的下/上一匹配处 ⌘ R 在当前窗口替换 ⌘ ⇧ R 在全工程替换 ⌘ ⇧ V 可以将最近使用的剪贴板内容选择插入到文本 ⌥…...

Day1——一些感想,学习计划和自我激励(不重要,跳过吧)

笨人刚刚接触计算机的时候,属于是两眼一抹黑。高考后玩了一整个暑假,脑子已经丢掉了,学起来很痛苦,但是也在学习过程中接触到了很多新鲜的东西,现在对于计算机的各种方向,我都很想试试(试试就逝…...

网络安全渗透工具汇总

一、HackBar github地址:https://github.com/Mr-xn/hackbar2.1.3.git 介绍 HackBar是一款基于浏览器的渗透测试工具,可以简化目标网站的攻击流程。它可以轻松地注入JavaScript和其他脚本,进行SQL注入、XSS攻击、各种类型的扫描等。该工具…...

JavaScript 学习笔记 总结

回顾: Web页面标准 页面结构:HTML4、HTML5页面外观和布局:CSS页面行为:JavaScript强调三者的分离前后端分离开发模式 响应式设计Bootstrap框架入门 Bootstrap总结 基础 下载和使用基础样式:文本样式、图片样式、表格…...

分布式架构与分布式理论

文章目录 分布式架构什么是分布式系统分布式系统特性分布式系统面临的问题 分布式理论数据一致性CAP理论BASE理论 分布式架构 什么是分布式系统 分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。 所谓分…...

Qt——前言

一、Qt介绍 ​ **Qt技术特指用来桌面应用开发;**客户端开发的重要任务就是编写和用户交互的界面;而与用户交互的界面有两种典型风格,1.命令行界面/终端界面,TUI;2.图形化界面,GUI; ​ Qt就是用…...

RN:Error: /xxx/android/gradlew exited with non-zero code: 1

问题 执行 yarn android 报错: 解决 这个大概率是缓存问题,我说一下我的解决思路 1、yarn doctor 2、根据黄色字体提示,说我包版本不对(但是这个是警告应该没事,但是我还是装了) npx expo install --…...

今日科普:了解、预防、控制高血压

高血压,常被称为“隐形的健康威胁”,许多患者可能在毫无预警的情况下发病,且患病率逐年攀升,同时患者群体逐渐年轻化,高血压虽然难以根治,但并不可怕,真正可怕的是血压长期居高不下,…...

Spark关于 ExpressionEncoder[T] 以及 RowEncoder 以及Spark怎么做外部数据和内部数据的转换

背景 本文基于 Spark 3.3, 最近在用 Spark Api 做 DataSet[Row] 转换的时候遇到了一些 Spark内部转换的问题, 在此记录一下。 杂谈 我们知道在Spark中分为 InternalRow和Row, 前者是 Spark 内部的使用的一行数据的表示,后者是给Spark开发者使用的行数…...

D-Day 上海站回顾丨以科技赋能量化机构业务

5月31日下午,DolphinDB 携手光大证券,在上海成功举办 D-Day 行业交流会。三十余位来自私募机构的核心策略研发、量化交易员、数据分析专家们齐聚现场,深入交流量化投研交易过程中的经验、挑战及解决方案。 DolphinDB 赋能机构业务平台 来自光…...

业财一体化的重点、难点和模式

业财一体化的内涵是企业将经营活动、财务管理、经营决策等进行科学的融合和管理,进而提高企业经营管理和财务决策的科学性,同时,基于IT技术、流程再造和组织重构更好的保障企业价值创造功能的实现。其涵盖管理循环、业务循环、信息循环三个双…...

gorse修改开源项目后,如何使用Docker compose发布

代码修改 git checkout v0.4.15 修改代码后提交。 镜像构建 export GOOSlinux export GOARCHamd64 export GOMAXPROCS8go build -ldflags"-s -w -X github.com/zhenghaoz/gorse/cmd/version.Version$(git describe --tags $(git rev-parse HEAD)) -X github.com/zhengh…...

Bowyer-Watson算法

数学原理及算法过程 Delaunay 三角剖分是一种特殊的三角剖分方法,它满足以下两个重要性质: 最大化最小角性质:Delaunay 三角剖分通过避免细长的三角形来最大化所有三角形的最小角。空外接圆性质:在 Delaunay 三角剖分中&#xf…...

计算机基础之:fork进程与COW机制

在Unix-like操作系统中,fork()是一个系统调用,用于创建一个与调用进程(父进程)几乎完全相同的新进程(子进程),包括父进程的内存空间、环境变量、文件描述符等。这个过程是通过写时复制&#xff…...

47.各种类型的线程池

线程池继承体系 Executor(interface)->ExecutorService(interface)->ThreadPoolExecutor(class) Executors.newFixedThreadPool 核心线程数最大线程数(没有救急线程被创建),所以也无需超时时间阻塞队列LinkedBlockingQueue,可以放任意…...

多目标优化-NSGA-II

文章目录 一、前置知识NSGA-II帕累托前沿 二、算法流程1.NSGA2.NSGA-II 一、前置知识 1.NSGA(非支配排序遗传算法):旨在同时优化多个冲突的目标函数,寻找帕累托前沿上的解集。 什么是多个冲突的目标: 比如你看上了一辆车,你既想要它便宜,又…...

元宇宙数字藏品交易所,未来发展的大趋势

随着科技的飞速进步,元宇宙以其独特的魅力为数字世界绘制了一幅前所未有的宏伟蓝图。在这一宏大的背景下,数字藏品交易所作为连接虚拟与现实的桥梁,正以其卓越的优势,引领着数字藏品市场迈向新的高度。 首先,元宇宙为…...

通配符https数字证书260

随着越来越多的人开始使用互联网,互联网上的信息变得繁杂,用户很难识别网站信息的真实性,为了维护互联网的环境,开发者开始使用https证书对网站传输数据进行加密和身份认证,以此来保护用户的隐私以及标示网站的真实性。…...

C++ | Leetcode C++题解之第133题克隆图

题目&#xff1a; 题解&#xff1a; class Solution { public:Node* cloneGraph(Node* node) {if (node nullptr) {return node;}unordered_map<Node*, Node*> visited;// 将题目给定的节点添加到队列queue<Node*> Q;Q.push(node);// 克隆第一个节点并存储到哈希…...

yangwebrtc x86_64环境搭建

版本&#xff1a;5.0.099 sudo apt-get install libxext-dev sudo apt-get install x11proto-xext-dev sudo apt-get install libxi-dev sudo apt install libasound2-dev sudo apt install libgl1-mesa-dev sudo apt-get install libxtst-dev 用qt打开以下两个项目的.pro met…...

前端面试题日常练-day53 【面试题】

题目 希望这些选择题能够帮助您进行前端面试的准备&#xff0c;答案在文末 1. 在PHP中&#xff0c;以下哪个函数可以用于从一个数组的末尾删除一个元素并返回被删除的元素&#xff1f; a) array_pop() b) array_push() c) array_shift() d) array_unshift() 2. 在PHP中&…...

空间不够用了怎么办

空间告急啊哥们 整理一下清理空间有用的一些blog吧。 【linux】公共服务器如何清理过多的.cache缓存 linux根目录空间不足&#xff0c;追加空间到根目录下 【linux】linux磁盘空间 目录查看清理 和 文件查看清理...

山东鲁为建设集团网站/关键词搜索引擎工具

openvc环境的配置 1.下载opencv:https://opencv.org/ 2.解压opencv,配置opencv程序集目录到window环境变量中 3.vs中包含目录的配置 4.vs中库目录的配置 5.vs活动解决方案配置...

皖icp合肥网站建设/企业管理培训课程网课免费

void t_GotFocus(object sender, RoutedEventArgs e){var tb sender as TextBox;var gt tb.TransformToVisual(null);Point p gt.Transform(new Point(0, 0));MessageBox.Show(p.X " " p.Y);}...

wordpress导航标签/怎么做自己的网站

在本文 微信小程序相机组件wx.createCameraContext()的使用模拟微信拍照之前需要看看 微信小程序-获取用户session_key,openid,unionid - 后端为nodejs 代码封装是在上文添加的。 本文知识点&#xff1a; 1、微信小程序相机组件wx.createCameraContext()使用 2、微信小程序拍照…...

php网站开发实训指导书/百度点击软件名风

继北京、上海后&#xff0c;近日&#xff0c;华为鸿蒙OS 2.0手机开发者Beta活动在广州举行。在此次活动现场&#xff0c;华为智慧全场景业务部副总裁段孟然再次公布了鸿蒙OS手机版的重磅消息。段孟然称&#xff0c;自去年年底正式发布面向手机开发者的鸿蒙OS Beta版本后&#x…...

iis可以做php网站吗/网站排名优化快速

好几个月没写博客&#xff0c;一方面是工作忙原因&#xff0c;一方面是内容太浅&#xff0c;没什么实际应用的我也不想写&#xff0c;现在正好最近遭受了大量的UDP***&#xff0c;我给大家介绍一下我这里是如何防御DDOS等流量***。先给大家看看我最近遭受***情况数据汇总1、最近…...

南京网站推广排名/推广宣传方式有哪些

自从去年龙神道发布了录音花絮片&#xff0c;我们就在翘首以待龙神道将带来怎样的惊喜。就在二月二龙抬头的今天&#xff0c;经过三年的沉淀&#xff0c;首支单曲《为爱改变》及其MV同步上线&#xff0c;为这张即将到来的新专辑奠定了基调。☟龙神道《为爱改变》MV全曲以鼓合成…...