rsync服务

rsync是一款开源的免费的,可实现全量和增量的本地和远程数据镜像同步备份的优秀工具。
区别于传统的复制工具cp,scp只能全量的进行本地的或者远程的拷贝
而rsync既可以进行全量的,还可以进行增量
rsync还可以实现删除功能
rsync可以快速的同步备份数据,包括最后修改时间变化,主从变化甚至文件部分内容变化等…都可以实时同步

  • rsync的三种工作模式

    1.本地数据传输模式
    rsync本地传输模式的语法为:

rsync    OPTION  XXX... DEST...     ##和cp的语法一样

其中OPTION表示要加的参数
XXX表示要拷贝的东西
DEST表示要拷贝的目的地
实例1.将hosts同步到/mnt下

[root@localhost mnt]# cp /etc/hosts  /mnt
[root@localhost mnt]# rsync /etc/hosts /mnt/
                ##这两个命令完全相同

实例2.将/home同步到/mnt下

[root@localhost /]# cp  -ap /home /mnt
[root@localhost mnt]# rsync -avz  /home/ /mnt/
sending incremental file list
./
student/
student/.bash_history
student/.bash_logout
student/.bash_profile
student/.bashrc
......
sent 5568 bytes  received 667 bytes  12470.00 bytes/sec
total size is 9282  speedup is 1.49
            ##这两个命令也相同

2.通过远程shell进行数据传输
通过远程shell(ssh rcp)进行传输,分为两种方式:

推送pushrsync [OPTION...]  SRC [user@]ip:DEST 
拉取pullrsync [opTION...]  [user@]ip:SRC  DEST

实例1.将server上~/123传送到desktop上

[root@localhost mnt]# rsync -avz  -e 'ssh ' root@172.25.254.203:/root/123 /mnt
root@172.25.254.203's password: 
receiving incremental file list
123

sent 30 bytes  received 69 bytes  22.00 bytes/sec
total size is 0  speedup is 0.00

实例2.将刚刚得到的123返还回去

[root@localhost mnt]# rsync -avz 123 -e 'ssh' root@172.25.254.203:~/
root@172.25.254.203's password: 
sending incremental file list
123

sent 64 bytes  received 31 bytes  27.14 bytes/sec
total size is 0  speedup is 0.00

3.通过守护进程的方式进行远程传输
与shell方式差不多,不过采用的是虚拟用户,因用的较少,在此不总结。

  • 参数解析
    -v, –verbose 详细模式输出。
    -z, –compress 对备份的文件在传输时进行压缩处理。
    -q, –quiet 精简输出模式。
    -r, –recursive 对子目录以递归模式处理。
    -t, –times 保持文件时间信息。
    -a, –archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD。
    -e, –rsh=command 指定使用rsh、ssh方式进行数据同步。
    -D, –devices 保持设备文件信息。
    -l, –links 保留软链结。

特别说明:

rsync -avz /opt /mnt        ##opt后面没有斜线,将opt及内容都同步过来
rsync -avz /opt/ /mnt       ##opt后面有斜线,只同步opt里的内容而不包括opt

以守护进程的方式传输数据
1.首先准备三台机器
服务端:172.25.62.1(server3)
进程端:172.25.254.103(server1)
172.25.254.203(server2)
安装rsync服务之后
配置服务端的配置文件

[root@server3 /]# cat /etc/rsyncd.conf 
# /etc/rsyncd: configuration file for rsync daemon mode

# See rsyncd.conf man page for more options.

# configuration example:

uid = rsync
gid = rsync
#use chroot = yes       
max connections = 4     ##最大连接数
pid file = /var/run/rsyncd.pid  ##进程号的文件,进程启动之后会将进程号放里面
lock file = /var/run/rsync.lock ##锁文件,服务停止时会用到
log file = /var/log/rsyncd.log  ##日志文件
# exclude = lost+found/
# transfer logging = yes
timeout = 900           ##超时时间
# ignore nonreadable = yes
# dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
[oldboy]                ##模块
path = /oldboy/             ##路径 rysnc服务端的路径。客户端下载或上传的路径
ignore errors               ##忽略错误
read only = false           ##只读为假,就可以上传文件
list = false                ##列表为假,可以列表文件
hosts allow = 172.25.254.103/32     ##允许谁来连
hosts deny = 0.0.0.0/32         ##禁止谁来连
auth users = rsync_backup       ##虚拟用户
secrets file = /etc/rsync.password  ##存放上边虚拟用户的密码文件

配置完文件之后,创建配置文件中所需要的目录及文件:
以下操作全是用超户完成:

mkdir -p /oldboy        
useradd rsync -s /sbin/nologin -M   ##建立用户rsync,不可登陆,并且没有家目录
chown -R rsync.rsync /oldboy/       ##给oldboy目录一个权限
echo "rsync_backup:oldboy" >>/etc/rsync.password
                    ##按照配置文件的设定设定密码
chmod 600 /etc/rsync.password 
                    ##给秘密文件进行权限设置
rsync   --daemon        ##启动该服务
ss -antlp |grep 873
                    ##查看服务是否启动成功

客户端:

[root@server2 www]# rsync -avz html_2017-10-29.tar.gz rsync://rsync_backup@172.25.254.1:/oldboy --password-file=/etc/rsync.password
sending incremental file list
html_2017-10-29.tar.gz

sent 196 bytes  received 27 bytes  446.00 bytes/sec
total size is 109  speedup is 0.49
                    ##指定路径
[root@server2 www]# rsync -avz html_2017-10-29.tar.gz rsync_backup@172.25.254.1::oldboy --password-file=/etc/rsync.password
sending incremental file list
html_2017-10-29.tar.gz

sent 196 bytes  received 27 bytes  446.00 bytes/sec
total size is 109  speedup is 0.49
                ##指定模块

拉取:

[root@server2 www]# rsync -avz rsync_backup@172.25.254.1::oldboy .Password: 
receiving incremental file list
./
html_2017-10-29.tar.gz

sent 86 bytes  received 303 bytes  111.14 bytes/sec
total size is 112  speedup is 0.29
                ##拉取模块(包含模块的所有东西)
[root@server2 www]# rsync -avz rsync://rsync_backup@172.25.254.1:/oldboy/html_2017-10-29.tar.gz .
Password: 
receiving incremental file list
html_2017-10-29.tar.gz

sent 83 bytes  received 286 bytes  105.43 bytes/sec
total size is 112  speedup is 0.30
                ##拉取指定的东西
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值