需求:
生产库的图片放到了服务器的/image目录下,图片很重要啊,千万不能有啥闪失,所以要备份。
第一个念想是将其拷贝一份到其他目录,但又怕服务器莫名其妙的给挂掉了,所以要备份到其他服务器上,这样安全系数才高点。
/image目录很大,且里面经常有图片更新,还要同步到其他服务器上一份,鉴于这种需求,毅然决然的选择了rsync,虽说这不一定是最好的选择,但它能够实现以上需求就够了。
rsync 简介:
rsync是类unix系统下的数据镜像备份工具,可以实现两个目录下的内容同步
优点:
1.能镜像整个目录树和文件系统
2.能保持镜像后的文件权限,时间和软硬连接不变
3.安装简单
4.支持scp以及ssh等方式安全的传输文件
操作环境:
192.168.1.60 server
192.168.1.92 client
要将192.168.1.60:/image下的内容同步到192.168.1.92:/image下
让60机器做Server,92机器做client,60主动将/image下的内容同步到92上
server端配置
1.检查是否安装了rsync包
[root@pw ~]# rpm -qa |grep rsync
rsync-2.6.8-3.1
2.在/etc目录下添加rsyncd.conf
[root@test1 ~]# vi /etc/rsyncd.conf
uid = nobody
gid = nobody
max connections = 4 # 最大能让4个client连接
timeout = 600
use chroot = no
read only = yes
pid file=/var/run/rsyncd.pid
log file=/var/log/rsyncd.log
lock file=/var/log/rsyncd.lock
#rsync config
[rsync_image]
path = /image # 要同步的目录
ignore errors
read only=true # 权限为只读
list=false
hosts allow =192.168.1.92 # 允许的主机ip地址
hosts deny=0.0.0.0/32
auth users=pw # 认证用户
secrets file=/etc/pw.pass # 密码文件
以上内容可以通过man rsync.conf获得
3.定义密码文件
# vi /etc/pw.pass
pw:pw123
# chmod 400 /etc/pw.pass
4.rsync服务器启动的方式
/usr/bin/rsync --daemon
rsync服务使用的端口是873,可以通过netstat -n |grep 873来看一下服务是否已经启动
[root@pw ~]# /usr/bin/rsync --daemon
[root@pw ~]# netstat -an |grep 873
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN
tcp 0 0 :::873 :::* LISTEN
*****************
client端配置
1.创建client端密码文件
# vi /etc/rsync_client.pass
pw123
# chmod 600 /etc/rsync_client.pass
2.同步命令:
/usr/bin/rsync -vzrtopg --progress --delete --password-file=/etc/rsync_client.pass pw@192.168.1.60::rsync_image /image
参数说明:
-vzrtopg里的
v是verbose详细模式输出
z是压缩
r是recursive递归
topg都是保持文件原有属性如属主、时间的参数
--progress
是指显示出详细的进度情况
--delete
是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致
--exclude="*.tmp"
不包含某些文件
--execlude-from= 排除不需要同步的目录
--password-file
指定CLIENT端密码文件存放路径
同步命令的格式为:/usr/bin/rsync -参数 用户名@同步服务器的IP::rsyncd.conf中那个方括号里的内容 本地存放路径
3.将同步命令加入到机会任务中,实现定时同步
# crontab -e
30 23 * * * /usr/bin/rsync -vzrtopg --progress --delete --password-file=/etc/rsync_client.pass pw@192.168.1.60::rsync_image /image > /dev/null 2>&1