我目前正在编写一个 bash 脚本,该脚本应该在周日安装 veracrypt 加密硬盘来运行备份。由于我想每周在两个不同的 HDD 之间轮换,因此我必须在脚本挂载设备之前检查 /dev/sdb1 或 /dev/sdc1 当前是否连接到设备:
hdd_sdb1="$(fdisk -l | grep /dev/sdb1)"
hdd_sdc1="$(fdisk -l | grep /dev/sdc1)"
if [ -n "$hdd_sdb1" ]
then
hdd_name=/dev/sdb1
fi
if [ -n "$hdd_sdc1" ]
then
hdd_name=/dev/sdc1
fi
上周末我刚刚更改了脚本中的变量,安装工作正常。本周末,当脚本运行时,上述 fdisk 命令均未返回一行,因此 if 查询不起作用。现在我想知道如果硬盘尚未安装一段时间后操作系统是否会停用硬盘,是否有办法停用它?
答案1
我发现了问题。
不是因为硬盘没有正确安装或关闭,而是因为命令fdisk
。由于该脚本是使用 cronjob 执行的并且没有用户登录,因此fdisk
不会返回任何输出,因此该变量始终保持为空。
我现在只是测试文件sdb1
或是否sdc1
在/dev
文件夹中并绕过fdisk
命令。