目录
DHCP脚本
仅供参考(不保证谁都可以使用)
#!/bin/bash
pzwj () {
read -p "输入网段:" NET #输入网段,ip去掉主机位
read -p "输入子网掩码:" MASK #输入子网掩码
read -p "输入地址池:" RANGE #输入主机池
read -p "输入dns:" DNS1 #首选dns
read -p "输入网关地址:" GATE #网关地址
read -p "输入广播地址:" BROA #广播地址
echo "subnet $NET netmask $MASK {" >> /etc/dhcp/dhcpd.conf
echo "range $RANGE;" >> /etc/dhcp/dhcpd.conf
echo "option domain-name-servers $DNS1;" >> /etc/dhcp/dhcpd.conf
echo 'option domain-name "internal.example.org";' >> /etc/dhcp/dhcpd.conf
echo "option routers $GATE;" >> /etc/dhcp/dhcpd.conf
echo "option broadcast-address $BROA;" >> /etc/dhcp/dhcpd.conf
echo "default-lease-time 600;" >> /etc/dhcp/dhcpd.conf
echo " max-lease-time 7200;" >> /etc/dhcp/dhcpd.conf
echo "}" >> /etc/dhcp/dhcpd.conf
#重启服务并判断是否成功
systemctl restart dhcpd &> /dev/null
if [ $? -eq 0 ]
then echo success!
else echo sorry!you are wrong!
fi
}
rpm -q dhcp &>/dev/null
if [ $? -eq 0 ]
then echo "已安装dhcp"
pzwj
else
yum install -y dhcp &>/dev/null
if [ $? -eq 0 ]
then echo "安装完成!"
pzwj
fi
fi
修改网卡信息脚本
仅供参考(不保证谁都可以使用)
#!/bin/bash
new(){
read -p "请输入你的IP地址:" host
read -p "请输入你的网关地址:" gate
sed -i "15a\\IPADDR=${host}" /etc/sysconfig/network-scripts/ifcfg-ens33
if
[ $? -eq 0 ]
then echo "地址修改成功"
else echo "地址修改失败"
fi
sed -i "16a\\NETMASK=255.255.255.0" /etc/sysconfig/network-scripts/ifcfg-ens33
if
[ $? -eq 0 ]
then echo "子网修改成功"
else echo "子网修改失败"
fi
sed -i "17a\\GATEWAY=${gate}" /etc/sysconfig/network-scripts/ifcfg-ens33
if
[ $? -eq 0 ]
then echo "网关修改成功"
else echo "网关修改失败"
fi
sed -i "18a\\DNS1=8.8.8.8" /etc/sysconfig/network-scripts/ifcfg-ens33
sed -i "19a\\DNS2=114.114.114.114" /etc/sysconfig/network-scripts/ifcfg-ens33
if
[ $? -eq 0 ]
then echo "DNS修改成功"
else echo "DNS修改失败"
fi
sed -i "s/ONBOOT=no/ONBOOT=yes/g" /etc/sysconfig/network-scripts/ifcfg-ens33
sed -i "s/BOOTPROTO=dhcp/BOOTPROTO=static/g" /etc/sysconfig/network-scripts/ifcfg-ens33
systemctl restart network
if
[ $? -eq 0 ]
then echo "网络服务重启成功"
else echo "网络服务重启失败"
fi
}
old(){
read -p "请输入你的IP地址:" host
read -p "请输入你的网关地址:" gate
sed -i.bak "s/IPADDR=.*/IPADDR=${host}/" /etc/sysconfig/network-scripts/ifcfg-ens33
if
[ $? -eq 0 ]
then echo "IP地址修改成功"
else echo "IP地址修改失败"
fi
sed -i "s/NETMASK=.*/NETMASK=255.255.255.0/" /etc/sysconfig/network-scripts/ifcfg-ens33
if
[ $? -eq 0 ]
then echo "子网修改成功"
else echo "子网修改失败"
fi
sed -i "s/GATEWAY=.*/GATEWAY=${gate}/" /etc/sysconfig/network-scripts/ifcfg-ens33
if
[ $? -eq 0 ]
then echo "网关修改成功"
else echo "网关修改失败"
fi
systemctl restart network
if
[ $? -eq 0 ]
then echo "网络服务重启成功"
else echo "网络服务重启失败"
fi
}
echo "
1 新建系统配置网卡
2 旧系统更换IP地址
3 退出脚本
"
read -p "请输入1,2,3:" i
case $i in
1)
new;;
2)
old;;
3)
exit;;
*)
echo "输入有误,请输入1或2";;
esac
编译安装nginx
仅供参考(不保证谁都可以使用)
#!/bin/bash
bb=`cat /etc/redhat-release | cut -d ' ' -f1`
if [ $bb = 'CentOS' ]
then echo "系统是CentOS系统"
echo "检测防火墙是否关闭"
systemctl status firewalld.service |grep 'running'
if [ $? -eq 0 ]
then echo "防火墙处于开启状态,关闭防火墙"
systemctl stop firewalld.service
if [ $? -eq 0]
then echo "防火墙已关闭"
else echo "防火墙未关闭"
fi
else echo "防火墙处于关闭状态"
fi
aa=`getenforce`
if [ $aa = "Enforcing" ]
then echo "seLinux处于开启状态,关闭seLinux"
setenforce 0
if [ $? -eq 0]
then echo "seLinux已关闭"
else echo "seLinux未关闭"
fi
else echo "seLinux处于关闭状态"
fi
rpm -q nginx &>/dev/null
if [ $? -eq 0 ]
then echo "已安装nginx"
else read -p "没有安装nginx,是否安装(yes|no)" button
button=`echo $button | tr 'A-Z' 'a-z'`
case $button in
y|yes)
mkdir /nginx
cd /nginx
echo "客官,请稍等片刻"
wget http://nginx.org/download/nginx-1.18.0.tar.gz &>/dev/null
if [ $? -eq 0 ]
then echo "下载完成,开始安装nginx"
tar xf ./nginx-1.18.0.tar.gz
mkdir nginx
rm -rf ./*.gz
cd /nginx/nginx-1.18.0
echo "安装配置环境"
yum -y install pcre-devel zlib-devel gcc gcc-c++ make &>/dev/null
if [ $? -eq 0 ]
then echo "配置环境安装完成"
else echo "配置环境安装失败"
exit
fi
./configure --prefix=/nginx/nginx &>/dev/null
if [ $? -eq 0 ]
then echo "系统检测完成"
make -j2 &>/dev/null
if [ $? -eq 0 ]
then make install &>/dev/null
if [ $? -eq 0 ]
then echo "拷贝完成"
else echo "拷贝出错"
fi
else echo "编译出错"
fi
else echo "系统检测失败"
fi
touch /lib/systemd/system/nginx.service
echo "
[Unit]
Description=nginx - high performance web server
[Service]
PIDFile=/nginx/nginx/logs/nginx.pid
ExecStart=/nginx/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
[Install]
WantedBy=multi-user.target
" > /lib/systemd/system/nginx.service
systemctl daemon-reload
if [ $? -eq 0 ]
then echo "系统重新加载成功"
else echo "系统重新加载失败"
fi
systemctl start nginx
if [ $? -eq 0 ]
then echo "nginx启动成功"
else echo "nginx启动失败"
fi
else echo "下载失败"
fi
;;
n|no)
exit
;;
*)
echo "请输入正确指令!"
bash $0
;;
esac
fi
else echo "系统不是CentOS"
exit
fi
pxe批量装机脚本
仅供参考(不保证谁都可以使用)此代码仅限于本人使用,其他人使用需要修改内容
#!/bin/bash
#dhcp配置
pzwj () {
echo 'subnet 192.168.3.0 netmask 255.255.255.0 {
range 192.168.3.15 192.168.3.50;
option domain-name-servers 8.8.8.8;
option domain-name "internal.example.org";
option routers 192.168.3.2;
option broadcast-address 192.168.3.255;
next-server 192.168.3.100;
filename "pxelinux.0";
default-lease-time 600;
max-lease-time 7200;
}' > /etc/dhcp/dhcpd.conf
if [ $? -eq 0 ]
then echo "写入成功!"
else echo "写入失败!!!"
fi
#重启服务并判断是否成功
systemctl restart dhcpd &> /dev/null
if [ $? -eq 0 ]
then
echo "DHCP启动成功!"
else
echo sorry!you are wrong!
fi
}
#tftp配置
pz () {
sed -in '/disable/s#yes#no#' /etc/xinetd.d/tftp
if [ $? -eq 0 ]
then echo "修改成功!"
#启动tftp
systemctl start tftp &> /dev/null
if [ $? -eq 0 ]
then echo "tftp启动成功!"
else echo "tftp启动失败!"
fi
else echo "修改失败!"
fi
}
#检测vsftpd是否安装
vs () {
rpm -q vsftpd &> /dev/null
if [ $? -eq 0 ]
then echo "已安装vsftpd"
systemctl start vsftpd &> /dev/null
if [ $? -eq 0 ]
then echo "vsftpd开启成功!"
else echo "vsftpd开启失败!"
fi
else echo "未安装vsftpd"
yum install -y vsftpd &> /dev/null
if [ $? -eq 0 ]
then echo "vsftpd安装成功!"
systemctl start vsftpd &> /dev/null
else echo "vsftpd安装失败!"
fi
fi
}
#拷贝四大文件
cop () {
vs
cd /var/ftp
echo '#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $1$fr3DI5TM$Fw8T9r3Mq/FG/RlnBbH5k0
# Use network installation
url --url="ftp://192.168.3.100/centos7"
# System language
lang zh_CN
# Firewall configuration
firewall --disabled
# System authorization information
auth --useshadow --passalgo=sha512
# Use text mode install
text
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="xfs" --size=4096
part swap --fstype="swap" --size=4096
part / --fstype="xfs" --grow --size=1
'>ks.cfg
mkdir centos7
mount /dev/sr0 centos7
if [ $? -eq 0 ]
then echo "挂载成功!"
cd centos7/images/pxeboot
cp initrd.img /var/lib/tftpboot
cp vmlinuz /var/lib/tftpboot
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
cd /var/lib/tftpboot
mkdir pxelinux.cfg
cd pxelinux.cfg
touch default
echo '
default heitui
timeout 600
labrel heitui
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.3.100/centos7 ks=ftp://192.168.3.100/ks.cfg
label linux test
kernel vmlinuz
append test initrd=initrd.img method=ftp://192.168.3.100/centos7 ks=ftp://192.168.3.100/ks.cfg
label linux recuse
kernel vmlinuz
append recuse initrd=initrd.img method=ftp://192.168.3.100/centos7 ks=ftp://192.168.3.100/ks.cfg
'>default
else echo "挂载失败!"
fi
}
#检测防火墙,selinux是否关闭
ch () {
systemctl status firewalld.service|grep "running" &> /dev/null
if [ $? -eq 0 ]
then echo "防火墙处于打开状态,关闭防火墙"
systemctl stop firewalld.service
else echo "防火墙处于关闭状态"
fi
getenforce | grep "enforcing"
if [ $? -eq 1 ]
then echo "selinux已关闭!"
else echo "selinux未关闭!"
setenforce 0 &> /dev/null
fi
}
ch
#检测syslinux是否安装
rpm -q syslinux &> /dev/null
if [ $? -eq 0 ]
then echo "syslinux已安装!"
else echo "syslinux未安装!"
yum install -y syslinux &> /dev/null
if [ $? -eq 0 ]
then echo "syslinux安装成功!"
else echo "syslinux安装失败!"
fi
fi
#检测dhcp是否安装,配置dhcp文件,启动dhcp
rpm -q dhcp &>/dev/null
if [ $? -eq 0 ]
then
echo "已安装dhcp"
pzwj
else
yum install -y dhcp &>/dev/null
if [ $? -eq 0 ]
then echo "安装完成!"
pzwj
fi
fi
#检测vsftpd是否安装
rpm -q vsftpd &> /dev/null
if [ $? -eq 0 ]
then echo "vsftpd已安装!"
else echo "vsftpd未安装!"
yum install -y vsftpd &> /dev/null
if [ $? -eq 0 ]
then echo "vsftpd安装成功!"
else echo "vsftpd安装失败!"
fi
fi
#检测tftp是否安装,配置tftp配置文件,启动tftp
rpm -q tftp-server &>/dev/null
if [ $? -eq 0 ]
then echo "已安装tftp!"
pz
else echo "未安装tftp!"
yum install -y tftp-server &>/dev/null
if [ $? -eq 0 ]
then echo "安装成功!"
pz
else echo "安装失败!"
fi
fi
cop