bash - 如何使用 shell 在所需的挂载点上挂载不同大小的 Nvm EBS 卷
问题描述
使用 ansible 将卷添加到 ec2 实例后。如何使用我将传递给 user_data 的 shell 脚本按大小将这些设备安装到所需的安装点
[ec2-user@xxx ~]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1 259:4 0 200G 0 disk
├─nvme0n1p1 259:5 0 1M 0 part
└─nvme0n1p2 259:6 0 200G 0 part /
nvme1n1 259:0 0 70G 0 disk
nvme2n1 259:1 0 70G 0 disk
nvme3n1 259:3 0 70G 0 disk
nvme4n1 259:2 0 20G 0 disk
这是我最初写的,但意识到 NVM 的 NAME 和 SIZE 并不总是相同的
#!/bin/bash
VOLUMES=(nvme1n1 nvme2n1 nvme3n1 nvme4n1)
PATHS=(/abc/sfw /abc/hadoop /abc/log /kafka/data/sda)
for index in ${!VOLUMES[*]}; do
sudo mkfs -t xfs /dev/"${VOLUMES[$index]}"
sudo mkdir -p "${PATHS[$index]}"
sudo mount /dev/"${VOLUMES[$index]}" "${PATHS[$index]}"
echo "Mounted ${VOLUMES[$index]} in ${PATHS[$index]}"
done
我正在使用 ansible 创建这些,并希望将 20G 安装在 /edw/logs 上,但 20G 随机安装在任何设备上。(nvme1n1 或 nvme2n1 或 nvme3n1 或 nvme4n1)
如何编写/修改我的脚本?
解决方案
推荐阅读
- responsive-design - 是否可以使用 Onsen UI 创建响应式顶部导航菜单?
- r - 转置列表中多个数据框中的行和列
- java - 收到警告:-org.apache.fontbox.ttf.TTFSubsetter writeToStream INFO:字体子集为空
- html - CSS 面包屑布局
- ssis - 将多个文件从文件夹加载到 sql 表 - 性能太慢了
- javascript - 我无法安装特定的节点模块 [ejs]
- azure-data-lake - Python Script for Storage V2 所有文件属性
- python - 用字典替换 Python 条件
- c# - 即使我尊重点运算符优先级(C#),也会出现“预期标识符”错误
- javascript - 为什么在 else 语句中的 randomHull() 之前需要“return”?