前言
NAS上本身有很多备份同步套件,云存储用的比较多的是cloud sync,如图,支持多家厂商的云存储同步备份
[cloud sync套件](/i/li/?n=2&i=images/202304/e55ae77638eedf0dedc620be491d61f141a136.png?,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=,x-oss-process=image/resize,m_fixed,w_1184)
但cloud sync存在一些局限性,比如本地删除后云端会同步删除(这个应该可以设置单向备份),另外不能随时进行恢复。从而会导致NAS上的数据越来越多,磁盘也越来越满。。。
如果想要只备份到S3上,NAS上不保存数据,而且需要随时恢复文件的话,可以考虑另一种方式:rclone
在NAS上有两种方式使用rclone:
- 通过docker创建rclonebrowser镜像
- ssh登录nas后台直接使用rclone
群晖NAS使用rclone
通过docker创建rclonebrowser容器
关于docker的使用就不在此概述了,网上资源很多,本人掌握的也比较浅,有描述不对的也请指正。
创建容器并配置参数
- NAS—套件中心—Dokcer
- 注册表里搜索rclone,我这里使用的是romancin/rclonebrowser,选latest最新版就好。rclonebrowser是带web界面的。
其他两个我都试了,启动不成功,不知道是不是配置参数错了,就不深究了。。。
- 下载完成后在映像里启动。点击高级设置,设置映射的文件夹
端口可以保持默认,5800和5900,如果与NAS本机有冲突,需要选择其他端口。我这里用的是5802和5902
添加环境变量,TZ:Asia/Shanghai,其余可以保持不动
点击完成,启动即可
配置rclone
容器启动后需要配置rclone的参数的,这里涉及到一个配置文件,rclone.conf,可以从其他地方拷贝至/docker/test2/config/xdg/config/rclone,这是我的配置路径,不要完全复制了。
另外可以通过命令行创建配置文件。
拷贝配置文件
这是我的配置文件,可以新建一个rclone.conf文件,然后把以下内容复制进去,修改成自己的,再拷贝到配置文件夹下就可以了
[test]
type = s3
provider = AWS
access_key_id = xxxxxxxxxxxxxxxxxxxxxxxxx
secret_access_key = xxxxxxxxxxxxxxxxxxxxxxxx
region = cn-northwest-1
storage_class = STANDARD
acl = private
通过命令行创建配置文件
容器原有的终端是不能敲命令的,只能新建一个窗口。
终端机—新增 以命令行启动—sh,使用sh shell
执行rclone config
我这里已经有一个配置文件,可以输入n新建一个配置文件,然后根据提示输入对应选项就可以了
以上是通过web界面创建docker容器,还可以通过命令行创建,以下是配置命令,大家根据具体情况进行替换
docker run -d --name=rclonebrowsertest2 \
--cap-add SYS_ADMIN \
--device /dev/fuse \
--security-opt apparmor=unconfined \
-p 5802:5800 \
-p 5902:5900 \
-v /volume1/docker/test2/config:/config \
-v /volume1/docker/test2/media:/media:shared \
-e GROUP_ID=0 \
-e USER_ID=0 \
-e TZ=Asia/Shanghai \
-e VNC_PASSWORD=123456 \
-e ENABLE_CJK_FONT=1 \
romancin/rclonebrowser:latest
rclonebrowser配置完成后可以通过web界面访问,IP是NAS的IP,端口则是我们配置的映射端口5802。不过还是习惯用命令行,web的操作就不在此概述了,操作起来也很简单,就是点点点。但通过web挂载的话不能手动选择bucket桶,会导致挂载失败。
在群晖后台使用rclone
群晖底层是ubuntu的定制开发系统,不支持dpkg包管理器。但是可以到rclone官网下载包,解压后直接使用。
登录到nas后台,需要先在web界面把ssh打开,并sudo -i提权到root权限
在rclone官网Rclone downloads,复制下载链接
weget https://downloads.rclone.org/v1.62.2/rclone-v1.62.2-linux-amd64.zip
将安装包下载到/opt文件夹下
需要将压缩包解压,群晖NAS本身不支持unzip命令,但可以用7z命令
7z e rclone-v1.62.2-linux-amd64.zip
解压后将rclone拷贝到/bin目录下就可以直接使用了
cp rclone /bin
一样的,敲rclone config可以新建配置文件
也可以拷贝配置文件,路径是/root/.config/rclone/rclone.conf
挂载S3存储桶作为NAS本地文件夹
配置完后我们可以测试一下是否连接成功
rclone lsd remote:
#查看S3中所有桶
rclone lsd remote:bucket
#查看S3某个桶中的所有目录
我这里查看S3桶报403了,但是查看桶中所有目录是OK的,估计是权限问题
连接成功后即可开始挂载了
rclone mount test:xxx-xxx-nas/dev/IT /media --copy-links --allow-other --allow-non-empty --umask 000 -vv --log-file=/
tmp/debug.log
这是我的挂载命令,remote和bucket的名称大家自行修改。挂载完之后在NAS中已经可以看到S3里的文件
挂载成功后便可下载,删除,S3桶里的文件了。有小伙伴会问了,没有上传或新增吗,是可以的,但貌似只能通过命令执行,通过GUI会报错,如下:
通过命令行成功
通过GUI界面报错
日志里会提示找不到这个文件或文件夹
所以这就很操蛋了,折腾了很久....无解。google里有很多说这个Bug的,guthub上也有人提了,无奈。。。不折腾了,具体大家可以去看看
https://github.com/rclone/rclone/issues/4046
总结
群晖NAS可以成功挂载S3到本地文件夹,但是上传/新增功能有限,对于小白来说可能稍显困难。其他厂商的配置应该大同小异。有问题的各位友友们可以留言,看到会及时解答。
本人技术能力有限,如果文中有描述错误的,请及时指正,谢谢。
标签:配置文件,rclone,S3,AWS,NAS,--,docker From: https://blog.51cto.com/u_12764984/6223714