1. #!/bin/bash
    2. #auther chentongsan,time 2019-05-30
    3. #Description: 适用于系统根分区扩容
    4. #扫描总线,识别新增添加的磁盘。
    5. echo "- - -" > /sys/class/scsi_host/host0/scan
    6. echo "- - -" > /sys/class/scsi_host/host1/scan
    7. echo "- - -" > /sys/class/scsi_host/host2/scan
    8. #检测新加磁盘的盘符、扩展VG及磁盘大小
    9. DIVISOR=1073741824
    10. DISK_NAME=fdisk -l | grep "Disk /dev/sd" | awk -F '[ :]+' '{print $2}'
    11. for disk in ${DISK_NAME[*]};do
    12. df_disk=df -h | grep $disk | wc -l
    13. if [[ $df_disk -eq 0 ]];then
    14. pvs_disk=pvs | grep $disk | wc -l
    15. if [[ $pvs_disk -eq 0 ]];then
    16. new_disk_size=fdisk -l | grep "$disk" | awk -F '[ ,:]+' '{print $5}'
    17. new_disk_size_G=$(($new_disk_size/$DIVISOR))
    18. echo "检测到新磁盘:$disk 容量为:${new_disk_size_G}G"
    19. echo "开始创建PV、扩展VG"
    20. #创建PV、扩展VG
    21. pvcreate $disk
    22. VG_NAME=lvdisplay | grep "VG Name" | awk '{print $3}'
    23. LV_PATH=lvdisplay | grep "LV Path" | awk '{print $3}'
    24. vgextend $VG_NAME $disk
    25. lvresize -l +100%FREE $LV_PATH
    26. resize2fs $LV_PATH
    27. echo "$LV_PATH / ext4 defaults 0 0" >> /etc/fstab
    28. fi
    29. fi
    30. done
    31. echo "根分区扩容完成,请检查确认!"