网络情况经常让我们头疼,每次都需要手动在终端ping太麻烦了,不如写个脚本ping并将数据带上时间戳存入文件,然后也可以分析哪个时间段网络比较差。
创建一个demo.sh
文件:
#!/bin/bash
# 清理日志
net_path="./network/"
# 目录存在,删除修改时间为1天前的文件
if [ -d "${net_path}" ]; then
echo start delete log 1 days ago...
find "${net_path}"/* -name '*.txt' -mtime +1 -exec rm -rf {} \;
echo end delete log ...
fi
output_file="./network/output.txt"
# 设置目标主机
target_host="baidu.com"
# 定义函数获取当前时间戳
get_timestamp() {
date +"%Y-%m-%d %H:%M:%S"
}
# 循环执行ping命令
while true; do
# 获取当前时间戳
timestamp=$(get_timestamp)
# 执行ping命令并抓取延迟时间
ping_result=$(ping -c 1 $target_host | grep time= | awk -F 'time=' '{print $2}' | cut -d ' ' -f 1)
# 输出带有时间戳的ping结果
echo "$timestamp - Ping: $ping_result ms"
echo "$timestamp - Ping: $ping_result ms" >> "$output_file"
# 等待1秒后继续执行
sleep 1
done
时延数据会存入output.txt
中,然后也会自动删除前一天的文件。
最后,可将txt导入excel,生成图表看什么时候网络较差:
以上。