1064;터넷에서 돌아 다니lj16; 확1109; 스크립트 1676;1665;기 Ȣ16;였습니다.
CentOS 7.x 버1204;에서 테스트 .104;었1004;며
/dev/sda 만 1080;lj16; ᅆ1;우 테스트 .104;었습니다.
/dev/sdb 까1648; 1080;lj16; ᅆ1;우lj16; 테스트 안.120;.
감사합니다.
#-----------------------------------------------------------------------------------------------------------------------------
#!/bin/bash
##################################################################################
# Get OS Type
##################################################################################
OS_ID=`cat /etc/os-release | grep -E "^ID=" | sed -e 's/ID=//g' | sed -e 's/"//g'`
OS_VER=`cat /etc/os-release | grep -E "^VERSION_ID=" | sed -e 's/VERSION_ID=//g' | sed -e 's/"//g'`
OS_TYPE=$OS_ID"-"$OS_VER
echo "OS_TYPE = $OS_TYPE"
function resize_disk_2 {
160; 160;160;local DISK=$1
160; 160;160;local PV_NAME_CNT=`pvdisplay | grep -A 1 $DISK | grep "PV Name" | awk '{print $3}' | wc -l`
160; 160;160;local PT_NAME=`pvdisplay | grep -A 1 $DISK | grep "PV Name" | awk '{print $3}' | sed -n "$PV_NAME_CNT"p`
160; 160;160;local PT_NUM=`echo $PT_NAME | awk '{print $1}' | rev | cut -c -1`
160; 160;160;PT_TYPE=`mount | grep ^/dev | awk '{if($3 == "/") print $5}'`
160; 160;160;FILE_SYSTEM=`mount | grep ^/dev | awk '{if($3 == "/") print $1}'`
160; 160;160;PARTED_SUPPORT_RESIZEPART=`parted --help | grep "resizepart" | awk '{print $1}'`
160; 160;160;echo "========== resize_disk_2 =============="
160; 160;160;echo "DISK[$DISK], PV_NAME_CNT[$PV_NAME_CNT], PT_NAME[$PT_NAME], PT_NUM[$PT_NUM], PT_TYPE[$PT_TYPE], FILE_SYSTEM[$FILE_SYSTEM]"
160; 160;160;if [ "$PARTED_SUPPORT_RESIZEPART" = "resizepart" ]; then
160; 160; 160; 160;160;echo "[parted] program supports resizepart."
160; 160;160;else
160; 160; 160; 160;160;echo "[parted] program does not support resizepart. so, update processing parted program..."
160; 160; 160; 160;160;case $OS_TYPE in
160; 160; 160; 160; 160; 160;160;"ubuntu-18.04")160;
160; 160; 160; 160; 160; 160; 160; 160;160;apt-get -y install --only-upgrade parted
160; 160; 160; 160; 160; 160; 160; 160;160;;;
160; 160; 160; 160; 160; 160;160;"centos-7")160;
160; 160; 160; 160; 160; 160; 160; 160;160;yum -y update parted
160; 160; 160; 160; 160; 160; 160; 160;160;;;
160; 160; 160; 160; 160; 160;160;*)
160; 160; 160; 160; 160; 160; 160; 160;160;echo "Check OS."
160; 160; 160; 160; 160; 160; 160; 160;160;#exit 1
160; 160; 160; 160; 160; 160; 160; 160;160;;;
160; 160; 160; 160;160;esac
160; 160; 160; 160;160;PARTED_SUPPORT_RESIZEPART=`parted --help | grep "resizepart" | awk '{print $1}'`
160; 160;160;fi
160; 160;160;#exit
160; 160;160;if [ "$PARTED_SUPPORT_RESIZEPART" = "resizepart" ]; then
160; 160; 160; 160;160;echo "[Before] [df -Th] --------------------------------------"
160; 160; 160; 160;160;df -Th
160; 160; 160; 160;160;parted $DISK --script resizepart $PT_NUM 100%
160; 160; 160; 160;160;pvresize $PT_NAME
160; 160; 160; 160;160;lvextend -l +100%FREE $FILE_SYSTEM
160; 160; 160; 160;160;if [ $PT_TYPE = "ext4" ]; then
160; 160; 160; 160; 160; 160;160;resize2fs $FILE_SYSTEM
160; 160; 160; 160;160;elif [ $PT_TYPE = "xfs" ]; then
160; 160; 160; 160; 160; 160;160;xfs_growfs $FILE_SYSTEM
160; 160; 160; 160;160;fi
160; 160; 160; 160;160;echo "[After] [df -Th] ---------------------------------------"
160; 160; 160; 160;160;df -Th
160; 160;160;else
160; 160; 160; 160;160;echo "-------------------------------------------------------"
160; 160; 160; 160;160;echo "Please, update parted program."
160; 160; 160; 160;160;echo "-------------------------------------------------------"
160; 160; 160; 160;160;# Because you can create up to 4 partitions, this is not recommended.
160; 160; 160; 160;160;PT_NUM=$(($PT_NUM+1))
160; 160; 160; 160;160;START=`parted -s $DISK print free | grep Free | grep GB | awk '{print $1}'`
160; 160; 160; 160;160;END=`parted -s $DISK print free | grep Free | grep GB | awk '{print $2}'`
160; 160; 160; 160;160;echo "START[$START], END[$END], PT_NUM[$PT_NUM]"
160; 160; 160; 160;160;parted $DISK -s mkpart primary $START $END
160; 160; 160; 160;160;#parted /dev/sda -s set $PT_NUM lvm
160; 160; 160; 160;160;echo "fdisk -l $DISK"
160; 160; 160; 160;160;fdisk -l $DISK
160; 160; 160; 160;160;pvcreate $DISK$PT_NUM
160; 160; 160; 160;160;
160; 160; 160; 160;160;# if VG_NAME is multiple ????
160; 160; 160; 160;160;VG_NAME=`vgdisplay | grep "VG Name" | awk '{print $3}'`
160; 160; 160; 160;160;vgextend $VG_NAME $DISK$PT_NUM
160; 160; 160; 160;160;lvextend -l +100%FREE $FILE_SYSTEM
160; 160; 160; 160;160;
160; 160; 160; 160;160;if [ $PT_TYPE = "ext4" ]; then
160; 160; 160; 160; 160; 160;160;resize2fs $FILE_SYSTEM
160; 160; 160; 160;160;elif [ $PT_TYPE = "xfs" ]; then
160; 160; 160; 160; 160; 160;160;xfs_growfs $FILE_SYSTEM
160; 160; 160; 160;160;fi
160; 160; 160; 160;160;echo "fdisk -l $DISK"
160; 160; 160; 160;160;fdisk -l $DISK
160; 160;160;fi
}
FDISK=""
for DISK in `fdisk -l 2>&1 | grep "Disk" | grep '/dev/sd' | awk '{print $2}' | sed -e 's/://g'`; do
160; 160;160;DISK_LABEL_TYPE=`fdisk -l $DISK | grep "label type" | awk '{print $NF}'`
160; 160;160;if [ $DISK_LABEL_TYPE = "dos" ]; then
160; 160; 160; 160;160;FDISK_SIZE=`fdisk -l $DISK | grep "Disk" | grep $DISK | awk '{print $3}'`
160; 160; 160; 160;160;echo "FDISK_SIZE : $FDISK_SIZE"
160; 160; 160; 160;160;PV_NAME_CNT=`pvdisplay | grep -A 1 $DISK | grep "PV Name" | awk '{print $3}' | wc -l`
160; 160; 160; 160;160;PT_NAME=`pvdisplay | grep -A 1 $DISK | grep "PV Name" | awk '{print $3}' | sed -n "$PV_NAME_CNT"p`
160; 160; 160; 160;160;PT_SIZE=`fdisk -l $PT_NAME | grep "Disk" | grep $PT_NAME | awk '{print $3}'`
160; 160; 160; 160;160;PT_SIZE_IS_MB=`fdisk -l $PT_NAME | grep "Disk" | grep $PT_NAME | awk '{print $4}' | cut -d"," -f1 | awk '{if($1 = "MB") print "1"; else print "0";}'`
160; 160; 160; 160;160;echo "PT_NAME[$PT_NAME], PT_SIZE[$PT_SIZE]"
160; 160; 160; 160;160;SIZE_COMP_RES=0
160; 160; 160; 160;160;if [ $PT_SIZE_IS_MB = "1" ]; then
160; 160; 160; 160; 160; 160;160;SIZE_COMP_RES=`echo "$FDISK_SIZE $PT_SIZE" | awk '{if($1 > $2/1024) print "1"; else print "0";}'`
160; 160; 160; 160;160;else
160; 160; 160; 160; 160; 160;160;SIZE_COMP_RES=`echo "$FDISK_SIZE $PT_SIZE" | awk '{if($1 > $2) print "1"; else print "0";}'`
160; 160; 160; 160;160;fi
160; 160; 160; 160;160;if [ $SIZE_COMP_RES != 0 ]; then
160; 160; 160; 160; 160; 160;160;START=`parted -s $DISK print free | grep Free | grep GB | awk '{print $1}'`
160; 160; 160; 160; 160; 160;160;END=`parted -s $DISK print free | grep Free | grep GB | awk '{print $2}'`
160; 160; 160; 160; 160; 160;160;if [ "$START" != "" -a "$END" != "" ]; then
160; 160; 160; 160; 160; 160; 160; 160;160;resize_disk_2 $DISK
160; 160; 160; 160; 160; 160;160;else
160; 160; 160; 160; 160; 160; 160; 160;160;echo "df -Th"
160; 160; 160; 160; 160; 160; 160; 160;160;df -Th
160; 160; 160; 160; 160; 160;160;fi
160; 160; 160; 160;160;fi
160; 160;160;fi
done