有人问:有两个目录 A B,A为主目录,B为备份目录,当A内容更新之后B要同时更新,当B删除文件之后,A也要同步删除,如何实现这个场景。
其实实现起来非常简单,
只需要安装使用rsync这个软件
然后配置两条命令即可
想要实现A目录实时同步到B目录 使用
rsync -av --delete A/ B/
而想要实现B目录删除之后实时更新到A
rsync -av --delete B/ A/
如果想要保持一致更新迭代 那就需要增加计划任务
- 打开“任务计划程序”。
- 创建一个新的任务,设置触发器(例如,每天或每小时运行一次)。
- 在“操作”部分,添加一个操作来运行批处理脚本
sync.bat
。
创建一个名为 sync.bat
的批处理文件,内容如下:
@echo off
rsync -av --delete A/ B/
rsync -av --delete B/ A/
这样就可以实现了
下边我们来详细说下 如何使用rsync
在Windows上安装和配置rsync
在Windows上,您可以通过以下几种方式安装和配置rsync:
使用Cygwin
-
安装Cygwin:
- 访问Cygwin官网(Cygwin)并下载安装程序。
- 运行安装程序,选择需要的包管理器进行安装。
- 在安装过程中搜索并安装
rsync
包。
-
配置rsync:
- 在Cygwin终端中,您可以使用rsync命令,但需要将Windows路径转换为Unix风格。例如,
C:\
变为/cygdrive/c
。 - 您可以创建一个rsync命令别名或批处理脚本来简化操作。
- 在Cygwin终端中,您可以使用rsync命令,但需要将Windows路径转换为Unix风格。例如,
使用WSL(Windows Subsystem for Linux)
-
启用WSL:
- 在Windows 10或更高版本中,启用“适用于Linux的Windows子系统”功能。
- 从Microsoft Store安装您选择的Linux发行版。
-
安装rsync:
- 打开WSL终端,使用包管理器安装rsync。例如,在Ubuntu中,您可以使用:
sudo apt update sudo apt install rsync
- 打开WSL终端,使用包管理器安装rsync。例如,在Ubuntu中,您可以使用:
-
配置rsync:
- 在WSL中,您可以像在Linux系统中一样使用rsync命令。
使用第三方rsync工具
-
下载第三方rsync工具:
- 您可以下载并安装如Cowboy's rsync(rsync)等第三方rsync工具。
-
配置rsync:
- 安装后,您可以在命令行中直接使用rsync命令。
在Linux上配置rsync
在Linux上,rsync通常已经预装或者可以通过包管理器轻松安装。以下是配置rsync的步骤:
安装rsync
- 安装rsync:
- 在大多数Linux发行版中,您可以使用包管理器安装rsync。例如,在Ubuntu或Debian中,您可以使用:
sudo apt update sudo apt install rsync
- 在大多数Linux发行版中,您可以使用包管理器安装rsync。例如,在Ubuntu或Debian中,您可以使用:
配置rsync服务端
-
创建rsync配置文件:
- 创建
/etc/rsyncd.conf
(对于全局配置)或~/.rsync/config
(对于用户级配置)。 - 配置文件示例:
uid = nobody gid = nogroup max connections = 4 log file = /var/log/rsyncd.log [shared] path = /var/rsync/shared comment = Shared data read only = no list = yes
- 创建
-
启动rsync服务:
- 您可以使用
rsync --daemon
命令启动rsync服务,或者创建一个systemd服务文件来管理rsync服务。
- 您可以使用
配置rsync客户端
-
同步文件:
- 使用rsync命令同步文件。例如,从远程服务器同步到本地:
rsync -avz user@remote_host::shared /local/path
- 使用rsync命令同步文件。例如,从远程服务器同步到本地:
-
实时同步:
- 要实现实时同步,您可以使用
inotify
工具监控文件变化,并触发rsync命令。
- 要实现实时同步,您可以使用
这些步骤提供了在Windows和Linux上安装和配置rsync的基本指南。根据您的具体需求,您可能需要进行额外的配置和调整。