Ubuntu系统写一个检测U盘是否有挂载,没有挂载就执行命令mount挂载,有挂载就不理会,每5秒检测一次
时间: 2024-10-21 20:02:22 浏览: 13
ubuntu 一键挂载U盘到系统
要在Ubuntu系统中编写一个脚本来持续监控U盘是否已经挂载,并在未挂载时自动进行挂载,你可以创建一个bash shell脚本。下面是一个简单的示例,它使用`udisksctl`工具来检查U盘状态,并使用`while`循环每5秒运行一次检测:
```bash
#!/bin/bash
# 定义U盘路径和挂载点
DEVICE=/dev/sdb # 这里假设你的U盘设备名为sdb,换成实际设备名
MOUNT_POINT=/media/usbdrive # 挂载点,同样根据实际情况调整
# 检查U盘是否已挂载
is_mounted() {
if [ "$(udisksctl info -b "$DEVICE" | grep -c 'device: is mounted')" -eq 1 ]; then
return 0 # 已经挂载
else
return 1 # 未挂载
fi
}
# 自动挂载U盘
mount_uptodate() {
if ! is_mounted; then
echo "Mounting USB drive..."
mount "$DEVICE" "$MOUNT_POINT"
fi
}
# 每5秒检查一次
while true; do
mount_uptodate
sleep 5
done
# 后台运行脚本
nohup $0 &>/dev/null &
```
**注意**:
- 需要先安装`udisksctl`,可以通过`sudo apt-get install udisks2`进行安装。
- 请确保将`DEVICE`和`MOUNT_POINT`替换为你的实际U盘设备和挂载目录。
**相关问题--:**
1. 如何查看当前系统中所有挂载的存储设备?
2. 如果U盘频繁插拔,应该如何优化检测逻辑?
3. 如果脚本意外终止,如何重启它?
阅读全文