shell脚本实现虚拟机实验环境的简单配置

亲自写过shell脚本后才发现,这玩意真是太方便了,当你想把一些琐碎的、细节性的小指令一次性来完成时,脚本无疑是最好的选择,方便、快捷,关键是真是懒人必备啊。

由于安装的CentOS6.5是最小化安装,且是实验环境,即安装在vmware workstations上面,在首次安装完成后,配置完IP地址的相关信息后,就做了一个初始的快照,以便下次实验完后,可以通过快照快速还原系统。

但是由于实验环境的要求,例如防火墙、SELinux、光盘挂载、yum源配置等,都是最常需要修改的选项,并且由于最小化安装,系统里并没有vim编译工具和man手册的查询,所以导致每次还原快照后,还要处理这些琐碎的问题。为此,我就专门写了这么一个小脚本,内容并不复杂,但是也是一种学习过程,发出来和大家一起分享一下,顺便求指教......

#!/bin/bash
# Config some simple order when the system start
# Create by phoenix
 
# Specify the path
server=/etc/init.d
yum=/etc/yum.repos.d
mountdir=/media/cdrom
selinux=/etc/selinux/config
 
# stop the iptabes and set it can't start when the system start
$server/iptables stop &>/dev/null
if [ "$?" = "0" ]; then
  chkconfig iptables off
  chkconfig ip6tables off
  echo "1# The iptables stop successfully"
else
  echo "1# The iptables stop failed"
fi
 
# shutdown the selinxu system
setenforce 0 && sed -e 's/^SELINUX=enforcing/SELINUX=disabled/g' $selinux >$selinux.bak
mv -f $selinux.bak $selinux
echo "2# The selinux system is disabled"
 
# Mount the CD-ROM
mount |grep sr0 &>/dev/null
if [ ! "$?" = "0" ]; then
  if [ ! -e $mountdir ]; then
      mkdir -p $mountdir &>/dev/null
  else
      mount /dev/cdrom $mountdir &>/dev/null
      echo "3# The CD-ROM is mounting successfully"
  fi 
else
  echo "3# The CD-ROM is already mounted"
fi
 
# Config the source of yum
if [ -e $yum/CentOS-Base.repo ];then
  mv -f $yum/CentOS-Base.repo $yum/CentOS-Base.repo.bak &>/dev/null
else
  echo "4# Starting config the source of yum"
    sleep 3
fi
 
 sed  -e 's/^enabled=0/enabled=1/g' $yum/CentOS-Media.repo >$yum/CentOS-Media.repo.bak
 mv -f $yum/CentOS-Media.repo.bak $yum/CentOS-Media.repo>>/dev/null
 
yum clean all &>/dev/null &&echo "5# The source of yum configed successfully"
 
# Modify the code of language
echo "#LANG=zh_CN.UTF-8" >/etc/sysconfig/i18n
echo "6# The language is modify successfully"
 
# Install the tools "VIM" and "MAN"
echo "7# Starting install vim and man,please wait......"
sleep 3
yum install vim man -y &>/dev/null
 
# Reboot the system when all the work is done
echo "#########  All work is done  ########"
sleep 2
echo "Please wait the syatem restart......"
sleep 2
init 6

相关推荐