ip别名删除第一个,其余别名就自动删除的分析
上课作业有一个脚本,是批量添加ip别名,批量删除ip别名,脚本如下
[root@loadblance scripts]# cat ip.sh #!/bin/bash function up {for i in `seq 1 16`;doif [ $i -eq 10 ];thencontinuefiifconfig eth0:$i 10.0.2.$i netmask 255.255.255.0 updone } function down {for i in `seq 1 16`;doif [ $i -eq 10 ];thencontinuefiifconfig eth0:$i downdone } case $1 inup)up#ifconfig eth0:0 down;;down)down;; esac
脚本执行批量添加没有什么问题,但在执行批量删除时出现如下报错
[root@loadblance scripts]# bash ip.sh down SIOCSIFFLAGS: Cannot assign requested address SIOCSIFFLAGS: Cannot assign requested address SIOCSIFFLAGS: Cannot assign requested address SIOCSIFFLAGS: Cannot assign requested address SIOCSIFFLAGS: Cannot assign requested address
后来分析发现是在批量删除的for循环执行第一次循环 ifconfig eth0:1 down的时候,就把所有的ip别名给删除了,导致后面的循环都会报错。
但是为什么执行ifconfig eth0:1 down就会把所有的别名ip都给down掉了呢,后来查了一下,翻到了redhat的bugzilla里面有篇记录,大体翻译如下:
新添加的ip地址如果是和原有的ip的子网相同,那么新添加的ip都将成为原有ip的secondary ,原有的ip称为primary address。当primary被删除后,secondary都会被删除。而如果只删除某个secondary,不会影响其他的ip地址。查看这些信息,建议用ip addr命令。
再看看我们的环境(如下),由于新添加的eth0:1和eth0并不是同一个子网,所以新添加的eth0:1是一个新的primary address,其他的eth0:2-eth0:16是eth0:1的secondary,正因为如此,按照上面理论,当删除eth0:1时,其他ip别名都会自动被干掉。
[root@loadblance scripts]# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWNlink/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host loinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000link/ether 00:0c:29:29:3f:fd brd ff:ff:ff:ff:ff:ffinet 192.168.1.9/24 brd 192.168.1.255 scope global eth0inet 10.0.2.1/24 brd 10.0.2.255 scope global eth0:1inet 10.0.2.2/24 brd 10.0.2.255 scope global secondary eth0:2inet 10.0.2.3/24 brd 10.0.2.255 scope global secondary eth0:3inet 10.0.2.4/24 brd 10.0.2.255 scope global secondary eth0:4inet 10.0.2.5/24 brd 10.0.2.255 scope global secondary eth0:5inet 10.0.2.6/24 brd 10.0.2.255 scope global secondary eth0:6inet 10.0.2.7/24 brd 10.0.2.255 scope global secondary eth0:7inet 10.0.2.8/24 brd 10.0.2.255 scope global secondary eth0:8inet 10.0.2.9/24 brd 10.0.2.255 scope global secondary eth0:9inet 10.0.2.11/24 brd 10.0.2.255 scope global secondary eth0:11inet 10.0.2.12/24 brd 10.0.2.255 scope global secondary eth0:12inet 10.0.2.13/24 brd 10.0.2.255 scope global secondary eth0:13inet 10.0.2.14/24 brd 10.0.2.255 scope global secondary eth0:14inet 10.0.2.15/24 brd 10.0.2.255 scope global secondary eth0:15inet 10.0.2.16/24 brd 10.0.2.255 scope global secondary eth0:16
解决方法:修改脚本,把所有新添加的ip别名的都设成和eth0一个网段的,这样所有新加ip别名都是eth0的secondary了,任意删除一个secondary不会影响其他的ip别名。
转载于:https://blog.51cto.com/daiqingyang/1330938
ip别名删除第一个,其余别名就自动删除的分析相关推荐
- 输入一个字符后后面一个字符就会自动删除
台式电脑:键盘上的insert按键退出 笔记本:Fn+insert按键退出
- linux mysql 删除表脚本_linux shell脚本自动删除mysql表前3个月的数据
RDS有一个数据库表tbl_online表,有6千万数据,需要清理,保留3个月. 步骤如下:创建月表 将需要删除的数据写入月表 删除数据 优化表 shell如下: #!/bin/bash base=& ...
- 从 Python 中的字符串中删除最后一个分号或者逗号
第一种方法 使用 str.rstrip() 方法从字符串中删除最后一个逗号,例如 new_str = my_str.rstrip(';'). str.rstrip() 方法将返回删除尾随逗号的字符串副 ...
- html5滑动删除置顶,html5向左滑动删除特效
html5向左滑动删除特效 * { padding: 0; margin: 0; list-style: none; } header { background: #f7483b; border-bo ...
- Windows自动删除n天前的文件的批处理脚本
数据库每天备份文件,然而只需要保留七天的备份即可,编写一个批处理脚本文件自动删除七天前的文件并设置定时任务 自动删除文件需要用到forfiles命令 forfiles参数: /p 指定的路径 /s 包 ...
- 接口规范 12. 自动删除相关接口
12 自动删除相关接口 12.1.查询自动删除任务 用途 查询服务器上的自动删除任务. 自动删除任务是一种运行在服务器上的服务,按照定义的规则自动删除过期的视频内容.例如,对于监控和视频直播类业务,可 ...
- linux删除每行首字符,vim技巧:删除行首、行末的空白字符,删除空白行
使用 :help + 命令查看 + 的含义如下: + Matches 1 or more of the preceding atom, as many as possible. 使用 :help /* ...
- Elasticsearch中别名alias相关操作(创建、更新、删除)
1.索引别名概述 在Elasticsearch中,别名(alias)是一种将一个或多个索引(index)映射到一个逻辑名称上的方式.通过使用别名,我们可以为目标索引提供简洁.易于理解的名称,并将多个索 ...
- bash 别名_必不可少的Bash别名
bash 别名 Bash别名是用新命令补充或覆盖Bash命令的方法. Bash别名使用户可以轻松自定义其在POSIX终端中的体验. 它们通常在$ HOME / .bashrc或$ HOME / bas ...
- mysql 根据一张表删除另一张表_根据表删除另一个表_MySQL
bitsCN.com 根据表删除另一个表 DELETE删除多表数据,怎样才能同时删除多个关联表的数据呢?这里做了深入的解释: 1. delete from t1 where 条件 2.delete t ...
最新文章
- 企业IT运维的“安全终结者”-堡垒机指南
- 【Python】青少年蓝桥杯_每日一题_9.27_输出最大值最小值平均值
- eslint 保存自动格式化_ESLint一款可组装的JavaScript和JSX检查工具
- java stl分解_[STL训练]寻梦-题解(Java代码)极简思路
- 解决Mac安装软件的“已损坏,无法打开。 您应该将它移到废纸篓”问题
- 提升漏洞修复率,DevSecOps真的很有一套
- fastapi学习(二):路径参数获取与GET、POST参数获取
- Entity Framework 6.x Code First 基础
- 【半原创】将js和css文件装入localStorage加速程序执行
- 迅雷2019校园招聘 内推码
- STS安装lombok插件
- Android基于腾讯X5内核的WebView(超级浏览器)
- 2021年 最全面 软件测试工程师面试题及答案
- SpringBoot全局异常处理(三十)
- vim模式下报错E37: No write since last change No write since last change for buffer “ “
- amigo幸运字符什么意思_python3基础01数值和字符串(一)
- 配置H3C设备无线AP多vlan步骤
- UG NX 12 草图设计
- RuntimeError: Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is
- css初级之高级语法
热门文章
- 关闭图片 pycharm_博士大佬总结的Pycharm 常用快捷键思维导图,收藏!
- android wear 兼容问题,【悲剧了】仅 1/4 安卓手机兼容 Android Wear - 爱应用
- 基于阿里云用C/C++做了一个http协议与TCP协议的web聊天室的服务器——《干饭聊天室》
- 青海省计算机应用能力考试,青海省2015年职称计算机应用能力考试西宁考区四月份考试安排通知...
- 高品质摄影作图台式计算机推荐,浅谈高质量摄影照片后期输出的打印机选择
- java好过去前一天日期_Java-日期保存为前一天
- 申报成功后怎样修改_每日分享|电子税务局操作指引之更正错误申报
- 基于注解的 AOP 配置
- python函数结构图_Python数据结构与算法之图结构(Graph)实例分析
- 大佬来告诉你在遇到B站崩了,如何防止类似事故的出现?