记录常用脚本或命令
脚本
EC2快速初始化
无额外磁盘
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 sudo su -yum update -y USER="appadmin" CFG="/etc/ssh/sshd_config" PASS=$(openssl rand -hex 16) IP=$(ip a|grep inet| grep 10\.| awk '{print $2}' |awk -F '/' '{print $1}' ) useradd ${USER} sed -E -i 's/^#?( ?)*PasswordAuthentication.*$/PasswordAuthentication yes/' ${CFG} service sshd restart echo ${PASS} | passwd ${USER} --stdinecho "${USER} ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/${USER} cat << EOF > /tmp/aws.command cn-north-1 json EOF aws configure < /tmp/aws.command yum install -y dhclient echo "supersede domain-name-servers 10.1.0.1;" >> /etc/dhcp/dhclient.confCFG="/etc/sysconfig/network-scripts/ifcfg-eth0" cp ${CFG} ${CFG} .bakif grep "PEERDNS" ${CFG} ;then sed -E -i "s/^#?( ?)*PEERDNS=.*$/PEERDNS=yes/" ${CFG} ; else echo "PEERDNS=yes" >> ${CFG} ;fi service network restart cat << EOF 初始化完毕, 连接信息: ssh ${USER}@${IP} ${PASS} EOF
有额外磁盘
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 sudo su -yum update -y USER="appadmin" CFG="/etc/ssh/sshd_config" PASS=$(openssl rand -hex 16) IP=$(ip a|grep inet| grep 10\.| awk '{print $2}' |awk -F '/' '{print $1}' ) useradd ${USER} sed -E -i 's/^#?( ?)*PasswordAuthentication.*$/PasswordAuthentication yes/' ${CFG} service sshd restart echo ${PASS} | passwd ${USER} --stdinecho "${USER} ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/${USER} cat << EOF > /tmp/aws.command cn-north-1 json EOF aws configure < /tmp/aws.command yum install -y dhclient echo "supersede domain-name-servers 10.1.0.1;" >> /etc/dhcp/dhclient.confCFG="/etc/sysconfig/network-scripts/ifcfg-eth0" cp ${CFG} ${CFG} .bakif grep "PEERDNS" ${CFG} ;then sed -E -i "s/^#?( ?)*PEERDNS=.*$/PEERDNS=yes/" ${CFG} ; else echo "PEERDNS=yes" >> ${CFG} ;fi service network restart DISK="/dev/nvme1n1" cat << EOF > /tmp/fdisk.command g n w q EOF fdisk /dev/nvme1n1 < /tmp/fdisk.command partprobe mkfs.ext4 ${DISK} p1 P_UUID=$(blkid |grep "${DISK} p1" | awk '{print $2}' ) mkdir -p /dataecho "${P_UUID} /data ext4 defaults,noatime 1 1" >> /etc/fstabmount -a cat << EOF 初始化完毕, 连接信息: ssh ${USER}@${IP} ${PASS} EOF
EC2扩容磁盘
调整卷大小后扩展
Linux 文件系统 - Amazon Elastic Compute Cloud
ext4
1 2 3 4 5 6 7 8 9 10 11 12 13 DISK="nvme0n1" PART_NUM=${DISK_NUM:-1} TMP_LOG=/tmp/disk_extend.log echo "扩容前状态" > ${TMP_LOG} lsblk >> ${TMP_LOG} echo "将扩容: /dev/${DISK} 的${PART_NUM} 号分区" >> ${TMP_LOG} sudo growpart /dev/${DISK} ${PART_NUM} >> ${TMP_LOG} sudo resize2fs /dev/${DISK} >> ${TMP_LOG} echo "扩容后状态" >> ${TMP_LOG} lsblk >> ${TMP_LOG} cat ${TMP_LOG} rm ${TMP_LOG}
xfs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 DISK="nvme0n1" PART_NUM=${DISK_NUM:-1} TMP_LOG=/tmp/disk_extend.log sudo yum install -y xfsprogsecho "扩容前状态" > ${TMP_LOG} lsblk >> ${TMP_LOG} echo "将扩容: /dev/${DISK} 的${PART_NUM} 号分区" >> ${TMP_LOG} sudo growpart /dev/${DISK} ${PART_NUM} >> ${TMP_LOG} MOUNT_POINT=$(lsblk |grep ${DISK} | awk '{print $7}' |grep -v ^$) sudo xfs_growfs -d ${MOUNT_POINT} >> ${TMP_LOG} echo "扩容后状态" >> ${TMP_LOG} lsblk >> ${TMP_LOG} cat ${TMP_LOG} rm ${TMP_LOG}
通用扩容方法
Resize
an ext2/3/4 and XFS root partition without LVM |
ComputingForGeeks
How
to Extend XFS Filesystem in Linux Without LVM
What is
growpart utility and how to use it ? - Red Hat Customer Portal
当前情况
扩充底层硬件后
可以看到底层扩容后,
parted命令通过修复可以看到磁盘已扩容(9G), 但磁盘仍旧是8G,
需要安装额外包解决
1 2 3 4 sudo yum -y install cloud-utils-growpart gdisksudo apt -y install cloud-guest-utils gdisk
安装完成后, 按照上面的EC2扩容 方法执行即可,
不过需要注意上面引用链接中RedHat官方解决方案描述中的重要信息:
growpart is one of the utility to extend the
last partition of the disk to fill the available free space
on the disk. It changes the sector position to the end
sector of the disk.
It only extends the last partition. It doesn't create or delete any
existing partition.
It can be run online. Dry run test can also be done to
check the same.
重要的事说三遍:
只能扩展最后一个分区!
只能扩展最后一个分区!
只能扩展最后一个分区!
Q&A
磁盘已满(100%),
无法执行扩容操作
No space left on deviceds
No space left on deviceds
尝试删除/tmp或/var/log等目录下无用文件
删除无用日志等
再次执行扩容命令即可