shell 自动创建磁盘分区 PV 、VG、 LV

设计思路:

1、创建磁盘分区变量集合

devName=("vdb" "vdc" "vdd" "vde")

2、创建for循环,磁盘分区数量 /dev/vdb0~3,用于在for循环中if判断磁盘分区是否已经存在

if 判断条件 [[ -b "目录名称"]]

if [[ -b "/dev/{devName\[a]}1" ]];then

3、如磁盘分区不存在就创建磁盘分区 PV、VG、LV

在root用户下执行

cat diskcfg.sh

bash 复制代码
devName=("vdb" "vdc" "vdd" "vde")
for a in {0..3}
do
  echo "/dev/${devName[$a]}"
  # 判断磁盘是否存在
  ret0=`fdisk -l |grep /dev/${devName[$a]}`
  if [ "$ret0" == "" ];then
        echo "/dev/${devName[$a]} is not exit."
        continue;
  fi
    
  echo "$a"
  echo "/dev/${devName[$a]}1"
  if [[ -b "/dev/${devName[$a]}1" ]];then
     echo "这块磁盘已经分区,退出,请管理员检查"
  else
     echo "开始进行分区操作"
     echo "parted /dev/${devName[$a]} print"
        parted /dev/${devName[$a]} print
     echo "parted /dev/${devName[$a]} "mklabel gpt""
        parted /dev/${devName[$a]} "mklabel gpt ignore yes"
     echo "parted /dev/${devName[$a]} "mkpart primary xfs 1 -1""
        parted /dev/${devName[$a]} "mkpart primary xfs 1 -1 ignore"
     echo "parted /dev/${devName[$a]} "quit""
        parted /dev/${devName[$a]} "quit"
     echo "mkfs.xfs /dev/${devName[$a]}1"
       mkfs.xfs -f /dev/${devName[$a]}1
     echo "pvcreate /dev/${devName[$a]}1"
        pvcreate /dev/${devName[$a]}1 -y
     echo "mkdir /zol"
        if [ ! -d /zol ];then
            mkdir -p /zol
        fi

     echo "add /dev/${devName[$a]}1 to vgzol"
        vg=`vgs | awk '{if(NR>1){print $1}}' | grep "vgzol"`
        if [ "$vg" != "" ];then
            vgextend vgzol /dev/${devName[$a]}1 -f -y
        else
            vgcreate vgzol /dev/${devName[$a]}1 -f
        fi

     echo "add /dev/${devName[$a]}1 to lvzol"
        lv=`lvs | awk '{if(NR>1){print $1}}' | grep "lvzol"`
        if [ "$lv" != "" ];then
            lvresize -l +100%FREE -r /dev/vgzol/lvzol -f
        else
            lvcreate -n lvzol -L +2048G /dev/vgzol -y
            mkfs.xfs /dev/vgzol/lvzol
            mount /dev/vgzol/lvzol /zol
            echo "/dev/vgzol/lvzol /zol xfs defaults 0 0" >> /etc/fstab
        fi

     echo "df -h"
        df -h
     echo "----------------------------------------------------------------------------------"
  fi   
done
                                    
相关推荐
心灵宝贝2 小时前
CentOS 7 安装 bzip2-libs-1.0.6-13.el7.x86_64.rpm 的详细步骤
linux·运维·centos
mjx65303 小时前
windows查看端口使用情况,以及结束任务释放端口
linux
九皇叔叔4 小时前
Linux Shell 函数:从定义到实战,让脚本更高效
linux·运维·chrome·shell
璞致电子7 小时前
fpga开发板ZYNQ 璞致 PZ7010/7020 邮票孔核心板简介-ZYNQ7000系列小系统学习板
linux·嵌入式硬件·学习·fpga开发·fpga·fpga开发板·xilinx开发板
第四维度47 小时前
【全志V821_FoxPi】9-2 Linux IIC驱动MPU6050
linux·传感器·tina·mpu6050·v821
isyangli_blog7 小时前
(6)数据中心、台式(塔式)服务器、机架式服务器、刀片式服务器
运维·服务器
tq027 小时前
Cookie和Seeion在客户端和服务端的角色作用
运维·服务器·安全
青衫客368 小时前
浅谈 Protobuf——高效、安全的跨语言通信基石
服务器·安全·远程调用·protobuf
mjx65308 小时前
PyTorch快速入门
linux
Miki Makimura8 小时前
Reactor 模式实现:从 epoll 到高并发调试
运维·服务器·c++·学习