/etc/fstab:静态文件系统信息。

/etc/fstab:静态文件系统信息。

如果指定的目标驱动器被卸载,Grsync 将填满 o/s 分区,而不是直接挂载它,或者中止。我该如何防止这种情况发生?

我通常会记得检查它是否已安装,但有时我会忘记,结果会很糟糕。

谢谢你的帮助。

ra@ra-main:~$ cat /etc/fstab

/etc/fstab:静态文件系统信息。

使用“blkid”打印

设备;这可以与 UUID= 一起使用,作为命名设备的更可靠方式

即使添加或删除磁盘,该功能也能正常工作。请参阅 fstab(5)。

安装期间 / 位于 /dev/sdc3 上

UUID=557ba3eb-2dcc-4b03-964b-f12f509c4faa / ext4 错误=remount-ro 0 1

安装期间 /boot/efi 位于 /dev/sda3 上

#UUID=D305-EBF0 /boot/efi vfat umask=0077 0 1 /swapfile none swap sw 0 0 UUID=0399-667C /boot/efi vfat defaults 0 1 LABEL=Grsync /mnt/Grsync auto nosuid,nodev,nofail,x-gvfs-show,x-gvfs-name=Grsync 0 0 ra@ra-main:~$ ^C

答案1

是的,这是 grsync、rsync 等以及许多其他备份工具的预期行为,用户有责任在执行这些工具之前检查卷是否已安装(正如您所提到的)。您可以创建一个运行 grsync 命令的脚本,而不是直接运行它,然后在运行 grsync 命令之前输入一些命令来检查卷是否已安装(或者只是手动运行安装检查命令,这也是可行的)。类似这样的操作可能会有效:

cd /home/username/
mkdir scripts
cd scripts
nano grsyn.sh
sudo chmod 750 grsync.sh nano grsync.sh

然后,在 nano 文本编辑器中打开的文件中,复制并粘贴并调整此脚本以满足您的需要:

if grep -qs '/mnt/backup ' /proc/mounts; then
    echo "I will proceed with grsync because the volume is ready."

grsync [enter your commands/flags here]

else

    echo "The volume is not ready, so I am not running grsync."

fi

您可以通过导航到脚本目录并输入 来手动运行该脚本./grsync.sh。该q标志是可选的,可以根据用户偏好删除。您可以选择创建一个 cron 作业来运行此脚本,如下所示:

sudo crontab -e

在最后一项下方,复制/粘贴并调整以下内容以满足您的需要:

0 8 * * * /bin/bash /home/username/scripts/ >> /home/username/grsync.log

该脚本将每天早上 8 点运行您想要的 grsync 命令。


新用户和/或不太复杂的工作流程可能只需要进行简单的检查,在这种情况下,最简单的方法是在控制台上输入单个命令。为此,请使用上面的 grep 语法,但一定要省略标志,q以便结果打印到标准输出:

grep -s '/mnt/backup ' /proc/mounts

如果卷已安装,则会打印类似以下的结果:

/dev/sdb /mnt/backup ext4 rw,nosuid,nodev,noatime,attr2,inode64,logbufs=8,logbsize=32k,noquota 0 0

如果您没有收到任何输出,并且只要您的 grep 字符串准确,则这表明该卷可能未安装。最后,如果您想要这个集成在 grsync 的图形前端中,而不是在命令行中处理,然后只需在额外选项 / 在 rsync / 失败时暂停之前执行此命令

相关内容