综合结构rysnc
rsync参数
4.Rsync 命令对应选项
‐a #归档模式传输, 等于‐tropgDl
‐v #详细模式输出, 打印速率, 文件数量等
‐z #传输时进行压缩以提高效率
‐r #递归传输目录及子目录,即目录下得所有目录都同样传输。
‐t #保持文件时间信息
老男孩教育-Linux学院
‐o #保持文件属主信息
‐p #保持文件权限
‐g #保持文件属组信息
‐l #保留软连接
‐P #显示同步的过程及传输时的进度等信息
‐D #保持设备文件信息
‐L #保留软连接指向的目标文件
‐e #使用的信道协议,指定替代rsh 的shell 程序
‐‐exclude=PATTERN #指定排除不需要传输的文件模式
‐‐exclude‐from=file #文件名所在的目录文件
‐‐bwlimit=100 #限速传输
‐‐partial #断点续传
‐‐delete #让目标目录和源目录数据保持一致
第一个里程碑本地连接
本地拷贝数据命令
Local: rsync [OPTION...] SRC... [DEST]
本地拷贝数据示例
[root@backup ~]# rsync ‐avz /etc/passwd /tmp/
rsync #备份命令(cp)
[options] #选项
SRC... #本地源文件
[DEST] #本地目标文件
第二个里程碑远程连接
pull 拉取数据命令
Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
pull 拉取数据示例
[root@backup ~]# rsync ‐avz root@172.16.1.41:/etc/hostname ./ #拉取远程文件
[root@backup ~]# rsync ‐avz root@172.16.1.41:/root/ /backup/ #拉取远程目录下的
所有文件
[root@backup ~]# rsync ‐avz root@172.16.1.41:/root /backup/ #拉取远程目录以及目录下的所有文件
Pull #拉取, 下载
rsync #备份命令
[options] #选项
[USER@] #目标主机的系统用户
HOST #目主机IP 地址或域名
SRC... #目标主机源文件
[DEST] #下载至本地哪个位置
push 推送数据命令
Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
push 推送数据示例
rsync ‐avz /backup/2018‐10‐01 root@172.16.1.41:/tmp/
Push #推送, 上传
rsync #备份命令
[options] #选项
SRC... #本地源文件
[USER@] #目标主机的系统用户
HOST #目主机IP 地址或域名
[DEST] #目标对应位置
Rsync 借助SSH 协议同步数据存在的缺陷
1.使用系统用户(不安全)
2.使用普通用户(会导致权限不足情况)
第三个里程碑守护进程
1.创建rsync虚拟用户
useradd -s /sbin/nologin -M rsync
2.检查rsunc用户
[root@backup ~]# cat /etc/passwd |grep rsync
rsync:x:1001:1001::/home/rsync:/sbin/nologin
3.修改rsync配置文件
[root@backup ~]# vim /etc/rsyncd.conf
#Rsync server
##created by oldboy 15:01 2009-6-5
##rsyncd.conf start##
fake super = yes
uid = rsync
gid = rsync
use chroot = no
max connections = 2000
timeout = 600
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
#hosts allow = 10.0.0.0/24
#hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
#####################################
[data]
comment = www by old0boy 14:18 2012-1-13
path = /data
#####################################
[backup]
comment = www by old0boy 14:18 2012-1-13
path = /backup
"/etc/rsyncd.conf" 27L, 621C
3.1配置文件详解
uid = rsync # 运行进程的用户
gid = rsync # 运行进程的用户组
port = 873 # 监听端口
fake super = yes # 无需让rsync 以root 身份运行,允许接收文件的完整属性
use chroot = no # 禁锢推送的数据至某个目录, 不允许跳出该目录
max connections = 200 # 最大连接数
timeout = 600 # 超时时间
ignore errors # 忽略错误信息
read only = false # 对备份数据可读写
list = false # 不允许查看模块信息
auth users = rsync_backup # 定义虚拟用户,作为连接认证用户
secrets file = /etc/rsync.passwd # 定义rsync 服务用户连接认证密码文件路径
[backup] # 定义模块信息
comment = commit # 模块注释信息
path = /backup # 定义接收备份数据目录
4.创建rsync密码文件,并授权600
echo rsync_backup:123456 >/etc/rsync.password
chmod 600 /etc/rsync.password
5.启动rsync服务
systemctl start rsyncd
5.1检查服务是否启动
[root@backup ~]# ps -ef |grep rsync
root 936 1 0 May21 ? 00:00:00 /usr/bin/rsync --daemon --no-detach
root 5285 5096 0 04:22 pts/4 00:00:00 grep --color=auto rsync
5.2服务开机自启
systemctl enable rsyncd
检查
[root@backup ~]# systemctl is-enabled rsyncd
enabled
5.3服务是否正在运行
[root@backup ~]# systemctl is-active rsyncd
active
6.查看服务端口是否处于监听状态
[root@backup ~]# ss -lntup |grep rsync
tcp LISTEN 0 5 *:873 *:* users:(("rsync",pid=936,fd=3))
tcp LISTEN 0 5 :::873 :::* users:(("rsync",pid=936,fd=5))
7.创建共享目录,并修改所属用户
[root@backup ~]# mkdir -p /data
[root@backup ~]# chown rsync.rsync /data
检查
[root@backup ~]# ll -d /data
drwxr-xr-x 2 rsync rsync 147 May 21 22:01 /data