超实用的脚本-同步时间、修改网卡及主机名、IP及密码

13 篇文章 1 订阅

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 打印出乱码进行调整哦。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值