目录
提示:脚本仅供参考 如有不足 欢迎交流学习😀
Shell脚本配置DHCP
#!/bin/bash
read -p "Please Enter Your IP ADDRESS: " net
yum install -y dhcp &>/dev/null
cp -p /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
echo "ddns-update-style none;
subnet `echo $net | cut -d '.' -f 1-3`.0 netmask 255.255.255.0 {
range `echo $net | cut -d '.' -f 1-3`.40 `echo $net | cut -d '.' -f 1-3`.50;
option routers $net;
option domain-name-servers 114.114.114.114;
next-server $net;
filename \"pexlinux.0\";
}">> /etc/dhcp/dhcpd.conf
systemctl enable --now dhcpd
systemctl status dhcpd | sed -n "3p" | awk '{print "DHCP服务状态:"$1,$2,$3}'
Shell脚本配置DNS
#!/bin/bash
read -p "输入域名(form:###.com):" dn
read -p "输入IP:" p
yum install bind bind-utils.x86_64 -y &>/dev/null
sed -i '/listen-on/s/any/$p/' /etc/named.conf
sed -i '/allow-query/s/any/`echo $p | cut -d'.' -f1-3`.0/24/' /etc/named.conf
sed -i 's/localhost.localdomain/$p' /etc/named.rfc1912.zones
sed -i '1,named.localhost/{s/named.localhost/$dn.zone/}' /etc/named.rfc1912.zones
touch /var/named/$dn.zone
cp -p /named.localhost ./$dn.zone
cat >> /var/named/$dn.com.zone <<EOF
$TTL 1D
@ IN SOA $dn. admin.$dn. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H) ; minimum
NS $dn.
A $p
AAAA ::1
IN MAX 10 mail.$dn.
WWW IN A $p
mail IN A $p1
ftp IN A CHAME www
* IN A $p0
EOF
systemctl start named
echo "DNS服务状态:`systemctl status named | sed -n '3p'`"
echo "--------------------------------------------------------------"
echo "DNS服务已配置完成!"
echo "--------------------------------------------------------------"
Shell脚本配置LVM
#!/bin/bash
lsblk
read -p "请输入磁盘 如sdb 只能输入一个:" device
fdisk /dev/$device << EOF
n
p
t
8e
w
EOF
disk="/dev/${device}1"
read -p "请选择扩展或创建 'extend' or 'create' :" i
if [ $i == create ] ;then
read -p "vgname:" vgname
read -p "lvname:" lvname
read -p "请选择挂载目录位置,可以自动创建:" dir
pvcreate $disk
vgcreate $vgname $disk
lvcreate -l 100%FREE -n $lvname $vgname
mkfs.ext4 /dev/$vgname/$lvname
mkdir -p $dir
echo "/dev/$vgname/$lvname $dir ext4 defaults 1 1" >> /etc/fstab
mount -a
df -Th
elif [ $i == extend ] ;then
vgdisplay | grep -e 'VG Name' -e 'VG Size'
read -p "vgname:" vgname
lvdisplay | grep -e 'LV Path' -e 'LV Size'
read -p "lvname:" lvname
vgextend $vgname $disk
lvextend -l +100%FREE /dev/$vgname/$lvname
resize2fs /dev/$vgname/$lvname
df -Th
fi
Shell脚本配置RAID
#!/bin/bash
echo "-------------------------------------------------------------"
lsblk
echo "-------------------------------------------------------------"
echo -e "这是一个创建RAID的脚本程序\n1、RAID 1\n2、RAID 5\n3、RAID 10\n4、没有合适的设备,我还是先去做磁盘分区吧"
read -p "请输入选择:" i
yum -y install mdadma &>>/dev/null
RAID1(){
read -p "开始创建RAID1,请输入要操作的磁盘分区:(见以上信息,输入/dev/sd** /dev/sd**)" disks1 disks2
read -p "请输入要创建的RAID名称:" md
mdadm -C -v /dev/$md -l1 -n2 $disks1 $disks2
read -p "输入RAID要挂载的目录:" dir
read -p "RAID格式化的文件系统为:" fs
mkdir /$dir/$md
mkfs.$fs /dev/$md
echo "/dev/$md /$dir $fs defaults 0 0 " >>/etc/fstab
mount -a
df -Th | grep "$dir" &>/dev/null
if [ $? -eq 0 ];then
echo "RAID 1创建完成,挂载目录为$dir"
else
echo "RAID 1挂载失败!"
fi
}
RAID5(){
read -p "开始创建RAID5,请输入要操作的磁盘分区:(见以上信息,输入/dev/sd** /dev/sd** /dev/sd** /dev/sd**)" disks1 disks2 disks3
read -p "请输入要创建的RAID名称:" md
mdadm -C -v /dev/$md -l5 -n3 $disks1 $disks2 $disks3
read -p "输入RAID要挂载的目录:" dir
read -p "RAID格式化的文件系统为:" fs
mkdir /$dir/$md
mkfs.$fs /dev/$md
echo "/dev/$md /$dir $fs defaults 0 0 " >>/etc/fstab
mount -a
df -Th | grep "$dir" &>/dev/null
if [ $? -eq 0 ];then
echo "RAID 5创建完成,挂载目录为$dir"
else
echo "RAID 5挂载失败!"
fi
}
RAID10()
{
read -p "开始创建RAID10,请输入要操作的磁盘分区:(见以上信息,输入/dev/sd** /dev/sd** /dev/sd** /dev/sd**)" disks1 disks2 disks3 disks4
read -p "请输入要创建的RAID名称:" md
mdadm -C -v /dev/$md -l10 -n3 $disks1 $disks2 $disks3 $disks4
read -p "输入RAID要挂载的目录:" dir
read -p "RAID格式化的文件系统为:" fs
mkdir /$dir/$md
mkfs.$fs /dev/$md
echo "/dev/$md /$dir $fs defaults 0 0 " >>/etc/fstab
mount -a
df -Th | grep "$dir" &>/dev/null
if [ $? -eq 0 ];then
echo "RAID 10创建完成,挂载目录为$dir"
else
echo "RAID 10挂载失败!"
fi
}
echo "-----------------------------------------------------------------------------------"
lsblk
echo "-----------------------------------------------------------------------------------"
case $i in
1)
RAID1
;;
2)
RAID5
;;
3)
RAID10
;;
4)
exit
;;
*)
echo "erro"
;;
esac
Shell脚本搭建yum
#!/bin/bash
mkdir -p /etc/yum.repos.d/bak/
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/
touch /etc/yum.repos.d/ali.repo
touch /etc/yum.repos.d/epel.repo
touch /etc/yum.repos.d/epel-testing.repo
echo "[ali]
name=ali
baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/
gpgcheck=0
[epel]
name=epel
baseurl=https://mirrors.aliyun.com/centos/7/extras/x86_64/
gpgcheck=0
[update]
name=update
baseurl=https://mirrors.aliyun.com/centos/7/updates/x86_64/
gpgcheck=0" >>/etc/yum.repos.d/ali.repo
echo "[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
[epel-debuginfo]
name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch/debug
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1
[epel-source]
name=Extra Packages for Enterprise Linux 7 - $basearch - Source
#baseurl=http://download.fedoraproject.org/pub/epel/7/SRPMS
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1">>/etc/yum.repos.d/epel.repo
echo "[epel-testing]
name=Extra Packages for Enterprise Linux 7 - Testing - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/testing/7/$basearch
metalink=https://mirrors.fedoraproject.org/metalink?repo=testing-epel7&arch=$basearch
failovermethod=priority
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
[epel-testing-debuginfo]
name=Extra Packages for Enterprise Linux 7 - Testing - $basearch - Debug
#baseurl=http://download.fedoraproject.org/pub/epel/testing/7/$basearch/debug
metalink=https://mirrors.fedoraproject.org/metalink?repo=testing-debug-epel7&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1
[epel-testing-source]
name=Extra Packages for Enterprise Linux 7 - Testing - $basearch - Source
#baseurl=http://download.fedoraproject.org/pub/epel/testing/7/SRPMS
metalink=https://mirrors.fedoraproject.org/metalink?repo=testing-source-epel7&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1">>/etc/yum.repos.d/epel-testing.repo
Shell脚本磁盘分区
#!/bin/bash
echo "已存在分区有:"
echo "------------------------------------------------"
lsblk | awk -F " " '{print $1"\t"$4}'
echo "------------------------------------------------"
echo "提示:目前功能不完善,仅支持默认大小及分区创建"
read -p "请输入您要创建的分区格式为(sda):" A
read -p "请输入创建的分区大小(单位自定义MB、G):" B
fdisk /dev/$A <<EOF >/dev/null
n
p
+$B
wq
EOF
lsblk | grep $A
echo "创建结果请自行查看^-^"