本文介绍如何通过TrueNAS上的rsync任务,以SSH的连接的方式,将远程VPS主机上的数据备份到NAS中。

之前对网站进行备份,我是通过winscp连接到vps,将站点目录打包,再下载到本地。这种方式比较原始,而且麻烦。于是想到利用TrueNAS中的rsync任务对网站内容进行自动备份。现将过程记录下来,分享给大家。

本教程的远程系统为Ubuntu 20.04;本地系统为TrueNAS 12.0 U2.1。

1.在TrueNAS主机上生成密钥对(在TrueNAS系统中操作)

truenas# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):                      //直接按回车保存到默认目录
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):                                   //直接按回车,不要创建密码
Enter same passphrase again:                                                  //直接按回车
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:NZMgbuPvTHeEqi3SA/U5wW8un6AWrx8ZsRQdbJJHmR4 tester@truenas.local
The key's randomart image is:
+---[RSA 2048]----+
|      . o=o+     |
|     . .ooE.     |
|      +.o==.     |
|     o.oo+.+     |
|     ...S+. .    |
|    . ..++o.     |
|     o oB+. .    |
|    . =Bo+.o     |
|     o+==oo      |
+----[SHA256]-----+

现在可以在“/root/.ssh/”目录下看到两个文件,一个是私钥“id_rsa”,一个是公钥“id_rsa.pub”。

2.将远程主机地址添加到known_hosts(在TrueNAS系统中操作)

ssh-keyscan -t rsa 192.168.2.6 >> /root/.ssh/known_hosts      //这里要将192.168.2.6改成你的远程主机IP

3.将公钥导入远程主机(在远程系统中操作)

cd /root/.ssh                                     //如果没有.ssh目录,就使用自己创建一个
touch authorized_keys
chmod 600 authorized_keys
nano authorized_keys
//将TrueNAS中生成的id_rsa.pub里的内容复制到这里

现在可以来测试一下连接

ssh -T -o StrictHostKeyChecking=no root@192.168.2.6 
//如果你的ssh端口不是默认的22,比如是12345,则可以使用以下命令
ssh -T -p 12345 StrictHostKeyChecking=no root@192.168.2.6

4.启用远程主机上的rsync服务(在远程系统中操作)

ubuntu 20.04中已默认安装rsync,不过没有启动。如果你的系统上没有,自己安装一个。

apt install rsync          //如果系统上没有rsync则自己安装一个
systemctl enable rsync
systemctl start rsync

5.添加计划任务(在TrueNAS的web界面中操作)

转到【任务】-【Rsync任务】-【添加】,如下图所示

rsync-task
rsync-task

其中远程路径那里需要自己手动输入,点击目录展开的是本地的目录,不知道是不是一个BUG。另外提示一点,方向千万不要选错了!!!

保存之后在【任务】-【Rsync任务】界面中展开刚添加的任务,点击【立即运行】,即可立即同步。

2 对 “TrueNAS上使用rsync任务备份远程VPS上的数据”的想法;

  1. truenas\freenas遵从什么开源协议吗?我可以像修改linux源码一样,把修改后的freenas产品化吗

    1. 我也是从网上查的:truenas遵从FreeBSD开源协议。BSD开源协议(original BSD license、FreeBSD license、Original BSD license)是一个给予使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。但”为所欲为”的前提是当你发布使用了BSD协议的代码,或者以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:1.如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。2.如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。3.不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注