Rsync 命令的基本使用

Rsync的介绍

远程数据同步工具,支持本地复制与远程同步,优于scp,cp。rsync基础采用c/s架构,监听端口tcp 873;

一、环境准备

1.两台centos7 系统主机
2.主机内网可互通
3.修改主机名
4.配置好hosts文件

二、命令的使用

1.安装rsync命令

[root@server-rsync ~]# yum install rsync -y

2.rsync常用选项

# 最常用选项
 rsync -avz 

# 选项说明
-a 包含-rtplgoD
-r 同步目录时要加上,类似cp时的-r选项
-v 同步时显示一些信息,让我们知道同步的过程
-l 保留软连接
-L 加上该选项后,同步软链接时会把源文件给同步
-p 保持文件的权限属性
-o 保持文件的属主
-g 保持文件的属组
-D 保持设备文件信息
-t 保持文件的时间属性
--delete 删除DEST中SRC没有的文件
--exclude 过滤指定文件,如--exclude “logs”会把文件名包含logs的文件或者目录过滤掉,不同步
-P 显示同步过程,比如速率,比-v更加详细
-u 加上该选项后,如果DEST中的文件比SRC新,则不同步
-z 传输时压缩

3.本地复制

[root@server-rsync ~]# ls
anaconda-ks.cfg
[root@server-rsync ~]# ls /opt/
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo  zhouxiang
[root@server-rsync ~]# rsync -avz /opt/* ./
sending incremental file list
CentOS-Base.repo
CentOS-CR.repo
CentOS-Debuginfo.repo
CentOS-Media.repo
CentOS-Sources.repo
CentOS-Vault.repo
CentOS-fasttrack.repo
zhouxiang

sent 3403 bytes  received 164 bytes  7134.00 bytes/sec
total size is 7825  speedup is 2.19
[root@server-rsync ~]# ls
anaconda-ks.cfg   CentOS-CR.repo         CentOS-fasttrack.repo  CentOS-Sources.repo  zhouxiang
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo      CentOS-Vault.repo
[root@server-rsync ~]#

三、rsync 通过ssh通道传输方式

1.推送数据到远程主机

# 服务端推送数据客户端通过ssh通道传输
[root@server-rsync ~]# rsync -avz -e 'ssh -p22' /opt/* root@client-rsync:/opt/
root@client-rsync's password: 
sending incremental file list
CentOS-Base.repo
CentOS-CR.repo
CentOS-Debuginfo.repo
CentOS-Media.repo
CentOS-Sources.repo
CentOS-Vault.repo
CentOS-fasttrack.repo
zhouxiang

sent 3403 bytes  received 164 bytes  1019.14 bytes/sec
total size is 7825  speedup is 2.19
[root@server-rsync ~]#

# 进去客户端查看
[root@client-rsync ~]# ls /opt/
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo  zhouxiang
[root@client-rsync ~]#

2.从远程主机拉取数据

[root@server-rsync ~]# rsync -avz -e 'ssh -p22' root@client-rsync:/opt/ ./
root@client-rsync's password: 
receiving incremental file list
./
CentOS-Base.repo
CentOS-CR.repo
CentOS-Debuginfo.repo
CentOS-Media.repo
CentOS-Sources.repo
CentOS-Vault.repo
CentOS-fasttrack.repo
zhouxiang

sent 166 bytes  received 3425 bytes  1026.00 bytes/sec
total size is 7825  speedup is 2.18
[root@server-rsync ~]# ls
anaconda-ks.cfg   CentOS-CR.repo         CentOS-fasttrack.repo  CentOS-Sources.repo  zhouxiang
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo      CentOS-Vault.repo
[root@server-rsync ~]#

四、rsync 守护进程传输方式,自身非常重要的功能

1.用法介绍

# 这是守护进程传输方式常用写法
[root@server-rsync ~]# rsync -avz /root/C* rsync_backup@172.168.100.40::backup/ --passwprd-file=/etc/rysnc.passwprd

# rsync_backup 表示rsync的虚拟用户,传输时使用rsync的用户传输
# ::backup/ 表示模块并不是目录,但可以在模块中定义这个目录(服务端需备份的路径)
# --passwprd-file=/etc/rysnc.passwprd 表示指定rysnc虚拟用户的密码文件

使用 rsync 守护进程传输方式与ssh没有关系,守护进程方式传输数据时不需要输入ssh密码也不需要ssh密钥认证,只需要配置好rsync虚拟用户和密码,因为这种方式是以配置的rsync虚拟用户的省份传输数据的。

2.rsync 服务端配置 /etc/rsyncd.conf

