centos下使用rsync+crontab实现文件资源定时同步

做了负载均衡的服务器上,经常有多个中间件需要文件资源同步的需要。理想的同步过程应该是,不同步相同的部分,将源服务器上有差异的部分同步到客户服务器上,并删除客户服务器上和源服务器不相同的内容,并定期执行。本文使用rsync+crontab实现。

第一步:rpm包安装rsync和crontab

centos下使用rsync+crontab实现文件资源定时同步_第1张图片
检查是否安装了包.png

如果没有安装对应的包,下载对应的rpm包,使用命令:rpm -ivh XXX.rpm安装。

centos下使用rsync+crontab实现文件资源定时同步_第2张图片
安装对应的rpm包.png

本文使用的是centos6.5,centos下rsync默认是在xinetd下启动,所以需要安装xinetd,方法同上。

centos下使用rsync+crontab实现文件资源定时同步_第3张图片
xinetd包也需要安装.png

安装完成之后使用命令:service xinetd start启动rsync服务

centos下使用rsync+crontab实现文件资源定时同步_第4张图片
启动xinetd服务.png

第二步:在有文件源的服务器上配置rsync服务

# 创建rsync服务目录
mkdir /etc/rsyncd
# 创建配置文件
touch /etc/rsyncd/rsyncd.conf
# 创建密码文件
touch /etc/rsyncd/rsyncd.secrets 
#权限修改(一定要修改为以下权限)
chown root:root /etc/rsyncd/rsyncd.secrets
chmod 600 /etc/rsyncd/rsyncd.secrets

rsyncd.conf配置如下(直接复制过去修改):

# GLOBAL OPTIONS
uid = root
gid = root

use chroot = no

read only = yes

#limit access to private LANs
hosts allow=10.10.19.74
hosts deny=
max connections = 5

pid file = /var/run/rsyncd.pid

secrets file = /etc/rsyncd/rsyncd.secrets
#lock file = /var/run/rsync.lock           

#motd file = /etc/rsyncd/rsyncd.motd        

#This will give you a separate log file
#log file = /var/log/rsync.log               

#This will log every file transferred - up to 85,000+ per user, per sync
transfer logging = yes

log format = %t %a %m %f %b
syslog facility = local3
timeout = 300

# MODULE OPTIONS
[uploadhome]
path = /home/kevin/tomcat_upload/tomcat_upload/webapps/uploadServer/upload
list=yes
ignore errors
auth users = anxiaolong
comment = upload home
exclude = important/
centos下使用rsync+crontab实现文件资源定时同步_第5张图片
rsync配置文件1.png
centos下使用rsync+crontab实现文件资源定时同步_第6张图片
rsync配置文件2.png

rsyncd.secrets文件里面写用户名和密码,格式为XXX:XXX

密码文件内容.png

配置好之后重启下xinetd服务,命令:service xinetd restart

第三步:配置目标服务器上的rsync

目标服务器是作为客户端下载服务端的资源,只需要安装rsync包和xinetd包即可,安装完成之后启动xinetd服务即可。

centos下使用rsync+crontab实现文件资源定时同步_第7张图片
rsync客户端配置.png

在/tmp目录下使用vim新建两个文件,rsync.passwd需要有读写的权限,rsync需要有执行的权限。

centos下使用rsync+crontab实现文件资源定时同步_第8张图片
tmp下文件.png

把客户端同步文件的命令写到rsync.sh中:rsync -avzP --delete --password-file=/tmp/rsyncd.passwd [email protected]::uploadhome /home/kevin/tomcat_upload/tomcat_upload/webapps/uploadServer/upload

centos下使用rsync+crontab实现文件资源定时同步_第9张图片
脚本内容.png

把密码写到rsync.passwd中

centos下使用rsync+crontab实现文件资源定时同步_第10张图片
密码内容.png

执行脚本就可以同步

centos下使用rsync+crontab实现文件资源定时同步_第11张图片
脚本执行效果.png

第四步:将同步的脚本添加到crontab定期执行(本文设置为5分钟同步一次)

下再crontab的rpm包安装上

centos下使用rsync+crontab实现文件资源定时同步_第12张图片
安装crontab.png

启动crontab服务

启动crontab服务.png

在crontab配置下添加定期执行命令

centos下使用rsync+crontab实现文件资源定时同步_第13张图片
每5分钟执行一次配置.png

修改保存后,重启crontab服务

启动crontab服务.png

针对crontab的定期执行参照下图

centos下使用rsync+crontab实现文件资源定时同步_第14张图片
crontab配置说明.png

你可能感兴趣的:(centos下使用rsync+crontab实现文件资源定时同步)