大家好,又见面了,我是你们的朋友全栈君。
一、rsync的特性
rsync的特性:
1、 支持拷贝特殊文件,设备等
2、 可以有排除指定文件或者目录同步的功能,相当于tar的排除功能
3、 可以做到保持源文件或目录的权限、时间、软硬连接、属主、组等所有属性均不改变-p
4、 可实现增量同步,既只能同步发生变化的数据,因此数据传输效率很高(tar -N)
5、 可以使用rcp,rsh,ssh等方式来配合传输文件(rsync本身不对数据加密)
6、 可以通过socket(进程方式)传输文件和数据(服务端和客户端)
7、 支持尼米ingde或认证(无需系统用户)的进程模式传输,可实现方便安全的进行数据备份及镜像
二、rsync的应用
web服务器到备份服务器之间—》定时备份站点数据及配置 cron rsync
nfs服务端到备份服务器之间—》实时备份 sersync rsync inotify rsync lrsyncd rsync
三、rsync的用法
rsync的参数:
-v 详细模式输出,传输的进度等信息
-z 传输的时候进行压缩提高传输的效率
-a 归档模式,表示递归方式传输并且保持所有文件属性,等于-rtopgDl
-e -rsh = COMMAND使用的通道协议,指定替代rsh的shell程序
–bwlimit 限速
三、rsync的三种模式
1)local模式
rsync -avz /etc/hosts /tmp/ ===》cp
rsync -avz –delete /tmp1/ /mnt/ ===>rm
第二种工作模式、使用远程的shell -e指定隧道
推 把文件推到服务器端 注意这里的ip是对面的ip
rsync -avzP -e ‘ssh -p 22’ /tmp/ root@10.0.0.41:/tmp
拉
rsync -avzP -e ‘ssh -p 22’ root@10.0.0.41/tmp /opt 这里是把tmp目录和tmp里面的内容都拉过来
rsync -avzP -e ‘ssh -p 22’ root@10.0.0.41:/tmp/ /opt 这个是把tmp的子目录里面的内容全部拉过来注意拉的ip是对面的ip
如果传输速度太慢。要在/etc/ssh/sshd_config 81行注释掉、80行打开,122行打开
第三种以守护进程(socket)的方式传输数据
需要做以下准备
1、配置服务端rsync
1)服务端的错误日志cat /var/log/rsyncd.log
1)首先给备份服务器设置配置文件
vim /etc/rsyncd.conf
代码语言:javascript复制uid = rsync
gid = rsync
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
ignore errors
read only =false
list = false
hosts allow =172.168.1.0/24
#hosts deny = 0.0.0.0/32#---》上面是允许网段,这个是不允许网段,所以配置文件二选一
auth users = rsync_backup
secrets file = /etc/rsync.password
[backup]
path = /backup
2)创建uid和gid useradd rsync -s /sbin/nologin -M
3)创建模块目录并且授权
mkdir /backup
chown -r rsync /backup/
4)创建密码文件,并且收缩权限
echo “rsync_backup:pyrene”>/etc/rsync.password
chmod 600 /etc/rsync.password
5、查看版本和端口
rsync —daemon
netstat -lntup|grep rsync
Ps -ef |grep rsync|grep -v grep
6、加入开机自启动
chkconfig rsync on
echo “rsync –daemon”>>/etc/rc.local
tail -1 /etc/rc.local
2配置rsync客户端
1、创建密码文件
echo “pyrene” >/etc/rsync.password
chmod 600 /etc/rsync.password
2、创建备份目录(用于打包文件)
mkdir /backup
3,daemon模式用法
第一种模式:
push:推 下面是把客户端的tmp下内容推到服务端叫做rsync_backup这个auth users下的backup模块里面
rsync -avz /tmp/ rsync_backup@172.16.1.41::backup —password-file=/etc/rsync.password
拉
rsync -avz rsync_backup@192.168.241.132::backup /tmp/ —password-file=/etc/rsync.password
第二种模式:
拉
Rsync -avz rsync://rsync_backup@192.168.241.132/backup/ /tmp –password-file=/etc/rsync.password
推
rsync -avz /tmp/ rsync://rsync_backup@192.168.241.132/backup/
–password-file=/etc/rsync.password
四、排除及无差异同步
排除单个文件:
rsync -avz —exclude=a /backup/ rsync_backup@172.168.16.1.41::backup —password-file=/etc/rsync.password
排除多个文件:
rsync -avz —exclude={a,b} /backup/ rsync_backup@172.168.16.1.41::backup —password-file=/etc/rsync.password
也可以把—exclude={a..g}或者—exclude-from=paichu.log
无差异同步:(谨慎使用)
–delete
rsync -avz —delete /backup/ rsync_backup@172.168.16.1.41::backup —password-file=/etc/rsync.password
上面就是把前面的目录里面的东西和后面模块里面的一样
总结:rsync三种工作模式
1、 local:rsync(cp rm)
2、 通道模式:
Rsync -avzP -e ‘ssh -p 22’ /etc root@10.0.0.142:/tmp
一般配合ssh key面密钥传输,结合定时任务
3、daemon模式:
内网不需要加密,加密性能有损失
如果需要跨机房需要rsync vpn(pptp,openvpn,ipsec)
扩展:
1、关于限速和断点续传
断点续传:–partial
限速参数:–bwlimit
[root@nfs01 ~]# rsync -avz –bwlimit=1 /root/test1 rsync_backup@172.168.1.41::backup –password-file=/etc/rsync.password
上面就是设置限速,这里设置的是1k每秒
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/155664.html原文链接:https://javaforall.cn