Rsync镜像数据同步

Rsync(remote sync)是UNIX及 类UNIX 平台下一款神奇的数据镜像备份软件,它不像FTP或其他文件传输服务那样需要进行全备份。Rsync可以根据数据的变化进行差异备份,从而减少数据流量,提高工作效率。
你可以使用它进行本地数据或远程数据的复制,Rsync 可以使用 SSH 安全隧道进行加密数据传输。(使用ssh无密码认证可以让客户端复制服务端的指定目录的数据时,不用输入密码)
Rsync服务器端定义源数据,Rsync客户端仅在源数据发生改变后才会从服务器上实际复制数据至本地,
如果源数据在服务器端被删除,则客户端数据也会被删除,以确保主机之间的数据是同步的。
Rsync 默认使用 TCP 协议 , 监听 873 端口。

  1. Rsync的安装
yum install rsync

2.ssh无密码自动登录
sshd的安装(客户端和服务端都要安装)

yum install sshd

检查是否开启22端口

netstat -natl

某个用户 执行 过 ssh 命令,就会在 他 对应的家目录 下自动生成 。(如果以root身份运行,就产生/root/.ssh,如果没有就自行创建)

cd /root/.ssh

在客户端/root/.ssh目录下生成一对公钥和秘钥

ssh-keygen -t rsa

把公钥使用scp命令拷贝给服务端的/root/.ssh/目录下面

scp /root/.ssh/id_rsa.pub 192.168.72.125:/root/.ssh/ 

服务端把公钥信息放在authorized_keys里面,如果没有这个文件则自行建立(因为配置文件/etc/ssh/sshd_conf中指定的)

echo>authorized_keys
rm -rf id_rsa.pub

最后客户端使用ssh工具连接

ssh 192.168.72.125

3.rsync解析
rsync中的参数
  -a 以archive模式操作、复制目录、符号连接 相当于-rlptgoD
  -r 是递归
  -l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限;-t 保持文件原有时间;-g 保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件;
  -z 传输时压缩;
  -P 传输进度;
  -v 传输时的详细信息。可以看文档;
  -e ssh的参数建立起加密的连接。
  -u只进行更新,防止本地新文件被重写,注意两者机器的时钟的同时
  –progress是指显示出详细的进度情况
  –delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致
  –password-file=/password/path/file来指定密码文件,这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读。
4. 完全同步服务器信息,包括 修改,增加,删除
客户端要有跟服务器端一样的目录
客户端(目录可以随便指定,但是目录必须是一样的否则会出错)

mkdir -p /data/web/class.com
mkdir logs
rsync -avzP --delete --exclude "logs" root@192.168.10.5:/data/webdata/myclass.com/   /data/webdata/myclass.com
同步服务器端的/data/web/class.com下面的所有数据,但是不包括logs目录

5.如果想随时监控请使用计划任务
把上面的命令放在脚本中执行

vim /test/auto.sh
rsync -avzP --delete --exclude "logs" root@192.168.10.5:/data/webdata/myclass.com/   /data/webdata/myclass.com

保存退出,赋予可执行性权限

chmod u+x /test/auto.sh

编写计划任务

crontab -e
* * * * * /test/auto.sh

猜你喜欢

转载自blog.csdn.net/wana_one_gy/article/details/82557309