欢迎来到电脑知识学习网,专业的电脑知识大全学习平台!

手机版

shell操作u盘文件-(shell命令进入u盘)

操作系统 发布时间:2022-12-30 02:36:22
shell操作u盘文件 (shell命令进入u盘) 【序】

这是群晖NAS的shell脚本扩展应用之二。之前发表的文章:手动挂载exfat分区和自动挂载exfat分区,目的就是为了能够在NAS上面,可以做到自动增量备份。

我也安装和试用过群晖官方提供的USB Copy加值套件,但是它只是简单的U盘同步功能。NAS上的备份文件必须保持不变,否则会重复的同步已经备份过的文件。我的主要目的是用来同步相机拍摄的照片和视频,同步完成后并不是保存在同一个目录下面,往往要按照时间或者事件的类型,放置到其它目录里。如果用USB Copy来备份,就会导致重复同步旧文件的情况发生。于是,自己编写的一个shell脚本,实现真正意义上的“增量备份文件”,即使文件改名或者移到其它目录后,也不会重复备份。

群晖USB增量备份

【备份原理】

我在用shell脚本备份时,会记录每个备份文件的名称和MD5校验值,把这些信息保存在NAS上面。下次备份的时候,检查一下U盘里面的文件跟NAS上的信息是否重复,如果重复就不会再次备份。由此就可以实现增量备份的功能。

文中使用的源代码,在我的GitHub上面都可以找到,有兴趣的朋友可以自己下载看看:

git 电脑 clone https://github.com/luckylz2git/exfat-synology/usbsync【测试截图】

插入U盘,打开usbhash.log文件

复制USBHash这行

粘贴到usbsync.cfg,并添加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个文件,usbsync.sh和usbsync.cfg,其中usbsync.sh放到bin目录,usbsync.cfg是设置文件,放在PhotoImported目录,方便修改:

wget -P /tmp/ https://github.com/luckylz2git/exfat-synology/raw/master/usbsync/usbsync.sh --no-check-certificatechmod 755 /tmp/usbsync.shmv /tmp/usbsync.sh /bin/usbsync.shwget -P /tmp/ https://github.com/luckylz2git/exfat-synology/raw/master/usbsync/usbsync.cfg --no-check-certificatechmod 666 /tmp/usbsync.cfgmv /tmp/usbsync.cfg /volume1/PhotoImported/usbsync.cfg

(4)用文本编辑工具打开usbsync.cfg,修改里面相应的参数。

启用/停用自动同步。中括号内为可选参数(下同)。true是启动自动同步,false是停用:

AutoSync:[true | false]

同步完成后,是否自动弹出U盘。true是自动弹出,false是不弹出。

AutoUnmount:[true | false]

需要同步U盘内的源目录:

SourceDir:DCIM

需要同步的文件后缀,如果有多种格式,用分号(;)分开文件后缀。星号(*)代表同步所有文件:

FileExtension:*orFileExtension:nef;jpg;mov

NAS内的目标备份目录:

ImportDir:/volume1/PhotoImported

注册U盘信息,如果要备份多个U盘或者存储卡,就要填写多行。

USBHash:[usb_hash_value1][,usb_dev_info1]USBHash:[usb_hash_value2][,usb_dev_info2]...USBHash:d1912eac1eb562007524467b58f3423f,EXAMPLE_USB_DEVICE1USBHash:e1912eac1eb752446756200b58f3423f,EXAMPLE_USB_DEVICE2...

注册U盘方法:

把需要备份的U盘插入NAS,打开共享文件夹PhotoImported,里面会有一个usbhash.log文本文件。打开这个文件,内容如下:

USB Disk: /dev/sduDevice: /dev/sdu1USBHash: d1912eac1eb562007524467b58f3423f

只需要把USBHash那行复制到usbsync.cfg文件里面即可。USBHash还有一个额外的usb_dev_info信息,用逗号(,)分隔,这是用来区分USB设备的注释信息,例如:USBDisk,SDCard1,CFCard1。这是一个可选填的内容。

(5)上述步骤完成后,弹出并重新插入U盘,就可以开始自动备份了。

(6)多个U盘注册,重复步骤(4)和(5)。

(7)确认增量备份结果。打开共享文件夹PhotoImported,查看U盘上的文件是否已经按要求完成备份了。程序在完成备份后,会生成2个日志文件:import_latest.log和import_history.log。最新一次备份的日志,保存在import_latest.log,之前的备份日志,保存在import_history.log。

【卸载步骤】

(1)用root用户登陆ssh,连上NAS:

ssh root@192.168.1.100

(2)执行以下命令,即可卸载这个小程序,将系统功能复原:

rm -f 电脑/bin/usbsync.sh【总结】

鉴于本人工作性质,所以这篇写得感觉像技术文档,可能不是那么通俗易懂。不过,按部就班的操作,应该不会有太大问题的。如有任何问题或建议,欢迎给我回复留言。

【未完待续】

下篇文章,我会介绍最后一个shell脚本小程序exifname。数码相机照片备份的最后一个动作,在自动“增量备份”完成以后,根据照片的信息,自动修改文件名和文件目录。

敬请期待,下回再见!

有兴趣的朋友,请加关注、点赞、转发~


电脑
责任编辑:电脑知识学习网

操作系统