Rsync传输文件
一、简介
rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。
二、优缺点
(一)优点
- 优点 可以使用增量进行备份,支持socket,几种(支持推拉,都是以客户端为参照)
- .远程shell同道还可以加密(ssh)传输,socket,需要加密传输,可以利用×××服务或者ipsec服务.
- 绝大多数都是使用内网进行备份使用.
(二)缺点
- 大量小文件的时候,比对时间较长,有时候,同步过程中,rsync进程可能会停止或者僵死,如果小文件非常多就直接使用压缩包进行传输即可.
- 同步大文件的时候会出现中断的,未完成同步前是隐藏文件,可以通过续传(–partail)等参数进行实现续传.
- 一次性远程拷贝可以用scp,大量小文件要达成一个包在拷贝.
三、应用场景
rsync是可以实现增量备份的工具。配合任务计划,rsync能实现定时或间隔同步,配合inotify或sersync,可以实现触发式的实时同步。
四、模式
Rsync的命令格式可以为以下六种:
1. rsync [OPTION]... SRC DEST
2. rsync [OPTION]... SRC [USER@]HOST:DEST
3. rsync [OPTION]... [USER@]HOST:SRC DEST
4. rsync [OPTION]... [USER@]HOST::SRC DEST
5. rsync [OPTION]... SRC [USER@]HOST::DEST
6. rsync [OPTION]...rsync://[USER@]HOST[:PORT]/SRC [DEST]
对应于以上六种命令格式,rsync有六种不同的工作模式:
- 拷贝本地文件。当SRC和DES路径信息都不包含有单个冒号”:”分隔符时就启动这种工作模式。如:rsync -a /data /backup
- 使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号”:”分隔符时启动该模式。如:rsync -avz *.c foo:src
- 使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号”:”分隔符时启动该模式。如:rsync -avz foo:src/bar /data
- 从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含”::”分隔符时启动该模式。如:rsync -av [email protected]::www /databack
- 从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含”::”分隔符时启动该模式。如:rsync -av /databack [email protected]::www
- 列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。如:rsync -v rsync://10.0.0.41/www
五、参数解释
参数 | 说明 |
---|---|
-v, --verbose | 详细模式输出 |
-a, --archive | 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD |
-z, --compress | 对备份的文件在传输时进行压缩处理 |
-P | 显示进度 |
-r, --recursive | 对子目录以递归模式处理 |
-l, --links | 保留软链结 |
-p, --perms | 保持文件权限 |
-o, --owner | 保持文件属主信息 |
-g, --group | 保持文件属组信息 |
-D, --devices | 保持设备文件信息 |
-t, --times | 保持文件时间信息 |
-e, --rsh=command | 指定使用rsh、ssh方式进行数据同步 |
–exclude=PATTERN | 指定排除不需要传输的文件模式 |
–exclude-from=FILE | 排除FILE中指定模式的文件 |
-S, --sparse | 对稀疏文件进行特殊处理以节省DST的空间 |
–bwlimit=KBPS | 限制I/O带宽,KBytes per second |
–delete | 删除那些DST中SRC没有的文件 |
–password-file=FILE | 从FILE中得到密码 |
-n, --dry-run | 现实哪些文件将被传输 |
-w, --whole-file | 拷贝文件,不进行增量检测 |
-B, --block-size=SIZE | 检验算法使用的块尺寸,默认是700字节 |
-x, --one-file-system | 不要跨越文件系统边界 |
-R, --relative | 使用相对路径信息 |
-b, --backup | 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用–suffix选项来指定不同的备份文件前缀。 |
-u, --update | 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件,不覆盖更新的文件 |
-q, --quiet | 精简输出模式 |
-c, --checksum | 打开校验开关,强制对文件传输进行校验 |
补充参数
--delete 实现无差异数据同步
--bwlimit=KBPS 实现数据传输过程中限速
--exclude=PATTERN 指定一个文件或目录 --exclude={file1,file2} 可以排除多个无顺序规则文件或目录
--exclude-from=FILE 指定排除多个文件或目录信息,将排除信息写入到一个文件中,利用--exclude-from=排除文件名 类似于tar 打包排除命令
六、安装
环境介绍:
centos7
10.0.0.41 rsync服务端
10.0.0.42 rsync客户端
服务端部署
1.确认rsync软件服务是否存在
rpm -qa rsync
#安装 yum -y install rsync
2.手动配置rsync软件配置文件
vim /etc/rsyncd.conf
##全局配置
uid = root #用户
gid = root #用户组
use chroot = no #安全相关
max connections = 200 #最大链接数
timeout = 300 #超时时间
pid file = /var/run/rsyncd.pid #进程对应的进程号文件
lock file = /var/run/rsync.lock #锁文件
log file = /var/log/rsyncd.log #日志文件,显示出错信息
##模块配置
[backup] #模块名称
path = /data #模块对应的位置(路径)
ignore errors #忽略错误程序
read only = false #是否只读
list = false #是否可以列表
hosts allow = 10.0.0.0/24 #准许访问rsync服务器的客户范围
#hosts deny = 0.0.0.0/32 #禁止访问rsync服务器的客户范围
auth users = rsync_backup #不存在的用户;只用于认证
secrets file = /etc/rsync.password #设置进行连接认证的密匙文件
3.创建rsync备份目录/授权rsync用户管理备份目录;修改备份目录权限
mkdir -p /data
useradd rsync -s /sbin/nologin -M
chown -R rsync.rsync /data/
4.创建认证用户密码文件;修改文件权限
echo "rsync_backup:123456" >/etc/rsync.password
chmod 600 /etc/rsync.password
5.重启rsync守护进程服务
systemctl restart rsyncd.service
systemctl enable rsyncd.service
客户端部署
解:创建密码文件,客户端密码文件中,只需要密码即可。同时,密码文件的权限是600
echo "123456">/etc/rsync.password
chmod 600 /etc/rsync.password
客户端推送文件
rsync -avz aaa.txt rsync_backup@10.0.0.41::backup --password-file=/etc/rsync.password
注:rsync默认使用873端口,防火墙开启时,需放行端口
客户端拉取文件
rsync -avz rsync_backup@10.0.0.41::backup --password-file=/etc/rsync.password /tmp