You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Bash脚本挂载磁盘前检查重复的Disk LABEL?

磁盘挂载前检测重复Disk LABEL的Bash脚本改进方案

需求是在Bash脚本中实现磁盘挂载前检查是否存在重复的Disk LABEL:当连接两个带有相同标签的外接磁盘时,向用户发出警告并要求移除重复标签的磁盘。现有脚本无法区分同标签磁盘,挂载时会出现问题,需要改进。

原脚本代码:

if mountpoint -q "${JOB_MOUNT_DIR}"; then
    echo " ${JOB_MOUNT_HD_LABEL} já está montado e está pronto para uso"
else
    echo "O dispositivo ""${JOB_MOUNT_HD_LABEL}"" não está montado no diretório ""${JOB_MOUNT_DIR}"""
    echo "Deseja montar o diretório?"
    echo -n "Qual sua opção? [s/n]: "
    read -r "opcao"
    if [ "$opcao" == "s" ]; then
        mkdir -p "${JOB_MOUNT_DIR}/${JOB_MOUNT_HD_LABEL}"
        mount -L "${JOB_MOUNT_HD_LABEL}" "${JOB_MOUNT_DIR}/${JOB_MOUNT_HD_LABEL}"
        exit 0
    else
        echo "Disco não irá ser montado"
        exit 0
    fi
fi
exit 0

改进方案

核心思路是先通过blkid命令统计对应LABEL的磁盘数量,若数量大于1则判定存在重复标签,直接警告用户;若数量正常,再执行原有挂载逻辑。

改进后的脚本:

# 统计对应LABEL的磁盘设备数量
DEVICE_COUNT=$(blkid -t LABEL="${JOB_MOUNT_HD_LABEL}" -o device | wc -l)

# 检查是否存在重复标签的磁盘
if [ "$DEVICE_COUNT" -gt 1 ]; then
    echo "AVISO: Encontrado múltiplos discos com o rótulo ""${JOB_MOUNT_HD_LABEL}""!"
    echo "Por favor, remova um dos discos com rótulo duplicado e tente novamente."
    exit 1
fi

# 原有的挂载检查逻辑
if mountpoint -q "${JOB_MOUNT_DIR}"; then
    echo " ${JOB_MOUNT_HD_LABEL} já está montado e está pronto para uso"
else
    echo "O dispositivo ""${JOB_MOUNT_HD_LABEL}"" não está montado no diretório ""${JOB_MOUNT_DIR}"""
    echo "Deseja montar o diretório?"
    echo -n "Qual sua opção? [s/n]: "
    read -r opcao
    if [ "$opcao" == "s" ]; then
        mkdir -p "${JOB_MOUNT_DIR}/${JOB_MOUNT_HD_LABEL}"
        mount -L "${JOB_MOUNT_HD_LABEL}" "${JOB_MOUNT_DIR}/${JOB_MOUNT_HD_LABEL}"
        exit 0
    else
        echo "Disco não irá ser montado"
        exit 0
    fi
fi
exit 0

关键说明

  • blkid -t LABEL="${JOB_MOUNT_HD_LABEL}" -o device:列出所有带有指定LABEL的磁盘设备路径
  • wc -l:统计设备数量,若大于1则判定为重复标签
  • 检测到重复时直接退出并提示用户,避免后续挂载操作出现不可预期的问题
  • 完全保留原有脚本的挂载逻辑,仅在前置步骤增加重复标签检测

内容的提问来源于stack exchange,提问作者Peter Buffon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 11:35:29