Kro*_*mey 5 linux backup mount block-device
作为改进备份方案的一部分,我现在添加了旋转外部硬盘驱动器,使一个始终安全地离开现场,而另一个则在接收备份数据。自然地,为了确保我的备份真正完成,备份将被编写和 cron'd。
我的计划是手动插入并安装硬盘驱动器,然后将其留在那里,直到需要卸载它(再次手动),将其拿走,放入下一个,然后(手动)安装那个。两个驱动器都将挂载到例如 /mnt/backup。
现在,问题来了:如果我忘记插入或安装硬盘驱动器,我不希望备份脚本运行。所以我需要能够在允许脚本运行之前检测是否有设备安装到 /mnt/backup 。我的第一个想法是在(未挂载的)/mnt/backup 目录中放置一个名为例如“NO_DRIVE_MOUNTED”的文件,然后在运行备份例程之前确保它不存在,但这只是感觉很hackish。(同样,将一个名为“BACKUP_DEVICE_READY”的文件放在每个外部硬盘驱动器中并检查该文件是否存在的反面感觉就像黑客一样。)
有没有更好的方法来检测设备是否安装到给定目录?我宁愿避免检查设备本身,因为我的经验是在 Linux 中插入一个驱动器只会将它分配给下一个可用的 /dev/sdX,所以虽然有一天备份驱动器可能是 /dev/sdf,如果我下次连接备份驱动器时插入不同的驱动器,它是 /dev/sdg,这意味着对 /dev/sdf 的测试将失败!我还希望避免特定于设备的标识(例如通过 UUID),以便我可以更轻松、更透明地更换/升级驱动器。
这将在 Ubuntu 10.10 上(如果我拖得够久,可能是 11.04,因为我正在重建整个服务器的过程中),理想情况下,我想要一个简单的单行测试,我可以添加前缀我的备份命令直接在我的 crontab 中(但如果有必要,我也不怕 Bash 脚本)。
您可以像在 cron 中那样运行备份脚本
fgrep -q /mnt/backup /proc/mounts && backup.sh
Run Code Online (Sandbox Code Playgroud)
但最好在脚本中添加测试,以记录失败的尝试