sar不能检查历史路由表条目变化,因其不采集、存储或报告路由表数据,仅记录cpu、内存、i/o等性能指标;需通过系统日志、网络服务审计日志、定时快照或netlink监控工具实现路由变更追踪。

sar 不能检查历史路由表条目变化。
它不采集、不存储、也不报告路由表(如 ip route 或 route -n 输出的内容)相关数据。
sysstat 工具包中的 sar,只记录内核公开的性能统计指标——比如 CPU、内存、I/O、网络接口吞吐、套接字连接数等,但不包括路由表快照、FIB 条目增删、策略路由变更等配置类状态。
你真正需要的不是 sar,而是以下方法:
1. 查看系统日志中路由变更记录
内核或网络管理服务(如 NetworkManager、systemd-networkd、bird、frr)在修改路由时,通常会写入 journal 或 syslog:
journalctl -u systemd-networkd --since "2026-07-28" | grep -i "route\|fib\|add\|del" # 或查 rsyslog 日志 grep -i route /var/log/syslog | grep -E "(2026-07-28|Jul 28)"
2. 检查网络服务自身的审计日志
- 若使用 FRR:日志默认在
/var/log/frr/frr.log,含rib_add_ipv4、rib_delete_ipv4等动作 - 若使用 BIRD:启用
debug protocols all后,日志含路由注入/撤销事件 - 若用 iproute2 手动操作:检查 bash 历史(
history | grep ip\ route),或审计日志(ausearch -m avc -ts recent | grep route,需 auditd 开启)
3. 主动归档路由表快照(推荐长期监控)
靠 cron 定期保存,例如每小时一次:
# 加入 /etc/cron.hourly/save-route
#!/bin/sh
DATE=$(date +\%Y-\%m-\%d_\%H)
ip route show table all > /var/log/route-history/route_${DATE}.txt 2>/dev/null
再用 diff 对比两天快照:
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
diff /var/log/route-history/route_2026-07-28_14.txt /var/log/route-history/route_2026-07-29_10.txt
4. 使用 netlink 监控工具(实时+可回溯)ss -r(显示路由缓存)、ip monitor route(实时流式输出),配合 script 或 tee 记录到文件:
# 后台持续记录(需提前创建目录) nohup sh -c 'ip monitor route >> /var/log/route-monitor.log 2>&1' &
sar 的 -n ROUTE 选项并不存在;官方文档和源码中无此功能。所有声称 “sar -n ROUTE” 的网络文章均为错误引用或混淆了 netstat -r、ip route 等命令。
不复杂但容易忽略:路由是配置状态,不是性能指标——它不在 sysstat 的采集范围内。










