Centos自动扩容centos-root卷空间

发布于:2025-07-22 ⋅ 阅读:(11) ⋅ 点赞:(0)

原创作者:运维工程师 谢晋

Centos自动扩容centos-root卷空间

  1. 因为经常给客户扩容卷空间,所以为了方便编写了个脚本。
# vi resize_root.sh

#!/bin/bash

# CentOS7 自动扩容 centos-root 卷空间脚本
# 需要以root用户运行

# 检查是否以root用户运行
if [ "$(id -u)" -ne 0 ]; then
    echo "此脚本必须以root用户运行" >&2
    exit 1
fi

# 检查操作系统是否为CentOS7
if ! grep -q "CentOS Linux 7" /etc/redhat-release; then
    echo "此脚本仅适用于CentOS 7系统" >&2
    exit 1
fi

# 检查是否使用LVM
if ! command -v lvs >/dev/null 2>&1; then
    echo "未找到LVM工具,系统可能未使用LVM" >&2
    exit 1
fi

# 检查是否存在centos-root逻辑卷
if ! lvs | grep -q "centos-root"; then
    echo "未找到centos-root逻辑卷" >&2
    exit 1
fi

# 获取当前VG名称
VG_NAME=$(lvs --noheadings -o vg_name centos-root | sed 's/^[ \t]*//;s/[ \t]*$//')

# 检查是否有可用的物理卷空间
FREE_SPACE=$(vgs --noheadings -o vg_free --units g ${VG_NAME} | sed 's/^[ \t]*//;s/[ \t]*$//' | cut -d'.' -f1)

if [ "${FREE_SPACE}" -eq 0 ]; then
    echo "没有可用的空间可以扩展" >&2
    exit 1
fi

echo "当前可用空间: ${FREE_SPACE}GB"

# 扩展逻辑卷
echo "正在扩展centos-root逻辑卷..."
lvextend -l +100%FREE /dev/mapper/${VG_NAME}-centos-root

# 检查文件系统类型并调整大小
FS_TYPE=$(df -Th / | tail -n 1 | awk '{print $2}')

case ${FS_TYPE} in
    xfs)
        echo "检测到XFS文件系统,正在调整大小..."
        xfs_growfs /
        ;;
    ext*)
        echo "检测到ext文件系统,正在调整大小..."
        resize2fs /dev/mapper/${VG_NAME}-centos-root
        ;;
    *)
        echo "未知的文件系统类型: ${FS_TYPE}" >&2
        echo "逻辑卷已扩展,但文件系统需要手动调整大小" >&2
        exit 1
        ;;
esac

echo "centos-root卷扩展完成"
df -h /
  1. 赋权脚本
# chmod +x resize_root.sh
  1. 说明

此脚本仅适用于CentOS7系统

系统必须使用LVM并且有名为centos-root的逻辑卷

卷组(VG)中必须有可用空间


网站公告

今日签到

点亮在社区的每一天
去签到