设为首页 收藏本站
查看: 464|回复: 0

[经验分享] Rsync + Crontab实现定时文件同步(首次全量+后续增量)

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-4-15 08:43:02 | 显示全部楼层 |阅读模式
一、简介

    在配置HA的时候,需要配置多个节点的配置,节点间的配置很多时候都是类似重复的,也许可以通过scp等手段实现,但是每次的更改都需要手动scp也显得麻烦,这边我们可以通过rsync的方式来实现文件的同步。

    使用rsync+crontab做定时同步时,主服务器端开启rsync守护进程,而镜像服务器是运行rsync客户端,平时一般会利用crontab定时获取rsync服务器上的数据。


二、配置
  ①rsync的服务端(文件发送出去端)

    以守护进程的形式后台运行

1.rsync的安装和文件包组成
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[iyunv@web1 ~]# yum install rsync
[iyunv@web1 ~]# rpm -ql rsync
/etc/xinetd.d/rsync         ##基于xinetd的管理
/usr/bin/rsync              ##rsync工具
/usr/share/doc/rsync-3.0.6
/usr/share/doc/rsync-3.0.6/COPYING
/usr/share/doc/rsync-3.0.6/NEWS
/usr/share/doc/rsync-3.0.6/OLDNEWS
/usr/share/doc/rsync-3.0.6/README
/usr/share/doc/rsync-3.0.6/support
/usr/share/doc/rsync-3.0.6/support/Makefile
/usr/share/doc/rsync-3.0.6/support/atomic-rsync
/usr/share/doc/rsync-3.0.6/support/cvs2includes
/usr/share/doc/rsync-3.0.6/support/deny-rsync
/usr/share/doc/rsync-3.0.6/support/file-attr-restore
/usr/share/doc/rsync-3.0.6/support/files-to-excludes
/usr/share/doc/rsync-3.0.6/support/git-set-file-times
/usr/share/doc/rsync-3.0.6/support/logfilter
/usr/share/doc/rsync-3.0.6/support/lsh
/usr/share/doc/rsync-3.0.6/support/mnt-excl
/usr/share/doc/rsync-3.0.6/support/munge-symlinks
/usr/share/doc/rsync-3.0.6/support/rrsync
/usr/share/doc/rsync-3.0.6/support/rsyncstats
/usr/share/doc/rsync-3.0.6/support/savetransfer.c
/usr/share/doc/rsync-3.0.6/tech_report.tex
/usr/share/man/man1/rsync.1.gz
/usr/share/man/man5/rsyncd.conf.5.gz



     软件包组成中没有提供配置文件和相应的文件,因此需要自行添加如下:
1
2
3
4
5
[iyunv@node1 ~]# mkdir /etc/rsyncd  ##创建配置目录
[iyunv@node1 ~]# touch /etc/rsyncd/rsyncd.conf  ##创建主配置文件
[iyunv@node1 ~]# touch /etc/rsyncd/rsyncd.secrets  ##创建用户密码文件
[iyunv@node1 ~]# chmod 600 /etc/rsyncd/rsyncd.secrets ##修改用户密码文件
[iyunv@node1 ~]# touch /etc/rsyncd/rsyncd.motd   ##创建定义服务器信息的文件




2.编辑配置rsyncd.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
[iyunv@node1 ~]# vi /etc/rsyncd/rsyncd.conf
# Minimal configuration file for rsync daemon
# See rsync(1) and rsyncd.conf(5) man pages for help
# This line is required by the /etc/init.d/rsyncd script
pid file = /var/run/rsyncd.pid
port = 873   ##监听端口
address = 192.168.192.208  ##监听地址
#uid = nobody
#gid = nobody   
uid = root
gid = root
use chroot = yes   ##是否限制在指定目录,为了安装,一般需要启用
read only = no

#limit access to private LANs
hosts allow=192.168.192.0/255.255.255.0   ##允许网段
hosts deny=*

max connections = 5
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

##定义一个同步目录
[webdir]
path = /var/www/html
list=yes
ignore errors
auth users = apache
secrets file = /etc/rsyncd/rsyncd.secrets  ##指定上述账号密码文件
comment = web home
exclude =   data/   ##排除目录




3.添加账号密码文件
1
2
3
[iyunv@node1 ~]# vi /etc/rsyncd/rsyncd.secrets
apache:123456
##注意,这个账号是系统账号,但没有使用系统账号的密码,而是自定义密码




4.让rsync以守护进程运行

1
[iyunv@node1 ~]# /usr/bin/rsync --daemon  --config=/etc/rsyncd/rsyncd.conf




5.开机自动启动
1
[iyunv@node1 ~]# echo "/usr/bin/rsync --daemon  --config=/etc/rsyncd/rsyncd.conf" >> /etc/rc.d/rc.local




②配置rsync的客户端

  客户端同样需要安装rsync,但是只需要配置如下文件即可

1
2
3
[iyunv@node2 ~]# mkdir /etc/rsyncd  ##创建配置目录
[iyunv@node2 ~]# echo “passowd123”> /etc/rsyncd/rsyncd.password  ##创建密码文件,密码为服务器端rsyncd.secrets文件中的密码。
[iyunv@node2 ~]# chmod 600 /etc/rsyncd/rsyncd.password






③同步操作
1
2
3
4
5
6
7
8
9
10
11
12
[iyunv@node2 ~]# rsync -avzP --delete  --password-file=/etc/rsyncd/rsyncd.password apache@192.168.192.208::webdir /var/www/html/

说明:
--delete:本地与服务器完全一样,如果本地存在不一样的,则删除,慎用
--password-file:指定密码文件,如果不指定,则需手动输入
-a :参数,相当于-rlptgoD,-r 是递归 -l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限;-t 保持文件原有时间;-g 保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件;
-z :传输时压缩;
-P :传输进度;
-v :传输时的进度等信息
apache@192.168.192.208::webdir  用双冒号引用主配置文件中的定义资源,也可以使用单引号跟绝对路径

以后同步时,只会同步新增内容。






1
将rsync -avzP --delete  --password-file=/etc/rsyncd/rsyncd.password apache@192.168.192.208::webdir /var/www/html/ 写入crontab即可



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-57246-1-1.html 上篇帖子: ActiveMq+spring jms+MQ主备 下篇帖子: RedHat系统下的网络配置,主机名的修改,进入单用户模式修改root密码和使用SSH远程连接工具
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表