统计出每个IP的访问量有多少?
- 检查是否提供了日志文件的路径作为参数。
- 使用
awk
从日志文件的每行中提取第一个字段(假设这是IP地址)。 - 使用
sort
对提取的IP地址进行排序。 - 使用
uniq -c
统计每个唯一IP地址的出现次数。 - 最后,使用
sort -nr
按访问量从高到低进行排序。
root@service ~]# vim count_ips.sh
#!/bin/bash
# 检查参数
if [ "$#" -ne 1 ]; then
echo "Usage: $0 <logfile>"
exit 1
fi
LOGFILE="$1"
# 使用awk统计每个IP的访问量,然后排序并输出
awk '{print $1}' "$LOGFILE" | sort | uniq -c | sort -nr
[root@service ~]# chmod +x count_ips.sh
[root@service ~]# ./count_ips.sh /tmp/1.log
1 192.168.142.148
1 192.168.142.139
1 192.168.140.121
生成磁盘使用情况的日志文件
在如下脚本中,你需要将/tmp/2.log
替换为你想要保存日志文件的实际路径和名称。脚本首先获取当前时间,并将其与磁盘使用情况一起追加到日志文件中;同时,它还输出这些信息到终端上 。
[root@service tmp]# vim cipan.sh
#!/bin/bash
# 定义日志文件的路径和名称
LOG_FILE="/tmp/2.log"
# 使用df命令获取磁盘使用情况,并格式化输出
DISK_USAGE=$(df -h)
# 将磁盘使用情况追加到日志文件中
echo "$(date '+%Y-%m-%d %H:%M:%S') - Disk Usage:" >> "$LOG_FILE"
echo "$DISK_USAGE" >> "$LOG_FILE"
echo "--------------------------------------------------------" >> "$LOG_FILE"
echo "$(date '+%Y-%m-%d %H:%M:%S') - Disk Usage:"
echo "$DISK_USAGE"
# 完成提示
echo "你的磁盘使用情况被记录到 $LOG_FILE"
可以查看CPU资源占用率的脚本文件
查看实时占用率
[root@service tmp]# vim cpu_show.sh
#!/bin/bash
# 定义一个函数来显示CPU占用率
show_cpu() {
# 使用top命令获取CPU占用率信息,并只显示第一行(包含CPU占用率的部分)
top -bn1 | grep "Cpu(s)"
}
# 调用函数显示CPU占用率
show_cpu
[root@service tmp]# bash cpu_show.sh
%Cpu(s): 2.9 us, 2.9 sy, 0.0 ni, 94.1 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
top
命令的-b
选项表示批处理模式,-n1
表示只更新一次。grep "Cpu(s)"
用于过滤出包含CPU占用率信息的行。
查看一段时间内的CPU占用率
[root@service tmp]# vim cpu_show2.sh
#!/bin/bash
# 定义一个函数来显示指定时间间隔的平均CPU占用率
show_cpu_avg() {
interval=$1
mpstat -P ALL $interval 1 | tail -n +3
}
# 调用函数显示过去5秒的平均CPU占用率
show_cpu_avg 5
[root@service tmp]# bash cpu_show2.sh
20时31分14秒 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
20时31分19秒 all 0.10 2.16 24.64 5.26 0.82 1.03 0.00 0.00 0.00 65.98
20时31分19秒 0 0.20 1.21 23.43 8.89 0.81 1.21 0.00 0.00 0.00 64.24
20时31分19秒 1 0.00 3.16 25.89 1.47 0.84 0.84 0.00 0.00 0.00 67.79
平均时间: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
平均时间: all 0.10 2.16 24.64 5.26 0.82 1.03 0.00 0.00 0.00 65.98
平均时间: 0 0.20 1.21 23.43 8.89 0.81 1.21 0.00 0.00 0.00 64.24
平均时间: 1 0.00 3.16 25.89 1.47 0.84 0.84 0.00 0.00 0.00 67.79
mpstat -P ALL 5 1
表示显示所有CPU核心的统计信息,每5秒更新一次,总共更新1次。tail -n +3
用于跳过前两行标题信息。