数据同步工具,相当于scp,cp,rm,但是还要优先于他们每一个命令
优点: 增量同步,通常和crond一起使用
缺点:大文件效率高,小文件效率低,
解决方法:tar打包
分三类:
1. 本地传输,
2. 两台之间远程传输,
3. 多台之间传输:以socket进程,多组传输
#参数引用
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-v, --verbose 详细模式输出
-z, --compress 对备份的文件在传输时进行压缩处理
--delete 删除那些DST中SRC没有的文件
--delete-excluded 同样删除接收端那些被该选项指定排除的文件
-e, --rsh=COMMAND 指定使用rsh、ssh方式进行数据同步
uid = rsync
gid = rsync
use choroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/run/rsyncd.log
[backup]
path = /backup/
ignore errors
read only = false
list = false
hosts allow = 192.168.200.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
**********************************************
useradd -M -s /sbin/noliogin rsync
rsync --daemon
netstat -antup |grep rsync
mkdir /backup
chown rsync.rsync /backup
echo "rsync_backup:123456" > /etc/rsync.password
chmod 600 /etc/rsync.password
echo "rsync --daemon" >> /etc/rc.local
多台之间,socket进程,多组传输
创建配置文件 /etc/rsyncd.conf
#!/bin/bash
uid = rsync #用户创建
gid = rsync #用户组创建
use choroot = no #程序安全设置
max connections = 200 #客户端连接数
timeout = 300 #超时时间
pid file = /var/run/rsyncd.pid #进程号文件设置
lock file = /var/run/rsync.lock #进程锁
log file = /var/run/rsyncd.log #日志文件
[backup] #模块名字
path = /backup/ #server端的目录,用来接收client的数据请求
ignore errors #有错误时忽略
read only = false #可读可写(true或false)
list = false #阻止远程列表,阻止client看server的列表
hosts allow = 192.168.200.0/24 #允许ip
#禁止ip四个0是禁止所有,由于上下级书写,所有禁止除了上面的ip的所有ip,但是有个32,表示“非”,那么下行是不禁止任何ip
hosts deny = 0.0.0.0/32
auth users = rsync_backup #虚拟用户
secrets file = /etc/rsync.password #存放用户和密码的文件
##########################################外面执行命令
useradd -M -s /sbin/noliogin rsync #2:添加rsync程序用户
rsync --daemon #3:启动服务
netstat -antup |grep rsync # 查看有没有启动 rsync默认监听873端口
mkdir /backup #4:创建目录backup
chown rsync.rsync /backup #并改变属主属组为rsync
echo "rsync_backup:123456" > /etc/rsync.password #5:创建密码
chmod 600 /etc/rsync.password #6:改变权限必须是只能是属主读写
echo "rsync --daemon" >> /etc/rc.local #7:加入开机启动
# 扩展
# 关闭服务 #pkill rsync
# 开启服务 #rsync --daemon
##############################################################
#client 需要做什么
#理念:1:告诉client端,推送给server端的那个模块
# 2:需要进行虚拟账号验证
###在client端执行命令
echo "123456" > /etc/rsync.password #1:创建密码文件
chmod 600 /etc/rsync.password #2:修改权限
##现在推送文件 ###############
#交互式
rsync -avz /root/www rsync_backup@192,168.138.131::backup
#非交互式
rsync -avz /root/www rsync_backup@192。168.138.131::backup --passwd-file=/etc/rsync.password