Shell脚本一键部署小服务

目录

Shell脚本配置DHCP

Shell脚本配置DNS

Shell脚本配置LVM

Shell脚本配置RAID

Shell脚本搭建yum

Shell脚本磁盘分区


 提示:脚本仅供参考 如有不足 欢迎交流学习😀

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 "创建结果请自行查看^-^"

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值