荣耀之链论坛

 找回密码
 立即注册
搜索
查看: 1015|回复: 0

openwrt在ipv6前缀变更以后自动重启network

[复制链接]

1326

主题

2373

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
10267
发表于 2021-8-13 18:55 | 显示全部楼层 |阅读模式
  1. ip addr |grep "inet6 2408" |awk '{print $2}' |awk -F/ '{print $1}'
  2. 输出当前的IPV6地址

  3. 获取前缀的方式
  4. ip -6 route |grep "default" |awk '{print $3}' |awk -F/ '{print $1}' >/root/oldpd.txt
  5. 然后如果这个前缀变化了,就重启network


  6. 测试脚本如下:
  7. oldpd=`cat /root/oldpd.txt`
  8. pd=`ip -6 route |grep "default" |awk '{print $3}' |awk -F/ '{print $1}'`

  9. echo $oldpd
  10. echo $pd

  11. if [ "$oldpd" != "$pd" ]
  12. then
  13.         echo "butong"
  14.         ip -6 route |grep "default" |awk '{print $3}' |awk -F/ '{print $1}' >/root/oldpd.txt
  15. else
  16.         echo "xiangtong"
  17. fi

复制代码


脚本最终如下 变量的获取一定要用相同的方式,oldpd和pd都要经过cat文本这一过程 否则有可能会造成没有换行,导致对比不一样
  1. oldpd=`cat /root/oldpd.txt |awk -F, '{print $1}'`
  2. ifstatus wan6 |grep "address"|grep "::" >/tmp/ipv6jiaobentmp.txt
  3. sleep 1

  4. pd=`cat /tmp/ipv6jiaobentmp.txt |awk -F, '{print $1}'`


  5. if [ "$oldpd" != "$pd" ]
  6. then
  7.         service network restart
  8.         var=`date +%Y%m%d%H%M%S`
  9.         echo $var>>/root/log.txt
  10.         echo $pd>>/root/log.txt
  11.         echo "####################################################">>/root/log.txt
  12.         echo $pd>/root/oldpd.txt
  13. fi

复制代码

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

荣耀之链

GMT+8, 2025-6-18 09:33 , Processed in 0.014166 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表