实现目的:A_Server的目录文件备份到B_Server
服务器基本信息:
A_Server:
目录: /rsync_master/
IP地址:172.30.11.22
B_Server:
目录:/rsync_slave/
IP地址:192.168.99.60
配置服务器部分:
一. A_Server_Config
备注:
1. 首先需要创建 “rsyncd.conf”的主要配置文件和备份时需要的密码文件 rsync_a.pass。默认无此文件需要手动创建需要放在/etc/
2. rsync 使用 --daemon 方式启动,服务端口为 TCP: 873.并且 /etc/xinetd.d/rsync 里的 disable设置为no
2.1 daemon为守护进程
根据守护进程的启动和管理方式,可以分为独立启动守护进程和超级守护进程两类
2.1.1 独立启动(stand_alone):该类进程启动后就常驻内存,所以会一直占用系统资源。其最大的优点就是它会一直启动, 当外界 有要求时相应速度较快,像httpd等进程;
2.1.2 超级守护进程:系统启动时由一个统一的守护进程xinet来负责管理一些进程,当相应请求到来时需要通过xinet的转接才可以唤醒被xinet管理的进程。这种进程的优点时最初只有xinet这一守护进程占有系统资源,其他的内部服务并不一直占有系统资源,只有数据包到来时才会被xinet管理员来唤醒。并且我们还可以通过xinet来对它所管理的进程设置一些访问权限,相当于多了一层管理机制。
编写:
1. 创建编写 rsyncd.conf 文件 和 备份需要的密码文件 rsync_a.pass
# vim /etc/rsyncd.conf
uid=nobody
gid=nobody
use chroot=no
max connections=4
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
log file=/var/log/rsyncd.log
[rsync_master_backup] // backup@172.30.11.22::rsync_master_backup 名称需要一致,此语句是寻找此名称模块
path=/rsync_master/
ignore errors
read only=true
list=false
hosts allow=192.168.99.60
hosts deny=0.0.0.0/32
auth users=backup
secrets file=/etc/rsync_a.pass
:x
#vim /etc/rsync_a.pass
backup:passw0rd
:x
2. rsync 使用 --daemon 方式启动,服务端口为 TCP: 873.并且 /etc/xinetd.d/rsync 里的 disable设置为no
# rsync --daemon //启动 rsync --daemon
# vim /etc/sysconfig/iptables // 服务端防火墙添加TCP:873端口通信
-A INPUT -m state --state NEW -m tcp -p tcp --dport 873 -j ACCEPT
:x
# /etc/init.d/iptables restart // 防火墙重启
# vim /etc/xinetd.d/rsync
disable=no // disable=yes 修改为 no
:x
二. B_Server_Config
备注:
1. 首先要创建密码文件rsync_b.pass 默认无此文件需要创建在/etc/
2. 其次需要创建脚本文件 rsync_bak.sh 默认无此文件创建在 /rsync_sh/
3. 最后修改crontab文件设置定期执行rsync_bak.sh文件并创建日志文件rsync_bak.log默认无此文件创建在 /rsync_sh/
编写:
1. 首先要创建密码文件rsync_b.pass 默认无此文件需要创建在/etc/
# vim /etc/rsync_b.pass
passw0rd // 此文件只写密码还有密码需要与 A_Server里的/etc/rsync_a.pass密码一致
2. 其次需要创建脚本文件 rsync_bak.sh 默认无此文件创建在 /rsync_sh/
# vim /rsync_sh/rsync_bak.sh
#!/bin/sh
echo $(date +"%Y-%m-%d-%H:%M:%S")
rsync -azvP --delete --exclude="*.txt" --password-file=/etc/rsync_b.pass backup@172.30.11.22::rsync_master_backup /rsync_slave/
:x
#chmod 744 /rsync_sh/rsync_bak.sh // chmod 授可执行权限
3. 最后修改crontab文件设置定期执行rsync_bak.sh文件并创建日志文件rsync_bak.log默认无此文件创建在 /rsync_sh/
# crontab -e
30 5 */1 * * /bin/sh /rsync_sh/rsync_bak.sh >> /rsync_sh/rsync_bak.log 2>&1 // 2>&1 对错信息都录入
:x
rsync参数部分:
-a : --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-r : 递归
-l : 链接文件,拷贝链接文件的意思
-p: 保持文件原有权限
-t : 保持文件原有时间
-g: 保持文件原有用户组
-o: 保持文件原有属主
-D: 相当于块设备文件
-z : 传输时压缩
-v : 详细模式输出 -P结合使用
-P : 显示备份过程 传输进度 -v 结合使用
--delete : slave端删除多余的文件
--exclude: master端排除不想同步的文件
--exclude-from: master端排除不想同步的目录
--password-file: 指定密码文件路径
inotify-tools+rsync实时同步文件安装和配置
CentOS 6.5下Rsync远程同步