说明:我们公司服务器环境用的是vmware虚拟化架构,每次将模板克隆为虚拟机后,都需要手动需修改主机名、IP地址、网卡名称、用户名密码修改(满足复杂度要求)以及时间同步等,故抽闲时间写了一个自动修改的脚本,此脚本适用于centos6和redhat6版本,要想其他版本也能跑,可自行做个简单的修改即可(基本都大同小异)
脚本内容:
#!/bin/bash
########################################
####ALOM ##########################
####by ALOM 20201206###########
##########################
/usr/sbin/ntpdate 10.100.22.166 ###ntp时间同步服务器IP地址
/bin/date
echo " 时间校验成功 "
. /etc/init.d/functions
###功能:1,修改网卡名称为eth0## 2,IP地址##3,注释mac缓存##4,修改主机名##5,修改密码##
Hostname=`awk -F= '$1~/^HOSTNAME$/{print $2}' /etc/sysconfig/network`
Ethname=`find /etc/sysconfig/network-scripts -type f -name "ifcfg-eth*"`
Ethnames=`find /etc/sysconfig/network-scripts -type f -name "ifcfg-eth*"|awk -F"[/-]" '{print $NF}'`
Ethnamed="/etc/sysconfig/network-scripts/ifcfg-eth0"
Ipeth0=`awk -F= '$1~/^IPADDR$/{print $2}' ${Ethname}`
change_eth(){
if [ -f $Ethnamed ]
then
echo "网卡eth0 already esist"
else
mv ${Ethname} ${Ethnamed}
sed -i "s#${Ethnames}#eth0#g" ${Ethnamed} &&\
action "网卡名称修改为eth0" /bin/true
fi
}
change_ip(){
read -p "请输入你需要修改的网卡IP,例如:10.0.0.xx.请输入:" a
ping -w 1 -c 1 $a
if [ $? -eq 0 ]
then
echo "$a is already use"
else
sed -i "s#${Ipeth0}#${a}#g" /etc/sysconfig/network-scripts/ifcfg-eth0
if [ $? -eq 0 ]
then action "网卡IP${a}配置完成" /bin/true
else echo -e "\033[42;37mERROR:网卡IP${a}配置失败请检查\033[0m"
exit 1
fi
fi
}
change_hostname(){
read -p "请输入你要配置的主机名,例如:web01.请输入:" c
hostname $c && action "命令行修改主机名$c" /bin/true
sed -i "s#${Hostname}#${c}#g" /etc/sysconfig/network
if [ $? -eq 0 ]
then action "主机名${c}配置完成" /bin/true
else echo -e "\033[42;37mERROR:${c}配置失败请检查脚本\033[0m"
exit 1
fi
}
change_maclog(){
sed -i 's#^SUBSYSTEM#\#SUBSYTEM#g' /etc/udev/rules.d/70-persistent-net.rules
action "/etc/udev/rules.d/70-persistent-net.rules 已经全部注释" /bin/true
}
change_password(){
pass=`uuidgen|cut -c 29-`
echo "$pass"|passwd --stdin root &&\
echo -e "\033[41;37m $pass 牢记 \033[0m"
#echo "$pass" >>/tmp/pass.txt
#cat /tmp/pass.txt
}
weblogic_password(){
passweb=`uuidgen|cut -c 29-`
echo "$passweb"|passwd --stdin weblogic &&\
echo -e "\033[41;37m weblogic/$passweb 牢记 \033[0m"
#echo "weblogic/$passweb" >>/tmp/pass.txt
#cat /tmp/pass.txt
}
change_host(){
echo "${a} ${c}" >>/etc/hosts
}
main(){
change_eth
change_ip
change_hostname
change_maclog
change_password
weblogic_password
change_host
}
main
while true
do
cat<<EOF
请在您10秒内做出选择选择菜单如下:
1.重启网卡
2.稍后重启,并退出脚本
3.重启系统reboot
EOF
echo -e "\033[41;37m请牢记密码,再进行选择\033[0m"
read -p "竭诚为您服务,请输入你的选择:" d
case "$d" in
1)
echo -e "\033[41;37m您已经选择重启网卡,远程连接会断开,请在远程管理界面修改主机IP和密码之后重连,欢迎下次使用\033[0m"
/etc/init.d/network restart
exit
;;
2)
echo -e "\033[41;37m您已经选择稍后重启网卡,重启网卡命令'/etc/init.d/network restart',欢迎下次使用\033[0m"
exit 2
;;
3)
echo -e "\033[41;37m您已经选择稍后重启系统reboot,欢迎下次使用\033[0m"
reboot
;;
*)
echo -e "\033[41;37m您的输入有误,请输入\n1:重启网卡\n2:稍后重启网卡并退出脚本\n请在5秒后重新输入\033[0m"
;;
esac
sleep 5
done
效果展示:
提示:如果有想用此脚本的朋友需要注意从windows上复制粘贴到Linux系统下可能会有字符集乱码的情况,可使用cat -A 脚本|more 打印出乱码进行调整哦。
使用中如有问题可随时在下发评论处留言哦[中国赞] 关注我每天分享更多实用的运维知识哦[送心]
,