Linux umount命令教程:如何安全地卸载文件系统(附实例详解和注意事项)
#!/bin/sh
# 安全卸载Linux文件系统
# 检查是否提供了设备名称作为参数
if [ "$#" -ne 1 ]; then
echo "用法: $0 <设备名称>"
exit 1
fi
DEVICE=$1
# 检查设备是否挂载
if ! mount | grep -q " on ${DEVICE} "; then
echo "${DEVICE} 没有被挂载。"
exit 1
fi
# 通过lsof检查是否有进程正在使用该设备
if LSOF_CMD="lsof +D ${DEVICE}"; then
if $LSOF_CMD > /dev/null 2>&1; then
echo "设备 ${DEVICE} 正在使用中,请关闭相关进程后重试。"
$LSOF_CMD
exit 1
fi
else
echo "lsof命令不存在或无法调用。"
exit 1
fi
# 尝试三次安全卸载文件系统
for i in 1 2 3; do
sync # 将缓冲区的数据写入存储设备
umount ${DEVICE} && echo "安全卸载 ${DEVICE} 成功。" && exit 0
sleep 1
done
echo "尝试三次后,仍然无法安全卸载 ${DEVICE}。"
exit 1
这个脚本首先检查是否提供了设备名称作为参数,然后检查设备是否挂载。接着,它使用lsof
命令检查是否有进程正在使用该设备。如果没有进程在使用,脚本尝试三次同步并卸载文件系统。如果卸载成功,脚本退出;如果三次都不成功,脚本报告卸载失败并退出。这个脚本提供了一个如何在生产环境中安全卸载文件系统的示例。
评论已关闭