linux之挂载磁盘(脚本自动化)

背景1:关于磁盘挂载的知识是在新冠肺炎蔓延流行时学到的。当时是在某地市的宾馆里面。

背景2:核酸系统需要部署。新给到的服务器linux系统又有新的磁盘需要被挂载。咨询提供服务器的厂商要求挂载,但他们的反馈是这个事情与他们无关,只提供服务器以及系统的安装而已。

背景3:请求自己公司运维的同事解决了这个问题。后来长时间的使用这篇文章中磁盘挂载的内容。并且写成了自动化的脚本。只需要按照脚本运行时的提示进行确认安装就能够执行完成。
目录

一、命令解读

二、自动化脚本呈现

总结


一、命令解读

注:脚本未做过更改。如果尝试使用,先做测试再自定义修改满足自己的需要即可
fdisk 注:fdisk是一个分区管理命令,最常用的是-l,列出分区表。
read 注:read命令从键盘读取变量的值,shell脚本中与用户进行交互。
mkfs 注:mkfs命令是Linux中的一个用于创建文件系统的命令。它可以将一个磁盘分区格式化为指定的文件系统类型
>> 注:会在原有内容后追加内容,如果文件不存在,直接创建文件
mount 注:Linux系统下目录可以挂载不同分区和磁盘设备目录。磁盘分区是分离的,通过挂载可以自由组合

二、自动化脚本呈现

注:脚本中使用 # 做注释描述当前命令的功能

shell 复制代码
# 1. 查看磁盘了解磁盘挂载情况,避免挂错
# 设置变量a, 用于等待设备输出(键盘输入)
# 设置变量DISK_NAME, 用于记录要挂载的磁盘名称
a=
echo "look aroud fdisk"
fdisk -l
DISK_NAME=

# 2. read DISK_NAME ... 等待输入磁盘目录, 
# if [ -z "$DISK_NAME" ] 意思:如果输入内容为空(也就是直接回车),默认使用/dev/vdb目录
echo "you want disk load name, ex: /dev/vdb"
read DISK_NAME < /dev/tty
if [ -z "$DISK_NAME" ]; then
	DISK_NAME=/dev/vdb
fi

# 3. 当你执行 fdisk $DISK_NAME 命令时,会进入一个交互式的分区编辑器来增删改新的磁盘分区
fdisk $DISK_NAME

# 4. 在指定的磁盘或分区上创建一个 ext4 文件系统
echo "config fs type. ex: mkfs -t ext4 ${DISK_NAME}"
mkfs -t ext4 ${DISK_NAME}

# 5. 创建要挂载的目录
echo "make directory name /msun"
mkdir /msun

# 6. 挂载分区到目录
echo "load disk to /msun"
mount ${DISK_NAME} /msun

# 7. 将变量的值追加到文件末尾
# 追加到/etc/fstab用于将本次磁盘挂载持久化,开机重启挂载依然能用。
echo "permanent disk load point to ${DISK_NAME} and can be used even restart machine"
perm_data="${DISK_NAME}"'                                  /msun                   ext4    defaults        0 0'
echo "perm data: ${perm_data}: "
read a < /dev/tty
echo ${perm_data}  >> /etc/fstab

总结

1. 自动化脚本的好处

注:开始手动执行,效率非常低。所以对效率的提升,做脚本非常有效。

2. 后期更新redis集群脚本部署

注:后期还会更新redis集群的部署脚本。相比于这次展示的脚本复杂了许多。

3. 脚本编写总结

注:就像编程或者学习某项技能和本领一样。都需要不断练习和学习前辈的经验和代码。多做尝试。另外就是多加总结了。越来越感觉总结很重要。是种结晶,升华的东西。

相关推荐
一技安身4 小时前
【Docker】 镜像导出 & 导入,实验环境aarch64(arm64)Linux操作系统
linux·docker·容器
平头哥AI5 小时前
Day 22 _ 包装错误别丢链_%w、errors.Is 与 errors.As
android·服务器·学习·golang·go
代码村新手5 小时前
Linux调试器-gdb的使用
linux
工业机器人视觉检测设备6 小时前
工序全流程自动化升级!云汇智能打造汽车天窗多机器人集成产线
机器人·自动化·汽车
新时代牛马6 小时前
PCI与PCIe 硬件原理、配置空间/BAR 与 Linux 驱动完整篇:从 LTSSM、TLP 到 ECAM 与probe
java·linux·服务器
两点王爷7 小时前
解决 Linux 中 version `CXXABI_1.3.8‘ not found 报错
linux·运维·服务器
xx~t8 小时前
嵌入式——51单片机1
linux·c语言·单片机·嵌入式硬件·51单片机
啦啦啦啦啦zzzz8 小时前
利用RAII机制进行日志的采集
linux·服务器·c++·网络编程·c++20
0+1118 小时前
Linux --线程概念与控制
linux·运维·服务器·jvm
nLif8 小时前
基于GTK的简易MFC对话框兼容层 -- MfcToGTK
linux·c++·mfc·gtk