【序】
这是群晖NAS的shell脚本扩展应用之二。之前发表的文章:手动挂载exfat分区和自动挂载exfat分区,目的就是为了能够在NAS上面,可以做到自动增量备份。
我也安装和试用过群晖官方提供的USB Copy加值套件,但是它只是简单的U盘同步功能。NAS上的备份文件必须保持不变,否则会重复的同步已经备份过的文件。我的主要目的是用来同步相机拍摄的照片和视频,同步完成后并不是保存在同一个目录下面,往往要按照时间或者事件的类型,放置到其它目录里。如果用USB Copy来备份,就会导致重复同步旧文件的情况发生。于是,自己编写的一个shell脚本,实现真正意义上的“增量备份文件”,即使文件改名或者移到其它目录后,也不会重复备份。
群晖USB增量备份
【备份原理】
我在用shell脚本备份时,会记录每个备份文件的名称和MD5校验值,把这些信息保存在NAS上面。下次备份的时候,检查一下U盘里面的文件跟NAS上的信息是否重复,如果重复就不会再次备份。由此就可以实现增量备份的功能。
文中使用的源代码,在我的GitHub上面都可以找到,有兴趣的朋友可以自己下载看看:
git clone【测试截图】
插入U盘,打开u文件
复制USBHash这行
粘贴到u,并添加U盘注释
弹出U盘,复制一些文件或者拿去拍一些新的照片
重新将U盘插入NAS,等待完成备份,U盘会自动弹出
备份日志,备份了5个文件
重复在U盘内增加一些文件或照片
U盘插入NAS,备份成功!
再次查看日志,仅备份了新的文件。
备份历史日志,保存了每次备份的信息。
【免责声明】
这个方法并不是官方提供的,需要使用到一些简单的Linux命令,不熟悉的话,存在有一定风险。所以,请谨慎尝试,风险自担!
【安装步骤】
(1)登陆NAS界面,在存储空间1增加一个共享文件夹,例如:PhotoImported
(2)用root用户登陆ssh,连上NAS:
ssh root@192.168.1.100(3)确保NAS可以连接互联网,然后用以下命令下载2个文件,u和u,其中u放到bin目录,u是设置文件,放在PhotoImported目录,方便修改:
wget -P /tmp/ https://github.com/luckylz2git/exfat-synology/raw/master/usbsync/u --no-check-certificate chmod 755 /tmp/u mv /tmp/u /bin/u wget -P /tmp/ https://github.com/luckylz2git/exfat-synology/raw/master/usbsync/u --no-check-certificate chmod 666 /tmp/u mv /tmp/u /volume1/PhotoImported/u(4)用文本编辑工具打开u,修改里面相应的参数。
启用/停用自动同步。中括号内为可选参数(下同)。true是启动自动同步,false是停用:
AutoSync:[true | false]同步完成后,是否自动弹出U盘。true是自动弹出,false是不弹出。
AutoUnmount:[true | false]需要同步U盘内的源目录:
SourceDir:DCIM需要同步的文件后缀,如果有多种格式,用分号(;)分开文件后缀。星号(*)代表同步所有文件:
FileExtension:* or FileExtension:nef;jpg;movNAS内的目标备份目录:
ImportDir:/volume1/PhotoImported
注册U盘信息,如果要备份多个U盘或者存储卡,就要填写多行。
USBHash:[usb_hash_value1][,usb_dev_info1] USBHash:[usb_hash_value2][,usb_dev_info2] ... USBHash:d1912eac1eb562007524467b58f3423f,EXAMPLE_USB_DEVICE1 USBHash:e1912eac1eb752446756200b58f3423f,EXAMPLE_USB_DEVICE2 ...注册U盘方法:
把需要备份的U盘插入NAS,打开共享文件夹PhotoImported,里面会有一个u文本文件。打开这个文件,内容如下:
USB Disk: /dev/sdu Device: /dev/sdu1 USBHash: d1912eac1eb562007524467b58f3423f只需要把USBHash那行复制到u文件里面即可。USBHash还有一个额外的usb_dev_info信息,用逗号(,)分隔,这是用来区分USB设备的注释信息,例如:USBDisk,SDCard1,CFCard1。这是一个可选填的内容。
(5)上述步骤完成后,弹出并重新插入U盘,就可以开始自动备份了。
(6)多个U盘注册,重复步骤(4)和(5)。
(7)确认增量备份结果。打开共享文件夹PhotoImported,查看U盘上的文件是否已经按要求完成备份了。程序在完成备份后,会生成2个日志文件:im和im。最新一次备份的日志,保存在im,之前的备份日志,保存在im。
【卸载步骤】
(1)用root用户登陆ssh,连上NAS:
ssh root@192.168.1.100(2)执行以下命令,即可卸载这个小程序,将系统功能复原:
rm -f /bin/u【总结】
鉴于本人工作性质,所以这篇写得感觉像技术文档,可能不是那么通俗易懂。不过,按部就班的操作,应该不会有太大问题的。如有任何问题或建议,欢迎给我回复留言。
【未完待续】
下篇文章,我会介绍最后一个shell脚本小程序exifname。数码相机照片备份的最后一个动作,在自动“增量备份”完成以后,根据照片的信息,自动修改文件名和文件目录。
敬请期待,下回再见!
有兴趣的朋友,请加关注、点赞、转发~