首页 > 代码库 > Linux修改主机名脚本-不重启-支持RedHat、SUSE
Linux修改主机名脚本-不重启-支持RedHat、SUSE
需要用脚本修改主机名,涉及RedHat、SUSE系统,并且要求修改立即生效且不重启,下面就是我的脚本。
使用脚本的方法如下:
1 首先创建一个脚本文件,假如命名为ModifyHostname.sh: touch ModifyHostname.sh
2 然后给这个文件给这个文件赋予执行权限:chmod a+x ModifyHostname.sh
3 把下面的脚本内容,复制到ModifyHostname.sh文件中
4 执行脚本
sh ModifyHostname.sh Newhostname #其中Newhostname就是新主机名
#!/bin/bashPATH=/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/opt/kde3/bin:/usr/lib/mit/bin:/usr/lib/mit/sbinexport PATHNew_Hostname=$1OSRelease=`lsb_release -i|awk -F : ‘{print $2}‘|sed ‘s/\t//g‘`#1 Modify /etc/hosts or add one loop entryOld_Hostname=`grep ${HOSTNAME} /etc/hosts|wc -l`if [ "$Old_Hostname" != "0"x ]; then sed -i "s/${HOSTNAME}/${New_Hostname}/g" /etc/hostselse echo "127.0.0.10 ${New_Hostname}">>/etc/hostsfi#2 Modify different OS‘s hostname if [[ ${OSRelease} =~ ‘SUSE‘ ]]; then echo "this is SUSE machine"; #modify /etc/HOSTNAME file echo ${New_Hostname}>/etc/HOSTNAME; #immediate effect /etc/rc.d/boot.localnet stop; /etc/rc.d/boot.localnet start;elif [[ ${OSRelease} =~ ‘RedHat‘ ]]; then echo "this is RedHat machine"; sed -i "s/${HOSTNAME}/${New_Hostname}/g" /etc/sysconfig/network; else echo "this is donnotknow";fi#3 Modify variblehostname ${New_Hostname}export HOSTNAME=${New_Hostname}echo "Hostname modify successfull!"#今天在写一个脚本遇到问题,----需要在sed中引入shell变量,在网上搜了变天才找到,经过测试##这四种方法都可用,在这里跟大家分享下,=---同时谢谢netman大哥,前辈就是前辈哈哈##1.eval sed ’s/$a/$b/’ filename#2.sed "s/$a/$b/" filename#3.sed ’s/’$a’/’$b’/’ filename#4.sed s/$a/$b/ filename
Linux修改主机名脚本-不重启-支持RedHat、SUSE
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。