绿联NAS如何自动备份U盘文件
有网友问绿联NAS 能否实现群晖的 USB Copy 功能。目前官方暂时没有出配套组件,但是我用脚本实现了类似功能,这里分享一下思路:

1、创建 U盘数据备份脚本
首先创建一个备份 U盘数据的脚本 backup.sh 内容如下:
#!/bin/bash
# 获取所有 USB 设备的挂载点
get_usb_mount_points() {
# 借助 lsblk 命令列出所有块设备,筛选出 USB 设备及其挂载点
lsblk -o TYPE,RM,MOUNTPOINT | awk '$1 == "part" && $2 == "1" && $3 != "" {print $3}'
}
# 调用函数获取 USB 挂载点
usb_mount_points=$(get_usb_mount_points)
# 检查是否存在 USB 挂载点
if [ -z "$usb_mount_points" ]; then
echo "未找到已挂载的 USB 设备。"
else
echo "已挂载的 USB 设备挂载点如下:"
echo "$usb_mount_points"
fi
# 定义备份目录
backup_dir="/home/john/works/backup"
# 检查备份目录是否存在,不存在则创建
if [ ! -d "$backup_dir" ]; then
mkdir -p "$backup_dir"
fi
# 检查USB设备是否已挂载
if [ -n "$usb_mount_points" ]; then
# 使用rsync进行备份
rsync -avu --include="*.jpg" --include="*.jpeg" --include="*.png" --exclude='*' "$usb_mount_points/" "$backup_dir"
echo "USB照片备份完成。"
else
echo "USB照片备份失败。"
fi
注意,这里的脚本需要稍微修改使用:首先要修改备份保存位置,在绿联NAS 的 UGOS Pro 里创建一个保存备份的文件夹,然后查看“详细信息”,复制“位置”里的路径去修改 backup_dir 路径:

backup_dir="/home/john/works/backup"
下面这3条修改知识不是必须的,但是可以学习一下:
1.1 根据需求修改备份规则,我这里的备份规则是“增量备份”,且只备份图片:
rsync -avu --include="*.jpg" --include="*.jpeg" --include="*.png" --exclude='*' "$mount_point/" "$backup_dir"
1.2 如果你想要全部文件备份,去掉备份条件就可以了:
rsync -avu "$mount_point/" "$backup_dir"
1.3 如果 sh 脚本不能正常执行,应该是字符串问题,运行下面的命令就可以了:
sed -i -e 's/r$//' ./backup.sh
准备好脚本之后在 绿联NAS 用户文件夹目录新建或者上传 backup.sh ,并给脚本添加执行权限:
sudo chmod +x backup.sh
测试运行一下是否能正常执行

2、创建 udev 规则
接下来我们要创建一个udev规则文件插入 U盘后自动执行 U盘复制脚本,首先创建文件70-usb-backup.rules,内容如下:
ACTION=="add", SUBSYSTEM=="block", RUN+="/home/john/backup.sh"
这里也要将 /home/john/backup.sh 修改成你的设备实际保存脚本的路径。然后将udev规则文件移动到udev规则目录:
sudo mv 70-usb-backup.rules /etc/udev/rules.d/
并重新加载udev规则:
sudo udevadm control --reload-rules
这样当 USB 设备插入到 绿联NAS 时,系统会自动执行 U盘备份脚本,备份指定数据到指定目录。

就分享到这里,我测试有效,你也可以自己尝试一下!欢迎反馈~
当然啦如果有官方组件自然更加方便。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

值友8810386877
校验提示文案
值友8810386877
校验提示文案