linux下rsync的配置以实现文件夹的同步
2015-08-11 15:32
579 查看
linux下rsync的配置以实现文件夹的同步 http://blog.csdn.net/cymm_liu/article/details/31347531 目标:把[88]_A主机的/data/home/web同步到[27]_B主机的/data/home/qy目录
[root@Hammer home]# rpm -qa |greprsync
rsync-2.6.9
如果没有,就去yum 或者apt-get install或者去官网服务器上下一个
1. ◆自定义启动方式,配置如下:新建或配置rsyncd.conf
[root@test etc]# vim rsyncd.conf
uid = www
gid = www
use chroot = no
port = 873
max connections = 10
pid file = /var/run/rsyncd.pid
#log file = /var/log/rsyncd.log
hosts allow = 110.163.200.119
hosts deny = *
## 上面这段是全局配置,下面的模块可以有多个
[web]
path = /data/home/qy/
ignore errors = yes
read only = no
write only = no
list = no
auth users = www
secrets file = /etc/rsync.pass
##以上配置说明:
#port可以不加,因为默认为873端口,可以改为其它端口
#auth users同步验证时用什么账号,这个用户和/etc/password没有关系的。
#secrets file 存放rsync明文密码的文件,为安全起见,此文件权限修改为600,实例:wei:huashuo_rsync,中间不可有空格只用冒号隔开。
#"[qy]"是自定义的模块名,这里相当于一个区分符,如果要同步多个文件夹就在这里区分,英文名叫做module,注意目录权限
配置自动启动vi /etc/rc.d/rc.local
/usr/bin/rsync --daemon --config /etc/rsyncd.conf
◆系统默认启动方式:
添加rsync服务脚本
vi /etc/xinetd.d/rsync
#将disable=yes改为no
service rsync
{
disable = no
socket_type =stream
wait =no
user =root
server =/usr/bin/rsync
server_args =--daemon
log_on_failure +=USERID
}
RHEL默认有安装rsync,编辑/etc/xinetd.d/rsync 后用service xinetd restart 来启动。
##定义条件
hosts="110.144.80.16"
src="/data/home/web/"
exclude_files="/usr/mybin/qy.exclude.ini"
module=web
user=www
##把本地src目录同步到rsync服务器模块的路径,ini文件指定过滤不同步的地方,“web”模块就是ysync服务器端定义的名称
/usr/local/inotify/bin/inotifywait -mrq--timefmt '%Y-%m-%d %H:%M:%S' --format '%T %w%f %e' \
-e close_write,delete,create,attrib $src| while read files
do
for i in $hosts
do
/usr/bin/rsync -vzrtopg --exclude-from=$exclude_files --delete--progress --password-file=/etc/client.rsync.pass $src $user@$i::$module
EXITCODE=$?
if [ $EXITCODE != 0 ]; then
echo "${files} rsync error:"$EXITCODE >>/var/log/inotify.log 2>&1
break
fi
done
done
#/etc/client.rsync.pass文件里只放rsync服务器的密码
创建过滤不同步的文件
vi /usr/mybin/qy.exclude.ini
*.zip
*.gz
*.tar.gz
*.sql
*.tgz
*.rar
log/*
i/tmp/*
blog/
memcached/
system/conf_main.php
启动自动同步脚本
nohup /root/web.rsync.sh >>/dev/null 2>&1 &
B主机作为rsync服务器
#检查系统是否安装了rsync软件包[root@Hammer home]# rpm -qa |greprsync
rsync-2.6.9
如果没有,就去yum 或者apt-get install或者去官网服务器上下一个
1. ◆自定义启动方式,配置如下:新建或配置rsyncd.conf
[root@test etc]# vim rsyncd.conf
uid = www
gid = www
use chroot = no
port = 873
max connections = 10
pid file = /var/run/rsyncd.pid
#log file = /var/log/rsyncd.log
hosts allow = 110.163.200.119
hosts deny = *
## 上面这段是全局配置,下面的模块可以有多个
[web]
path = /data/home/qy/
ignore errors = yes
read only = no
write only = no
list = no
auth users = www
secrets file = /etc/rsync.pass
##以上配置说明:
#port可以不加,因为默认为873端口,可以改为其它端口
#auth users同步验证时用什么账号,这个用户和/etc/password没有关系的。
#secrets file 存放rsync明文密码的文件,为安全起见,此文件权限修改为600,实例:wei:huashuo_rsync,中间不可有空格只用冒号隔开。
#"[qy]"是自定义的模块名,这里相当于一个区分符,如果要同步多个文件夹就在这里区分,英文名叫做module,注意目录权限
配置自动启动vi /etc/rc.d/rc.local
/usr/bin/rsync --daemon --config /etc/rsyncd.conf
◆系统默认启动方式:
添加rsync服务脚本
vi /etc/xinetd.d/rsync
#将disable=yes改为no
service rsync
{
disable = no
socket_type =stream
wait =no
user =root
server =/usr/bin/rsync
server_args =--daemon
log_on_failure +=USERID
}
RHEL默认有安装rsync,编辑/etc/xinetd.d/rsync 后用service xinetd restart 来启动。
A主机当作客户端,配置
2. web.rsync.sh文件脚本:#!/bin/sh##定义条件
hosts="110.144.80.16"
src="/data/home/web/"
exclude_files="/usr/mybin/qy.exclude.ini"
module=web
user=www
##把本地src目录同步到rsync服务器模块的路径,ini文件指定过滤不同步的地方,“web”模块就是ysync服务器端定义的名称
/usr/local/inotify/bin/inotifywait -mrq--timefmt '%Y-%m-%d %H:%M:%S' --format '%T %w%f %e' \
-e close_write,delete,create,attrib $src| while read files
do
for i in $hosts
do
/usr/bin/rsync -vzrtopg --exclude-from=$exclude_files --delete--progress --password-file=/etc/client.rsync.pass $src $user@$i::$module
EXITCODE=$?
if [ $EXITCODE != 0 ]; then
echo "${files} rsync error:"$EXITCODE >>/var/log/inotify.log 2>&1
break
fi
done
done
#/etc/client.rsync.pass文件里只放rsync服务器的密码
创建过滤不同步的文件
vi /usr/mybin/qy.exclude.ini
*.zip
*.gz
*.tar.gz
*.sql
*.tgz
*.rar
log/*
i/tmp/*
blog/
memcached/
system/conf_main.php
启动自动同步脚本
nohup /root/web.rsync.sh >>/dev/null 2>&1 &
相关文章推荐
- Centos下通过SMTP发送邮件失败解决
- Solr5.2.1全文搜索服务器部署之linux
- linux中用进程的PID来查找执行文件的及其路径
- Linux Makefile编译使用的环境从helloworld入手
- Linux编程基础——GDB(设置断点)
- linux mint17.2 安装fcitx输入法
- Linux基础学习笔记-第二课:磁盘相关
- linux中fork()函数详解(原创!!实例讲解)
- linux 下svn搭建
- Linux 搭建 Java for Developers 开发环境
- 2.linux下Makefile编写规范
- 解决Vmware虚拟机中克隆Centos后无法启动网卡的问题
- 1.linux下Kconfig编写规范
- CentOS 6.4 编译安装Mysql 5.6.14
- Centos7 SSH安全防护---系统安全管家
- Linux信号列表详解
- Centos6.5+Python+安装各种包
- 【百度】Linux指令
- Linux 安装jdk
- Linux进程通信