TrueNAS上使用rsync任务备份远程VPS上的数据
本文介绍如何通过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任务】-【添加】,如下图所示
其中远程路径那里需要自己手动输入,点击目录展开的是本地的目录,不知道是不是一个BUG。另外提示一点,方向千万不要选错了!!!
保存之后在【任务】-【Rsync任务】界面中展开刚添加的任务,点击【立即运行】,即可立即同步。