Rsync 详细配置说明
rsync是类unix系统下的数据镜像备份工具。
它的特性如下:
可以镜像保存整个目录树和文件系统。
可以很容易做到保持原来文件的权限、时间、软硬链接等等。
无须特殊权限即可安装。
快速:第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件。rsync 在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。
安全:可以使用scp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
支持匿名传输,以方便进行网站镜象。
rsync的安装,centos默认已经自带就安装了程序。无需安装。
准备:
检查是否已经安装
rpm -qa rsync
1、安装
yum install rsync
2、命令输入
rsync
出现以下表示安装成功:
rsync version 3.0.6 protocol version 30
Copyright (C) 1996-2009 by Andrew Tridgell, Wayne Davison, and others.
Web site: http://rsync.samba.org/
Capabilities:
64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,
socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
append, ACLs, xattrs, iconv, symtimes
rsync使用服务端-客户端同步文式
双机备份配置:
服务端:
网上有很多教程使用xinet.d来启动rsync服务端。
这里使用rsync自带的来启动服务端
如:rsync --daemon --config=/home/leyewen/etc/rsync/rsyncd.conf
1、配置rsyncd.conf如下:
# 全局参数
# 运行rsync守护进程的用户
uid = root
# 运行rsync守护进程的组
gid = root
# 不使用chroot
use chroot = no
# 最大连接数为4
max connections = 2
# 是否检查口令文件的权限
strict modes = yes
# 默认端口873 这里最好改成1024以上端口 并且
port = 873
#pid文件的存放位置
pid file = /usr/local/rsync/rsyncd.pid
#锁文件的存放位置
lock file = /usr/local/rsync/rsync.lock
log file = /usr/local/rsync/log/rsyncd.log
motd file = /usr/local/rsync/rsyncd.motd
# 模块参数
# 这里是认证的模块名,在client端需要指定
[backup]
# 需要做镜像的目录 不可缺少
path = /home/rsync/data
# 这个模块的注释信息
comment = My Backup
# 可以忽略一些无关的IO错误
ignore errors
# 只读
read only = no
# 不允许列文件
list = no
# 认证的用户名 如果没有这行则表明是匿名 此用户与系统无关--->这里的auth users =与rsync.pass中的用户名一致
auth users = sensor
# 密码和用户名对比表,密码文件自己生成
secrets file = /usr/local/rsync/rsync.pass
# 允许主机
# hosts allow = 192.168.1.1,10.10.10.10
# 禁止主机
# hosts deny = 0.0.0.0/0
#transfer logging = yes
2、配置rsync密码(在上边的配置文件中已经写好路径) /usr/local/rsync/rsync.pass (名字随便写,只要和上边配置文件里的一致即可),格式(一行一个用户)
# 运行rsync守护进程的用户
uid = root
# 运行rsync守护进程的组
gid = root
# 不使用chroot
use chroot = no
# 最大连接数为4
max connections = 2
# 是否检查口令文件的权限
strict modes = yes
# 默认端口873 这里最好改成1024以上端口 并且
port = 873
#pid文件的存放位置
pid file = /usr/local/rsync/rsyncd.pid
#锁文件的存放位置
lock file = /usr/local/rsync/rsync.lock
log file = /usr/local/rsync/log/rsyncd.log
motd file = /usr/local/rsync/rsyncd.motd
# 模块参数
# 这里是认证的模块名,在client端需要指定
[backup]
# 需要做镜像的目录 不可缺少
path = /home/rsync/data
# 这个模块的注释信息
comment = My Backup
# 可以忽略一些无关的IO错误
ignore errors
# 只读
read only = no
# 不允许列文件
list = no
# 认证的用户名 如果没有这行则表明是匿名 此用户与系统无关--->这里的auth users =与rsync.pass中的用户名一致
auth users = sensor
# 密码和用户名对比表,密码文件自己生成
secrets file = /usr/local/rsync/rsync.pass
# 允许主机
# hosts allow = 192.168.1.1,10.10.10.10
# 禁止主机
# hosts deny = 0.0.0.0/0
#transfer logging = yes
2、配置rsync密码(在上边的配置文件中已经写好路径) /usr/local/rsync/rsync.pass (名字随便写,只要和上边配置文件里的一致即可),格式(一行一个用户)
账号:密码
vi /usr/local/rsync/rsync.pass
例子:
sensor:passwd
权限:因为rsync.pas存储了rsync服务的用户名和密码,所以非常重要。要将rsync.pas设置为root拥有, 且权限为600。
chmod 600 /usr/local/rsync/rsync.pass
3、启动rsync服务端
rsync --daemon --config=/usr/local/rsync/rsyncd.conf
客户端:
rsync -avz --progress --delete --port=873 --password-file=/home/leyewen/etc/rsync/rsync-client.pass --exclude=.svn/ --exclude=WEB-INF/ /home/leyewen/svn/* leyewen@192.168.1.112::back
这里同步本地的svn下所有文件到服务端配置的备份目录
--exclude=.svn/ --exclude=WEB-INF/ 过滤svn和WEB-INF目录
配置说明
vi /usr/local/rsync/rsync.pass
例子:
sensor:passwd
权限:因为rsync.pas存储了rsync服务的用户名和密码,所以非常重要。要将rsync.pas设置为root拥有, 且权限为600。
chmod 600 /usr/local/rsync/rsync.pass
3、启动rsync服务端
rsync --daemon --config=/usr/local/rsync/rsyncd.conf
客户端:
rsync -avz --progress --delete --port=873 --password-file=/home/leyewen/etc/rsync/rsync-client.pass --exclude=.svn/ --exclude=WEB-INF/ /home/leyewen/svn/* leyewen@192.168.1.112::back
这里同步本地的svn下所有文件到服务端配置的备份目录
--exclude=.svn/ --exclude=WEB-INF/ 过滤svn和WEB-INF目录
配置说明
rsync -avz /home/rsync/data/* sensor@211.144.76.142::backup
rsync -avz 同步目录|文件 用户名@IP::模块名
-a 参数,相当于-rlptgoD,-r 是递归 -l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限;-t 保持文件原有时间;-g 保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件;
-z 传输时压缩;
-P 传输进度;
-v 传输时的进度等信息,和-P有点关系,自己试试。可以看文档;
-z 传输时压缩;
-P 传输进度;
-v 传输时的进度等信息,和-P有点关系,自己试试。可以看文档;
另外:
定制欢迎信息文件rsyncd.motd
如:
[root@211 rsync]# cat rsyncd.motd
+++++++++++++++++++++++++++
+ wellcome rsyncd +
+++++++++++++++++++++++++++
+++++++++++++++++++++++++++
+ wellcome rsyncd +
+++++++++++++++++++++++++++
注意:
--password-file=/home/leyewen/etc/rsync/rsync-client.pass
通过--password-file指定密码文件,
1,注意修改.pass 文件为chmod 600
2,rsync 服务端格式为usrname:pwd 但客户端格式为pwd ,所以这里容易出错!!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?