Unix 和 Linux 爱好者们大家好!
我现在花了大约 2 天的时间寻找解决我的问题的方法,但找不到合适的解决方案;我喜欢将文件备份到任何连接到运行 raspbian 的树莓派上的 USB 记忆棒。
我在这里写下我所知道的东西,这样你就可以看到缺少的东西:
使用 rsync 将最适合我的目的,这应该可行;
rsync -v /home/pi/data /mnt/usb
我可以在 crontab 中添加作业;
crontab -e
0 0 * * * rsync -v /home/pi/data /mnt/usb
这将每天备份我的数据(前 5 个标志是时间设置:分钟、小时、天、月、星期天,然后是应执行的命令或脚本)。
我可以像这样手动安装 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
就是这样。