检测到设备是否已安装到特定文件夹?

Modified on: Sat, 30 Jun 2018 08:12:00 +0800

作为改进我的备份方案的一部分,我现在正在添加旋转的外部硬盘驱动器,一直安全地离开现场,而另一个正在接收备份数据。当然,为了确保我的备份实际完成,备份将编写脚本和cron'd。

我的计划是手动插入并安装硬盘驱动器,然后将其留在那里,直到卸下它(再次手动),拿走它,引入下一个,然后(手动)安装那个。两个驱动器都将安装在例如的/ mnt /备份。

现在,问题出现了:如果我忘记插入或安装硬盘驱动器,我不希望运行备份脚本。所以我需要能够在允许脚本运行之前检测是否有设备挂载到/ mnt / backup。我的第一个想法是放一个名为eg的文件。 (unmounted)/ mnt / backup目录中的“NO_DRIVE_MOUNTED”,然后在运行备份例程之前确保存在,但这只是感觉很乱。 (同样地,在每个外部硬盘驱动器中放置一个名为'BACKUP_DEVICE_READY'的文件,并检查该文件是否存在的反转感觉就像是hackish。)

有没有更好的方法来检测设备是否已安装到给定目录?我宁愿避免检查设备本身,因为我的经验是在Linux中插入驱动器只是将它分配给下一个可用的/ dev / sdX,所以有一天备份驱动器可能是/ dev / sdf,如果我下次连接备份驱动器时会插入不同的驱动器/ dev / sdg,这意味着测试/ dev / sdf会失败!我还希望避免特定于设备的识别(例如通过UUID),以便我可以更轻松,更透明地更换/升级驱动器。

这将在Ubuntu 10.10上(或者如果我拖得足够长,可能是11.04,因为我正在重建整个服务器的过程中),理想情况下我想要一个简单的单行测试可以直接在我的crontab中为我的备份命令添加前缀(但我也不怕Bash脚本,如果这是必要的话)。

作者:Gilles,Kromey

最佳答案

您可以像在cron中一样运行备份脚本

fgrep -q /mnt/backup /proc/mounts && backup.sh

但最好在脚本中添加测试,以记录失败的尝试

作者:forcefsck

相关问答

添加新评论