本文目录导读:

- 场景一:批量挂载未格式化、未分区的新数据盘(如云服务器附加了多块磁盘)
- 场景二:批量挂载网络存储(NFS / CIFS)
- 场景三:批量挂载云盘(如阿里云、腾讯云、AWS的弹性云盘)
- 核心注意事项(非常重要!)
实用脚本能否批量挂载”的问题,答案是:完全可以,而且这正是脚本发挥优势的地方,批量挂载通常用于管理云服务器的数据盘、网络存储(如NFS、SMB)或虚拟机的磁盘。
问题中的“实用脚本”比较宽泛,我将根据几种最常见的场景,给出对应的批量挂载脚本示例和核心注意事项。
批量挂载未格式化、未分区的新数据盘(如云服务器附加了多块磁盘)
这是最经典的场景,你需要先对磁盘进行分区、格式化,然后再挂载。
脚本思路:
- 找出所有未使用的磁盘(如
/dev/vdb,/dev/vdc)。 - 对每个磁盘执行
fdisk或parted分区。 - 使用
mkfs.ext4格式化。 - 创建挂载目录(如
/data1,/data2)。 - 写入
/etc/fstab实现开机自动挂载。
脚本示例 (bash):
#!/bin/bash
# 注意:此脚本会操作所有 未分区 的磁盘,请谨慎使用!
# 建议先在测试环境运行,该脚本假设磁盘设备名为 /dev/vdX 或 /dev/sdX
# 让脚本自动回答fdisk的问题
echo -e "n\np\n1\n\n\nw" | fdisk /dev/vdb
# 更安全的做法是遍历并自动处理
for disk in /dev/vd[b-z] /dev/sd[b-z]; do
# 检查磁盘是否存在且未被分区(没有数字结尾的设备名)
if [ -b "$disk" ] && ! [ -b "${disk}1" ]; then
echo "正在处理磁盘: $disk"
# 1. 使用 parted 进行GPT分区(比fdisk更易脚本化)
parted -s "$disk" mklabel gpt
parted -s "$disk" mkpart primary ext4 0% 100%
# 2. 格式化
mkfs.ext4 -F "${disk}1"
# 3. 创建挂载点
mount_point="/mnt/data_$(basename $disk)"
mkdir -p "$mount_point"
# 4. 获取UUID用于fstab
uuid=$(blkid -s UUID -o value "${disk}1")
# 5. 挂载并写入fstab
mount "${disk}1" "$mount_point"
echo "UUID=$uuid $mount_point ext4 defaults 0 2" >> /etc/fstab
echo "磁盘 $disk 已挂载到 $mount_point"
fi
done
批量挂载网络存储(NFS / CIFS)
如果你有大量服务器需要挂载同一个NAS存储,或者一台服务器需要挂载多个远程共享。
脚本思路:
- 定义服务器列表或共享列表。
- 安装必要的客户端(
nfs-utils,cifs-utils)。 - 循环挂载。
脚本示例:批量从多台远程NAS挂载NFS
#!/bin/bash
# 远程服务器列表(也可以是从文件读取)
REMOTE_SERVERS=("192.168.1.100" "192.168.1.200")
REMOTE_PATH="/shared/data"
LOCAL_BASE="/mnt/nfs"
for server in "${REMOTE_SERVERS[@]}"; do
local_path="${LOCAL_BASE}/${server}"
mkdir -p "$local_path"
# 检查是否已挂载
if mountpoint -q "$local_path"; then
echo "$local_path 已挂载,跳过"
else
echo "正在挂载 $server:$REMOTE_PATH 到 $local_path"
mount -t nfs "${server}:${REMOTE_PATH}" "$local_path"
# 写入fstab(可选,需要根据实际协议版本调整)
# echo "${server}:${REMOTE_PATH} $local_path nfs defaults 0 0" >> /etc/fstab
fi
done
批量挂载云盘(如阿里云、腾讯云、AWS的弹性云盘)
云环境通常有API或CLI工具,可以写脚本实现“先挂载到实例,再在操作系统内挂载”。
简化思路:
- 使用云服务商CLI(如
aliyun ecs attach-disk)将磁盘挂载到指定实例。 - 在目标实例上运行场景一中的脚本来处理分区和文件系统。
核心注意事项(非常重要!)
- UUID 优于设备名:
- 不要用
/dev/sdb这样的名字写入/etc/fstab,因为系统重启后设备名可能变化(变成/dev/sdc)。 - 一定要使用
blkid命令获取 UUID 或 PARTUUID。
- 不要用
- 唯一性检查:
- 挂载前先检查该设备是否已经被挂载(
mount | grep /dev/xxx)。 - 检查挂载点目录是否为空。
- 检查文件系统是否有错误(使用
fsck)。
- 挂载前先检查该设备是否已经被挂载(
- 风险提示:
- 格式化会清空数据! 批量脚本如果写错目标(比如误选了系统盘),会导致服务器崩溃,建议先在单台服务器上手动测试脚本逻辑。
- 脚本中的
fdisk自动化(echo -e "n\np\n1\n\n\nw")非常脆弱,不同操作系统版本可能分区交互不同,推荐使用parted或用sgdisk(GPT专用)。
- 操作系统差异:
- Linux:上述脚本通用。
- Windows:可以用 PowerShell 脚本,通过
Get-Disk、Initialize-Disk、New-Partition、Format-Volume、Mount-DiskImage等命令实现批量挂载。
可以批量挂载,脚本是理想的工具。 关键在于:
- 确定挂载对象:是本地新盘、远程NFS、还是云盘。
- 确定挂载方式:手动写入fstab还是通过云API。
- 编写健壮脚本:必须包含错误处理、唯一性检查和UUID引用。
如果你能提供更具体的场景(是云服务器的数据盘?还是公司的NAS?操作系统是CentOS还是Ubuntu?),我可以给你一个更精确的“即用型”脚本。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播