FreeNas上有各种方法可以备份同步文件,比如云同步任务、安装syncthing插件等。这里介绍一个十分简便的同步方法:rsync。这是FreeNas系统自带的,你不用额外安装或者设置。

  一、FreeNas内部文件同步

  为了提高常用文件访问速度,我在FreeNas中用了一块固态硬盘存储照片等小文件。不过由于固态硬盘价格比较贵,我不想再弄一块做镜像(穷),因此我需要系统自动定期将固态硬盘里的文件同步到机械硬盘中。rsync命令就很适合做这个工作。

  点击左侧菜单栏【任务】–>【计划任务】,再点右上角的【添加】按钮,出现添加计划任务的页面:

  “描述”自己随便填一个。

  “命令”使用“rsync”:

rsync -avz --delete /mnt/SSD/personal/ /mnt/STORE/personal/

  rsync命令的使用和参数网上很多,我这里就不引用了,请自行学习。我这里是将“/mnt/SSD/personal”这个目录下的所有文件包括权限和属性全部同步到“/mnt/STORE/personal”目录下。注意:命令行中目录最后带上斜杆和不带斜杆是不一样的,不带表示的是同步整个目录包括目录本身,带上斜杆表示的是同步目录中的文件,不包括目录本身。

  “以用户身份运行”里选择root用户;“安排计划任务”里选择要运行的周期,我这里是“每天”;其它几个地方按图上选择就行了,然后保存。

  点击“立即运行”可以马上运行这条命令,然后你可以使用winscp之类的工具看看不是开始同步了。我们在添加任务时没有勾选“隐藏标准错误”这个选项,因此如果运行中有错误可以在日志文件“/var/log/cron”中看到。如果你想看到每次同步了哪些文件,可以取消勾选“隐藏标准输出”这个选项。

  二、FreeNas与windows之间文件同步

  FreeNas与windows之间同步文件也很方便。windows上使用cwrsync这个开源工具。

  1、FreeNas中的设置

  点击左侧菜单栏【服务】,找到“Rsync”,点击后面的动作按钮:

  进入配置界面后,打开“Rsync Module”页面,点击【添加】按钮,出现如下页面:

  “名称”自己随便填一个;“路径”选择需要同步的目录;“访问模式”有三种选择,我这里是要将freenas中的文件同步到windows中,因此我选择“Read Only”就行了,如果你需要将windows里的文件同步到freenas中,就选择“Read and Write”;“用户”和“群组”选择“root”和“wheel”;“允许主机”中填写你只允许连接的主机,这样安全一点。然后保存。

  然后转到“服务”页面,打开“Rsync”服务,并选择“自动启动”。

  2、windows中的设置

  到https://www.itefix.net/cwrsync-free-edition下载“cwrsync”免费版,然后解压。这个下载链接是官方的,可以看https://www.rsync.net/resources/howto/windows_rsync.html这个页面。

  在cwrsync目录下新建一个bat文件,内容如下:

@echo off
echo.
echo 开始同步数据,请稍等...
echo.
cd /d %~dp0
.\bin\rsync -avz  --progress  --delete  --port 873 root@freenas::personal /cygdrive/d/个人/
echo.
echo 数据同步完成
echo.
pause

  第6行“root@freenas::personal”中,“root”是“Rsync Module”页面中设置的用户,“freenas”是我的freenas主机名,“personal”是“Rsync Module”页面中设置的名称。后面“/cygdrive/d/个人/”,是我windows中的同步目录,“cygdrive”指的是本机上的硬盘。

  如果你想反过来,将计算机中的文件同步到freenas中,只需将第6行中的两个目录对换一下前后位置就行了,需要注意的是在设置“Rsync Module”时候“访问模式”需要选择可写。

  接下来,双击运行这个bat文件就可以开始同步了。当然你可以把这个bat文件添加到windows的计划任务中,实现自动同步。

  我这里使用的是module模式进行同步,还有一种是使用ssh进行连接,可以参考https://www.rsync.net/resources/howto/windows_rsync.html里的说明进行设置。

声明:本文为本站【NASGEEK】原创文章,未经许可不得转载!

2 对 “FreeNas中使用rsync同步文件”的想法;

  1. 你好。我按照这个教程设置后同步时报错,rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
    rsync error: error in rsync protocol data stream (code 12) at io.c(228) [Receiver=3.2.3] ,您可以指导一下吗

  2. 你好,我找的问题了, 我使用的客户端时window10 ,从windows10 往freenas 备份时候,使用 z这个参数会报错;去掉z就正常。原因不明白,目前解决方法是去掉z这个参数

发表评论

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