rsync 工具
说明:rsync 和scp 支持远程备份,rsync 支持增量拷贝
类似工具scp
说明:A和B主机需安装openssh-clients
命令 scp ./ilanni.tar.gz root@192.168.1.102:/ks
一、 安装工具
yum install -y rsync
二、ssh连接方式
说明:源主机和目标主机需安装:openssh-clients
1)拷贝到远程
说明:指定端口;不写用户名则自动检测远程主机当前的用户
rsync -e "ssh -p 22" -zvPz 111/ root@172.16.115.202:/tmp/111/
2)远程拷贝回来
rsync -e "ssh -p 22" -zvPz root@172.16.115.202:/tmp/111/ ./111/
注:拷贝整个目录以及其下的文件时,需加/,否则只是拷贝了目录而没有文件
用法说明:
-a 等同于 -rlptgoD
-D 设备文件相关,很少接触
-o owner,即属主
-g group,即属组
-t 时间,即3个time
-p 读写权限,同步前后不会变化
-r 归档,针对同步目录作用
-l 同步软链接文件,如果没有源文件,则为废文件
-L 同步软链接的源文件
-v 可视化
--delete 删除A机上的老文件,则B的老文件也会删除
--exclude=PATTERN ,等号后面跟文件名 同步时,排除某些文件和目录,过滤掉
-P 大P显示同步进度,比v显示的东西多,和--process一样
-u 等同于--update 避免把目标B文件上的新数据(可能修改之后和A不同了)覆盖掉
-z 压缩同步,减少带宽
--no-OPTION 这个表示关闭-rlptgoD中的某一个例如 -a--no-l 等同于-rptgoD
--progress 在同步的过程中可以看到同步的过程状态,比如统计要同步的文件数量、同步的文件传输速度等等
三、后台服务方式
说明:daemon后台服务的方式,需写一个配置文件,放在etc下,通过命令启动,监听一个端口,然后客户端和服务端通信
【服务端配置】(172.16.115.202)
1. 编辑配置文件vim /etc/rsyncd.conf
说明:huangzhenping1模块不需要认证;配置文件修改之后不需要重启,及时生效
添加内容:
port=8730 # 端口
log file=/var/log/rsync.log # log日志文件
pid file=/var/run/rsync.pid # 每个进程都有个pid文件
[huangzhenping] # 模块名
path=/tmp/rsync # 模块对应的目录,用于存取文件,需要创建
use chroot=yes # 限定模块目录下软链接时不能同步其他目录的文件,yes或ture为真
max connections=4 # 最大连接数
read only=no # 登录之后是否只读(如果推送,则需要写权限)
list=yes # 是否允许list模块名
uid=root # 文件属主属组
gid=root
auth users=huangzhenping # 用户认证
secrets file=/etc/rs.passwd # 认证密码文件
hosts allow=172.16.115.202 172.16.115.162 # 允许主机
[huangzhenping1]
path=/tmp/rsync123
use chroot=yes
max connections=4
read only=no
list=yes
uid=root
gid=root
hosts allow=172.16.115.202
2. 启动,查看端口,查看日志
rsync --daemon
netstat -lnp|grep rsync
cat /var/log/rsync.log
3. 创建目录和文件
mkdir /tmp/rsync
mkdir /tmp/rsync123
4. 创建密码文件vim /etc/rs.passwd,修改权限为600,只允许root读写
内容:
huangzhenping:123456 #左边为用户名,右边为对应密码
授权:
chmod 600 /etc/rs.passwd
【客户端同步测试】(172.16.115.157)
说明:双冒号默认以873端口去访问连接
1. 在客户端查看服务端模块名,同步测试
说明:由list=yes|no决定
rsync --port 8730 172.16.115.202::
语法:
rsync -avPz --port 8730 /tmp huangzhenping@172.16.115.202::huangzhenping/
说明:需要服务端设置的用户名和密码,以及模块名
2. 客户端指定密码文件,免密码同步
1)先查询指定格式
rsync --help|grep passw
2)新建密码文件
说明:一个文件一个密码,只需写密码,授权400
vim /etc/rsync_pass.txt
chmod 400 /etc/rsync_pass.txt
3)同步时,指定密码文件即可
rsync -avPz --port 8730 --password-file=/etc/rsync_pass.txt huangzhenping@172.16.115.202::huangzhenping/ /tmp/