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
                                    
相关推荐
Thecozzy23 分钟前
Skill和MCP和Subagent 的选择
linux·人工智能·ubuntu
梦想的旅途244 分钟前
利用 API 实现企业微信消息自动化推送
运维·自动化·企业微信
Acrellea1 小时前
固态变压器(SST)热管理破局:安科瑞交直流专属测温方案护航无人值守运维
运维·网络
寒冰碧海1 小时前
大模型部署从0到1(一):通用环境全流程准备|NVIDIA驱动+Docker+NVIDIA Container Toolkit
运维·docker·容器
硬核子牙1 小时前
代码展示大模型的智能
linux·chatgpt·agent
风曦Kisaki1 小时前
# Linux 系统资源查看命令总结(附命令快查表)
linux·运维·服务器
清水白石0082 小时前
Python 类定义阶段自动注册子类:从 `__init_subclass__` 到插件系统实战
linux·前端·python
蝶恋舞者2 小时前
DNS 服务器(后续持续更新)
运维·服务器
jiang_changsheng2 小时前
Conda 的默认环境创建优先级。
linux·windows·python
smallerxuan2 小时前
Linux 设备树(Device Tree)概览
linux·设备树·dts