Ubuntu22.04LTS配置rsync服务
近期准备同步一些文件,准备选用rsync,这里记录一下配置过程。
rsync是一个开源的快速备份工具,可以镜像保存整个目录树和文件系统。
rsync使用所谓的"rsync算法"来使本地和远程的文件保持同步。这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。
rsync可以工作在unix/linux,windows,mac等等。
rsync可以实现增量备份,即上传文件时,先与本地文件进行比较,只上传本地文件有变化的部分,这样就避免了上传整个文件。
我的服务端端是Ubuntu 22.04LTS,系统默认情况下安装了rsync,如果没安装,可以用下面命令安装:
sudo apt-get install rsync
服务器端配置
1.编辑/etc/default/rsync
# 打开rsync
sudo vim /etc/default/rsync
# 编辑rsync
RSYNC_ENABLE=true
2.创建/etc/rsyncd.conf,并填写配置信息
sudo vim /etc/rsyncd.conf
添加以下编辑配置信息:
max connections = 2
log file = /var/log/rsync.log
timeout = 300
Charset = UTF-8
[share] # 模块名
comment = Public Share
# path为需要同步的文件夹路径
path = /home/share
read only = no
list = yes
uid = root
gid = root
# 必须和 rsyncd.secrets中的用户名对应
auth users = user
secrets file = /etc/rsyncd.secrets
3.创建/etc/rsyncd.secrets,配置用户名和密码.
sudo vim /etc/rsyncd.secrets
配置用户名和密码,密码可以任意设置
user:password
4.修改rsyncd.secrets文件的权限
sudo chmod 600 /etc/rsyncd.secrets
5.启动/重启rsync服务
sudo /etc/init.d/rsync restart
客户端配置
由于我客户端系统是windows,所以需要在windows上安装rsync的客户端cwRsync
1.下载并安装cwRsync
下载地址:csdn下载cwRsync
2.下载后直接解压缩到D:\cwRsync目录下,将D:\cwRsync\bin添加到环境变量path中,就能直接使用
测试
在客户端运行下面的命令检查,确认rsync配置成功,user是在服务器中rsyncd.secrets文件中配置的用户名,xx.xx.xx.xx 是服务器的ip地址,也可以填写服务器对应的域名,share是rsyncd.conf中定义的模块
rsync user@xx.xx.xx.xx::share
输入密码后,如果输出以下类似内容,说明配置成功
drwxr-xr-x 4096 2006/12/13 09:41:59 .
drwxr-xr-x 4096 2006/11/23 18:00:03 folders
同步
1.将本地文件同步至服务器
# 将当前目录下public路径下的全部内容,同步至服务器rsyncd.conf中指定的share模块
rsync -av ./public/ user@xx.xx.xx.xx::share
2.将服务器文件同步至本地
rsync -cvazu --progress user@xx.xx.xx.xx::share /rsyn
3.中文乱码问题
在使用时,由于共享资源里有中文,客户端用的是windows客户,客户端请求时,添加--iconv=GBK,UTF-8参数解决,表示客户端为GBK字符,服务端UTF-8字符
rsync --iconv=GBK,UTF-8 rsync://user@xx.xx.xx.xx/share