> 技术文档 > 云计算学习100天-第17天

云计算学习100天-第17天


日志分析脚本

分析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/bashawk \'{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\"

心理咨询