#!/bin/bash
#This shell can help you to set the IP/selinux/iptables/hostname/DHCP/HTTP/FTP/DNS
#This shell is write by Robin
#全局变量:
#sys:0为7版本,1为6版本
echo -e "\033[1;32m##########################\033[31m欢迎使用自动配置脚本\033[32m##########################\033[0m"
echo -e "\033[1;32m# 该脚本由罗斌编写,用于帮助配置新装服务器 #\033[0m"
echo -e "\033[1;32m# 功能包括:网卡设置 #\033[0m"
echo -e "\033[1;32m# 安全防护、防火墙及selinux配置 #\033[0m"
echo -e "\033[1;32m# yum源配置 #\033[0m"
echo -e "\033[1;32m# DHCP服务安装及配置 #\033[0m"
echo -e "\033[1;32m# HTTP服务安装及配置 #\033[0m"
echo -e "\033[1;32m# FTP服务安装及配置 #\033[0m"
echo -e "\033[1;32m# dns服务安装及配置 #\033[0m"
echo -e "\033[1;32m########################################################################\033[0m"
echo ""
#主菜单(Main menu)
main(){
echo -e "\033[1;32m#################################\033[31m主菜单\033[32m#################################\033[0m"
echo -e "\033[1;32m1、网卡设置\033[0m"
echo -e "\033[1;32m2、安全防护\033[0m"
echo -e "\033[1;30m3、selinux设置\033[0m"
echo -e "\033[1;32m4、防火墙设置\033[0m"
echo -e "\033[1;32m5、yum源配置\033[0m"
echo -e "\033[1;32m6、DHCP服务安装及配置\033[0m"
echo -e "\033[1;32m7、HTTP服务安装及配置\033[0m"
echo -e "\033[1;32m8、FTP服务安装及配置\033[0m"
echo -e "\033[1;32m9、DNS服务安装及配置\033[0m"
echo -e "\033[1;31m10、按任意键退出程序\033[0m"
read -p `echo -e "\033[1;32m请选择功能:\033[1;31m"` choose
echo -e "\033[0m"
echo $choose | grep [1-9] &> /dev/null
if [ $? -eq 0 ]
then
root
fi
syscheck
case $choose in
1)
echo -e "\033[1;32m################################\033[31m网卡设置\033[32m################################\033[0m"
network
;;
2)
echo -e "\033[1;32m################################\033[31m安全设置\033[32m################################\033[0m"
security
;;
3)
echo -e "\033[1;31m尚未编写\033[0m"
main
;;
4)
echo -e "\033[1;32m###############################\033[31m防火墙设置\033[32m###############################\033[0m"
if [ $sys -ne 0 ]
then
sh iptableset.sh $sys
else
sh firewall.sh
fi
main
;;
5)
echo -e "\033[1;32m###############################\033[31myum源配置\033[32m################################\033[0m"
yumset
main
;;
6)
echo -e "\033[1;32m####################\033[0m\033[1;31m欢迎使用DHCP自动安装配置脚本\033[0m\033[1;32m########################\033[0m"
check
;;
7)
echo -e "\033[1;32m##########################\033[31mHTTP服务安装及配置\033[32m############################\033[0m"
html
;;
8)
echo -e "\033[1;32m###########################\033[31mFTP服务安装及配置\033[32m############################\033[0m"
softset "vsftpd-*"
;;
9)
echo -e "\033[1;32m###########################\033[31mDNS服务安装及配置\033[32m############################\033[0m"
softset "bind-9*" "bind-libs-*" "bind-utils-*" "bind-chroot-*"
;;
*)
echo -e "\033[1;31m退出程序……\033[0m"
exit
esac
}
#DNS自动安装配置
softset(){
echo -e "\033[1;32m1、rpm包安装\033[0m"
echo -e "\033[1;32m2、yum安装\033[0m"
echo -e "\033[1;32m3、一键配置\033[0m"
echo -e "\033[1;31m4、按任意键返回主菜单\033[0m"
read -p `echo -e "\033[1;32m请选择功能:\033[1;31m"` choose
echo -e "\033[0m"
case $choose in
1)
for name in $*
do
if [ $# -gt 1 ]
then
echo -e "\033[1;32m开始安装$name\033[0m"
fi
rpm -q $name &> /dev/null
if [ $? -eq 0 ]
then
echo -e "\033[1;31m该软件已安装!"
echo ""
softset $*
else
rpminstall $name
if [ $? -ne 0 ]
then
break
fi
fi
done
echo ""
softset $*
;;
2)
rpm -q $* &> /dev/null
if [ $? -eq 0 ]
then
echo -e "\033[1;31m该软件已安装!"
echo ""
softset $*
else
yuminstall $*
fi
echo ""
softset $*
;;
3)
echo $* | egrep "bind" &> /dev/null
if [ $? -eq 0 ]
then
sh dnsset.sh $sys
else
sh ftpset.sh $sys
fi
echo -e "\033[1;31m配置完成\033[0m"
echo ""
softset $*
;;
*)
main
echo ""
esac
}
#http自动安装配置
html(){
echo -e "\033[1;32m1、rpm包安装\033[0m"
echo -e "\033[1;32m2、yum安装\033[0m"
echo -e "\033[1;30m3、一键配置\033[0m"
echo -e "\033[1;31m4、按任意键返回主菜单\033[0m"
read -p `echo -e "\033[1;32m请选择功能:\033[1;31m"` choose
echo -e "\033[0m"
case $choose in
1)
rpm -q httpd &> /dev/null
if [ $? -eq 0 ]
then
echo -e "\033[1;31m该软件已安装!"
echo ""
html
else
rpminstall "httpd-2"
fi
echo ""
html
;;
2)
rpm -q httpd &> /dev/null
if [ $? -eq 0 ]
then
echo -e "\033[1;31m该软件已安装!"
echo ""
html
else
yuminstall "httpd"
fi
echo ""
html
;;
3)
html
;;
*)
main
echo ""
esac
}
#yum安装:$1=安装包名称
yuminstall(){
echo -e "\033[1;32m正在检测是否联网,请稍后……\033[0m"
ping -c 4 mirrors.aliyun.com &> /dev/null
if [ $? -eq 0 ]
then
echo -e "\033[1;32m网络正常\033[0m"
yum install -y $*
if [ $? -eq 0 ]
then
echo -e "\033[1;32m安装成功\033[0m"
else
echo -e "\033[1;31m安装失败\033[0m"
fi
else
echo -e "\033[1;31m网络异常\033[0m"
fi
}
#rpm安装:参数$1=安装包名称(非全称可在名称末尾加*,但有可能导致安装多余软件包)
rpminstall(){
while true
do
read -p `echo -e "\033[1;32m安装前请先放入光盘(按任意键继续)\033[0m"`
umount /dev/cdrom &> /dev/null
mount /dev/cdrom /media/ &> /dev/null
if [ $? -ne 0 ]
then
echo -e "\033[1;32挂载光盘失败,请检查是否放入光盘!\033[0m"
continue
fi
break
done
file="/media/Packages/$1*"
rpm -ivh $file 2> err
if [ $? -ne 0 ]
then
list=`awk '/ 需要/||/needed by/{print $1}' err | sed 's/(.*)//g'`
if [ -z "$list" ]
then
echo -e "\033[1;31m安装失败!失败原因请查看本目录下的err文件\033[0m"
return 1
else
echo -e "\033[1;31m有依赖软件未安装,尝试打包安装\033[0m"
pn="$file"
for name in $list
do
pn="$pn /media/Packages/$name*"
done
pn2=`echo $pn | sed 's/\\n//g' | sed 's/\/media\/Packages\///g'`
echo -e "\033[1;31m$pn2\033[0m"
rpm -ivh $pn 2> err
if [ $? -ne 0 ]
then
echo -e "\033[1;31m安装失败!\033[0m"
return 1
else
echo -e "\033[1;32m安装成功!\033[0m"
return 0
fi
fi
else
echo -e "\033[1;32m安装成功!\033[0m"
return 0
fi
}
#防火墙设置
iptableset(){
echo -e "\033[1;32m1、SNAT设置\033[0m"
echo -e "\033[1;32m2、DNAT设置\033[0m"
echo -e "\033[1;31m3、按任意键返回主菜单\033[0m"
read -p `echo -e "\033[1;32m请选择功能:\033[1;31m"` choose
echo -e "\033[0m"
case $choose in
1)
iptableset
;;
2)
iptableset
;
Linux服务器自动配置脚本
需积分: 50 7 浏览量
2020-01-10
22:13:50
上传
评论 1
收藏 13KB RAR 举报
元芳很忙
- 粉丝: 184
- 资源: 1