以下是一个获取 Linux 系统中所有网络命名空间的路由表的 Bash 脚本示例:
#!/bin/bash
# 获取当前系统中所有网络命名空间的列表
ns_list=$(ip netns list | awk '{print $1}')
# 循环遍历每个网络命名空间
for ns in $ns_list; do
echo "Namespace: $ns"
# 在每个命名空间中执行命令获取路由表
ip netns exec $ns ip route
echo "---"
done
将脚本保存为一个可执行文件(例如:get_namespace_routes.sh
),然后在终端中执行该脚本即可获取到系统中所有网络命名空间的路由表信息。
请注意,在运行此脚本之前,请确保您具有足够的权限来执行 ip
命令和访问网络命名空间的路由表信息。