說明:我們公司服務器環境用的是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 打印出亂碼進行調整哦。
使用中如有問題可随時在下發評論處留言哦[中國贊] 關注我每天分享更多實用的運維知識哦[送心]
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!