云计算学习100天-第17天

发布于:2025-08-19 ⋅ 阅读:(14) ⋅ 点赞:(0)

日志分析脚本

分析Apache日志,统计每个IP访问服务器的次数

#/bin/bash
#日志文件格式如下:
#201.28.117.13 - - [08/Apr/2024:11:45:16 +0800] "GET / HTTP/1.1" 200 615 "-" "curl/7.61.1"

awk '{ip[$1]++}END{for(i in ip){print ip[i],i }}' /var/log/httpd/access_log 

分析Nginx日志,统计每个IP访问服务器的次数

假设nginx日志在/usr/local/nginx/logs/access.log

#/bin/bash
awk '{ip[$1]++}END{for(i in ip){print ip[i],i }}' /usr/local/nginx/logs/access.log

网络连接分析,统计当前系统tcp和udp连接个数(使用ss可以查看网络连接状态)

[root@new ~]# ss -Hanutp

udp UNCONN 0 0 127.0.0.1:323 0.0.0.0:* users:(("chronyd",pid=495,fd=5))

tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=529,fd=3))

tcp LISTEN 0 128 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=9714,fd=6),("nginx",pid=9713,fd=6))

tcp ESTAB 0 0 192.168.88.10:22 192.168.88.254:50622 users:(("sshd",pid=622,fd=4),("sshd",pid=620,fd=4))

版本1:不使用awk数组的版本

#/bin/bash
# 获取TCP连接数  
tcp_count=$(ss -an | grep ^tcp | wc -l)  
# 获取UDP连接数  
udp_count=$(ss -an | grep ^udp | wc -l)  
# 输出结果  
echo "TCP 连接数: $tcp_count"  
echo "UDP 连接数: $udp_count"

版本2:使用awk数组的版本

#/bin/bash
# 获取TCP连接数  
tcp_count=$(ss -an | awk '/^tcp/{ip[$1]++}END{for(i in ip){print ip[i]}}')  
# 获取UDP连接数  
udp_count=$(ss -an | awk '/^udp/{ip[$1]++}END{for(i in ip){print ip[i]}}')  
# 输出结果  
echo "TCP 连接数: $tcp_count"  
echo "UDP 连接数: $udp_count"


网站公告

今日签到

点亮在社区的每一天
去签到