在任何连接的 U 盘上自动安装和备份

在任何连接的 U 盘上自动安装和备份

Unix 和 Linux 爱好者们大家好!

我现在花了大约 2 天的时间寻找解决我的问题的方法,但找不到合适的解决方案;我喜欢将文件备份到任何连接到运行 raspbian 的树莓派上的 USB 记忆棒。

我在这里写下我所知道的东西,这样你就可以看到缺少的东西:

  1. 使用 rsync 将最适合我的目的,这应该可行;

    rsync -v /home/pi/data /mnt/usb

  2. 我可以在 crontab 中添加作业;

    crontab -e

    0 0 * * * rsync -v /home/pi/data /mnt/usb

这将每天备份我的数据(前 5 个标志是时间设置:分钟、小时、天、月、星期天,然后是应执行的命令或脚本)。

  1. 我可以像这样手动安装 USB 记忆棒:

    sudo mount -t vfat /dev/sda1 /mnt/usb

但缺少的是:

  • 如何在目录 /mnt/usb(或 /mnt/usb1、/mnt/usb2 等)中自动挂载每个插入的 USB 记忆棒?

  • 如何使用 rsync 同步每个文件夹路径中的数据?我是否需要带有循环的 Shell 脚本,还是可以像这样使用它:rsync -v /home/pi/data /mnt/usb*?

预先感谢您的帮助,亲切的问候

答案1

我现在能够做到了

使用 Arkadiusz Drabczyk 发布的教程: http://www.axllent.org/docs/view/auto-mounting-usb-storage/

制作一个简短的脚本,在媒体文件夹中查找以 usbhd 开头的所有文件夹并同步到它们。对 Windows fat 格式使用“-rtuv”,它们不支持 POISX 语义。这一切都导致了这个脚本:

sudo find /media -maxdepth 1 -name "usbhd*" | awk '
{
    cmd = "rsync -rtuv --exclude '\''.*'\'' /home/pi/test "$0
    system(cmd)
}' > /dev/null 2>&1

在 crontab 中添加一行,表示定期调用该脚本。调用:crontab -e 添加行(每小时调用脚本):

0 * * * * . /scriptpath/myscript.awk

就是这样。

相关内容