磁盘自动分区&格式化&挂载脚本
https://help.aliyun.com/document_detail/25426.html
https://my.oschina.net/u/4308169/blog/3370852
调用
有下述两种方式进行调用:
- 将脚本拷贝到目标机器,然后执行
- 使用 ssh 命令,以文件名为
init_disk.sh
为例:bashssh 10.120.0.24 < init_disk.sh
- 此方法可以在任意可以 ssh 登录到目标机器的地方执行(包括在本地)
- 最佳实践:在中控机(可免密登录所有机器的运维服务器)上运行此 ssh 命令
代码
bash
#!/bin/bash
# ====================================================
# 只能处理第一块数据盘,/dev/vdb1 挂载到 /data 目录
# ====================================================
# 自动对磁盘分区、格式化、挂载
# 对机器上的 vdb 磁盘进行分区格式化,使用 << 将需要的分区指令导入给程序 fdisk
# n(新建分区), p(创建主分区), 1(分区编号为 1), 两个空白行(两个回车, 相当于将整个磁盘分一个区)
# 注意: 1 后面的两个回车(空白行)是必须的!
# ====================================================
fdisk -u /dev/vdb << EOF
n
p
1
wq
EOF
# 格式化刚刚创建好的分区
mkfs -t ext4 /dev/vdb1
# 创建挂载点目录,判断date目录是否存在,不存在则创建
if [ ! -d /data ]; then
mkdir /data
fi
# 备份etc/fstab文件
cp /etc/fstab /etc/fstab.bak
# 在/etc/fstab里写入新分区信息
echo `blkid /dev/vdb1 | awk '{print $2}' | sed 's/\"//g'` /data ext4 defaults 0 0 >> /etc/fstab
#自动挂载刚刚创建的分区,并设置开机自动挂载该分区
#echo '/dev/vdb1 /data xfs defaults 1 2' >> /etc/fstab
#mount -a
# 挂载分区
mount /dev/vdb1 /data
df -h
注意
- 代码只能处理第一块数据盘,还有具体要求:
- 盘符:
/dev/vdb1
- 挂载目录:
/data
- 盘符:
- 代码
EOF
片段中的空行有其作用,不可删除