rsync:remote synchronize
是实现远程同步功能的工具,rsync是用"rsync算法"提供了一个客户机和远程文件服务器的文件同步的快速方法,
而且可以通过ssh方式来传输文件。
如果没有rsync命令,先安装。yum install rsync
先看rsync常用的命令选项:(我列出来的很少)
-a:表示以递归方式传输文件,并保留所有文件属性
-r:对子目录以递归模式处理
-v:详细模式输出
-z:对备份的文件在传输时进行压缩处理
–password-file=FILE 从FILE中得到密码
要使用rsync先要配置好它的配置文件。下面来看看它的配置
1.ssh认证
因为 rsync 服务端不用启动daemon进程,所以只要获取remote host的用户名和密码就可以直接rsync同步文件
rsync server端因为不用启动daemon进程,所以也不用配置文件 /etc/rsyncd.conf
如果在同步的过程中不想输入密码,就需要配置ssh的密钥登录。
ssh免密登录我将会在下个博客中详细说。
2.rsync 认证协议
需要在rsync server端启动daemon进程,并设置对应的配置文件: /etc/rsyncd.conf
如果不想输入密码,就需要在服务器(备份机)进行下面的配置:
#rsycn配置文件服务器配置好,其他机器可以用rsycn工具免密发送备份
cat /etc/rsyncd.conf
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/log/rsync.log
[label1]
#同步的目录,如果需要对该目录进行写入,还需要注意该目录的属主及属组
path=/backup/system_check/
read only=false
list=false
auth users=rsync_backup
secrets file=/etc/rsync.password
[label2]
#同步的目录,如果需要对该目录进行写入,还需要注意该目录的属主及属组
path=/backup/mysql_datadir/
read only=false
list=false
auth users=rsync_backup
secrets file=/etc/rsync.password
#path指定其他机器发送的文件传过来存在哪里的路径
useradd rsync -s /sbin/nologin
mkdir /backup/system_check/ -p
chown -R rsync.rsync /backup/system_check/
mkdir /backup/mysql_datadir/ -p
chown -R rsync.rsync /backup/mysql_datadir/
#创建密码文件
#格式为 用户名:密码用户
#用户名跟配置文件指定的(auth users)相同
echo "rsync_backup:123" > /etc/rsync.password
#必须设定文件的权限600
chmod 600 /etc/rsync.password
rsync --daemon #lsof -i :873
客户端的配置如下:
1.添加密码文件
echo "123" > /etc/.rsync.passwd
chmod 600 /etc/.rsync.passwd
2.同步数据
把/172.*data这个目录备份到备份机172.16.4.7的/label2目录下
rsync -avz /172.*data rsync://rsync_backup@172.16.4.7 /label2 --password-file=/etc/rsync.password
注:这是我们做的一个小组实验后,我整理的知识点。对于我这种小白来说,这个备份工具很难。