# 以rsync用户身份来传输数据(需创建这个用户)
uid = rsync
# 以rsync用户组来传输数据
gid = rsync
# 监听端口默认873
port = 873
# 程序出现文件就会开启,开启给个空目录就行
use chroot = no
# 最大可连接客户端数
max connections =2000
# 超时
timeout = 600
# rsync进程pid存放文件
pid file = /var/run/rsyncd.pid
# 锁文件
lock file = /var/run/rsync.lock
# 日志文件
log file = /var/log/rysnc.log
# 忽略错误
ignore errors
# 可读写
read only = false 
# 不允许列出模块名称
list = false
# 监听内网rsync服务端地址
address = 172.168.100.30
# 允许传输网段
hosts allow = 172.168.100.0/24
# 拒绝传输网段,一般不使用
hosts deny = 0.0.0.0/32
#指定rsync虚拟用户,与系统用户无关
auth users = rsync_backup
# 指定rsync虚拟用户密码文件
secrets file = /etc/rsync.password

#  指定模块并定义模块对应的目录,可配置多个模块
[backup]
path = /backup

[data]
path = /data
# 拷贝进去再修改

uid = rsync
gid = rsync
port = 873
use chroot = no
max connections =2000
timeout = 600
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rysnc.log
ignore errors
read only = false
list = false
address = 172.168.100.30
hosts allow = 172.168.100.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password

[backup]
path = /backup

[data]
path = /data

3.创建 rsync 这个用户,不创建家目录,不可登录系统

[root@server-rsync ~]# useradd -M -s /sbin/nologin rsync
[root@server-rsync ~]# id rsync
uid=1000(rsync) gid=1000(rsync) groups=1000(rsync)

4.创建 /backup/ 目录 并授权给 rsync用户

[root@server-rsync ~]# mkdir /backup
[root@server-rsync ~]# chown -R rsync:rsync /backup/
[root@server-rsync ~]# ll -d /backup/
drwxr-xr-x. 2 rsync rsync 6 Apr  6 04:59 /backup/
[root@server-rsync ~]#

5.创建rsync_backup虚拟用户和密码文件,并设置600权限

[root@server-rsync ~]# echo "rsync_backup:000000" > /etc/rsyncd.password
[root@server-rsync ~]# cat /etc/rsyncd.password 
rsync_backup:000000
[root@server-rsync ~]#

# 设置600 权限防止因权限问题报错
[root@server-rsync ~]# chmod 600 /etc/rsyncd.password 
[root@server-rsync ~]# ll /etc/rsyncd.password 
-rw-------. 1 root root 20 Apr  6 05:06 /etc/rsyncd.password
[root@server-rsync ~]#

6.启动rsync守护进程,并查看进程和端口是否启动,关闭防火墙

[root@server-rsync ~]# rsync --daemon
[root@server-rsync ~]# ss -lntp |grep 873
LISTEN     0      5      172.168.100.30:873                      *:*                   users:(("rsync",pid=2764,fd=3))
[root@server-rsync ~]#
[root@server-rsync ~]# ps aux |grep rsync
root       2764  0.0  0.0 114640   488 ?        Ss   05:11   0:00 rsync --daemon
root       2774  0.0  0.0 112644   948 pts/0    R+   05:12   0:00 grep --color=auto rsync
[root@server-rsync ~]#

# 关闭防火墙
[root@server-rsync ~]# systemctl stop firewalld
[root@server-rsync ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
[root@server-rsync ~]#
[root@server-rsync ~]# setenforce 0

1.推送数据至远程主机

方式1:这种推送需手动输入密码
[root@client-rsync-node1 ~]# #rsync -avz /backup/ rsync_backup@server-rsync::backup/

方式2:客户端总配置密码文件,通过指定密码文件进行直接推送
[root@client-rsync-node1 ~]# vi /etc/rsync.password
[root@client-rsync-node1 ~]# cat /etc/rsync.password 
000000
# 密码文件必须设置权限600,否则会报错
[root@client-rsync-node1 ~]# chmod 600 /etc/rsync.password

[root@client-rsync-node1 ~]# rsync -avz /backup/ rsync_backup@server-rsync::backup/ --password-file /etc/rsync.password 

2.从远程拉取数据

[root@client-rsync-node2 ~]# rsync -avz rsync_backup@server-rsync::backup /root/ --password-file /etc/rsync.password

五、无差异备份数据

在服务端数据和客户端数据同步时,如果删除服务端的某条备份数据后,在到客户端进行无差异备份则服务端没有的数据客户端就算有也会删除

# 无差异数据拉取 
[root@client-rsync-node2 ~]# rsync -avz --delete  rsync_backup@server-rsync::backup /backup/ --password-file /etc/rsync.password

# 无差异数据推送
[root@client-rsync-node2 ~]# rsync -avz --delete /backup/ rsync_backup@server-rsync::backup --password-file /etc/rsync.password
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350