在学习大数据配置hadoop集群使用虚拟机的时候,每次开机集群各个机器的ip都可能发生变化,但修改静态ip又不太会操作,写个脚本来操作
在/home/用户 目录下创建bin目录,在该目录下编写脚本可以直接在全局运行,不需要配置环境变量
编写脚本
vim updateip #!/bin/bash update(){ echo "========== 开始更新ip =========" #1.删除旧的ip #定义将要删除的旧ip HOST=`hostname` echo "本机名称:$HOST" LINE=`cat /etc/hosts | grep $HOST` OLDIP=`cat /etc/hosts | grep $HOST | sed 's/hadoop[0-9]\{3\}.*$//g'` #echo "旧的ip:$LINE" echo "旧的ip地址:$OLDIP" #把去除hadoop的映射后的内容写到/tmp/hosts.tmp grep -v "$LINE" /etc/hosts > /tmp/hosts.tmp echo "========== 新的ip ========" #将要添加的新ip NEWIP=`ifconfig | grep '192.168.88.' | sed 's/^.*inet//g' | sed 's/ *netmask.*$//g' | sed 's/ //g'` echo "新的ip地址:$NEWIP" #追加到/tmp/hosts.tmp #echo "$NEWIP `hostname` `hostname`" >> /tmp/hosts.tmp if [ "$OLDIP" == "$NEWIP" ] then echo "需要更新" #追加到/tmp/hosts.tmp echo "$NEWIP `hostname` `hostname`" >> /tmp/hosts.tm echo "更新后的host:s" cat /tmp/hosts.tmp else echo "不需要更新" fi } #调用方法 uodate
赋予权限
chmod 744 uodateip