Windows向Linux文件同步方案¶
介绍¶
一般来说,在Windows上进行编辑,在Linux上进行编译是一种非常常见的开发方式。这种方式下Windows向Linux传输文件是一种非常高频的操作,传统的FTP传输文件操作会非常的繁琐和耗时,因此需要一种同步方案实现自动同步
同步的时效性要求不高,因此采用Windows设置定时任务,每隔一定时间向Linux Push文件的方式进行同步
graph LR
WIN_CLN--Push-->LIN_SVR
WIN_CLN--Task Scheduler-->WIN_CLN
同步软件采用Rsync,Windows平台上的Rsync叫做Cwrsync
Linux 配置¶
Linux上部署Rsync的服务端,一般来说Linux上默认已经安装了Rsync工具,如果没有的话 apt-get install rsync
就可以了
Rsync的配置比较简单,只需要编辑配置文件,Rsync的配置文件涉及2个:
/etc/rsyncd.conf
:主配置文件/etc/rsyncd.passwd
;密码文件(文件名随意,主配置文件中对应上就可以,但是权限要求必须是600
,权限给多了给少了都会出现问题)
主配置文件的示例如下:rsyncd.conf(5) manpage (samba.org)
uid = nobody
gid = nobody
use chroot = yes
max connections = 4
syslog facility = local5
pid file = /var/run/rsyncd.pid
[ftp] # (1)
path = /var/ftp/./pub # (2)
comment = whole ftp area (approx 6.1 GB)
[notebook]
path=/home/fu-raspberry/Mkdoc/
auth users=root # (4)
secrets file=/etc/rsyncd.passwd # (3)
hosts allow=*
read only = false
- 下面是对ftp工程进行的单独配置,可以有多个工程,客户端传输也是通过工程名
- 要同步的路径
- 密码文件路径
- 用于认证的用户名
密码文件的示例如下,密码为 123456
配置完成后启动rsync服务即可
rsync的默认端口为873,启动后在Windows检查是否成功
Windows 配置¶
Windows需要配置Rsync客户端和定时任务
Rsync客户端¶
Cwrsync下载后解压并添加到环境变量即可使用
执行的命令与Linux相同,参考文档即可:rsync(1) manpage (samba.org)
值得注意的是Windows的路径前需要添加 /cygdrive/
rsync.exe -art --delete --password-file=/cygdrive/d/cwrsync_6.2.11_x64_free/etc/notebook_passwd.txt /cygdrive/d/Users/FuQingchen/Documents/Notebook/docs root@192.168.2.101::notebook #(1)
- 这里的notebok就是Linux服务器主配置文件里的notebook工程
Windodw定时任务¶
Windows定时任务通过计划任务程序实现,Topbook | 高效生活视频书 中有详细的介绍。Win11中进行了更新,但是大差不差。进入计划任务程序后新建Action,然后依次填写框中的三个部分即可创建出定时任务