近期常常須要對服務器添加lvm卷,因而寫了次腳本用於自動向lvm卷組添加磁盤,簡化了手工操做量bash
#!/bin/bash check_execution_result() { if [[ ! -z $RETVAL ]]; then unset RETVAL fi RETVAL=$? if [[ $RETVAL -ne 0 ]]; then echo execution failed exit $RETVAL else echo execution successfully fi } ONLINE_SCSI_DISK_PRESENT=$(lsblk --all | grep disk | grep -v fd | awk '{print $1}' | xargs) echo $ONLINE_SCSI_DISK_PRESENT read -p "input your choice:" ONLINE_SCSI_DISK_PRESENT echo "- - -" >/sys/class/scsi_host/host0/scan echo "- - -" >/sys/class/scsi_host/host1/scan echo "- - -" >/sys/class/scsi_host/host2/scan echo New Added SCSI Disk: $ONLINE_SCSI_DISK_PRESENT VG_Name=$(vgdisplay | grep 'VG Name' | awk '{print $NF}' | grep -i volgroup) VG_PATH_TO_EXTEND=$(lvdisplay | grep 'LV Path' | awk '{print $NF}' | grep root) fdisk $ONLINE_SCSI_DISK_PRESENT >/dev/null 2>&1<<eof n p 1 1 t 8e w eof check_execution_result LVM_OPERATION_DISK_FILENAME=$ONLINE_SCSI_DISK_PRESENT"1" pvcreate $LVM_OPERATION_DISK_FILENAME >/dev/null 2>&1 check_execution_result vgextend $VG_Name /dev/$LVM_OPERATION_DISK_FILENAME >/dev/null 2>&1 check_execution_result lvresize -l +100%FREE $VG_PATH_TO_EXTEND >/dev/null 2>&1 check_execution_result resize2fs $VG_PATH_TO_EXTEND >/dev/null 2>&1 check_execution_result