linux下rsync的配置以实现文件夹的同步

http://blog.csdn.net/cymm_liu/article/details/31347531

目标:把[88]_A主机的/data/home/web同步到[27]_B主机的/data/home/qy目录

B主机作为rsync服务器

#检查系统是否安装了rsync软件包
[[email protected] home]# rpm -qa |greprsync                 
rsync-2.6.9
如果没有,就去yum 或者apt-get install或者去官网服务器上下一个

1.        ◆自定义启动方式,配置如下:

新建或配置rsyncd.conf
[[email protected] 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 [email protected]$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 &

时间: 2024-10-12 02:50:25

linux下rsync的配置以实现文件夹的同步的相关文章

linux下rsync+inotify实现服务器之间文件实时同步

先介绍一下rsync与inotify. 1.rsync 与传统的cp.tar备份方式相比,rsync具有安全性高.备份迅速.支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如定期的备份文件服务器数据到远端服务器,对本地磁盘定期做数据镜像等.随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐渐暴露出了很多不足,首先,rsync同步数据时,需要扫描所有文件后进行比对,进行差量传输.如果文件数量达到了百万甚至千万量级,扫描所

linux下的c语言编程删除文件夹

刚刚在学习开始做新项目的时候,学长布置了一项任务,就是在给定一个目录下,要将这个目录下一个星期之前的目录包括里面的文件全部删除,只保留这一个星期内的.百度了好久的资料,终于完成,记录一下防止忘记.(注:文件夹名称默认为日期格式,如20140716) #include<dirent.h> #include<sys/types.h> #include<string.h> #include<stdlib.h> #include<unistd.h> #i

Linux下的C程序,遍历文件夹并统计其中各个类型文件所占百分比

递归遍历一个目录下的所有文件和文件夹,统计各个类型文件所占的百分比 程序代码a.cpp(编译命令:g++ a.cpp -o a) #include <stdio.h> #include <sys/stat.h> #include <sys/types.h> #include <unistd.h> #include <stdlib.h> #include <dirent.h> #include <string.h> stru

linux下删除3分钟之前指定文件夹下的指定类型文件

#!/bin/sh DELDIR="/root/crontab_test/test" #3 minute ago DELTIME="-mmin +3" #delete file type FILETYPE1="'*.txt'" FILETYPE2="'*.log'" #write to tmp file rm crontab_del_3min -f touch crontab_del_3min # every minute d

linux下c语言实现递归复制文件夹

#include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <unistd.h> #include <dirent.h> #include <string.h> #include <errno.h> #include <sys/stat.h> #include <fcntl.h> #include <sys/type

Linux下Tomcat复制一个新的文件夹后无法启动的问题

加班是为了不加班. 报错如下: Cannot find bin/catalina.sh The file is absent or does not have execute permission This file is needed to run this program 给权限就好: chmod 777 *.sh 原文地址:https://www.cnblogs.com/yulonglyw/p/9369076.html

linux下rsync工具使用与配置

这篇文章基本介绍全了:http://www.2cto.com/os/201308/238733.html 几点简单备忘: 1. ubuntu下通过apt-get即可安装: 2. 配置文件/etc/rsync.conf默认不存在,需要手动创建: 3. 可以通过守护进程xinetd来启动rsync,在/etc/default/rsync中配置: 4. 服务器在/etc/rsync.passwd中配置登录名和密码,不一定非得这个文件,可以在/etc/rsync.conf中配置每一个共享模块的密码文件:

PHP扩展类ZipArchive实现压缩解压Zip文件和文件打包下载 &amp;&amp; Linux下的ZipArchive配置开启压缩

PHP ZipArchive 是PHP自带的扩展类,可以轻松实现ZIP文件的压缩和解压,使用前首先要确保PHP ZIP 扩展已经开启,具体开启方法就不说了,不同的平台开启PHP扩增的方法网上都有,如有疑问欢迎交流.这里整理一下常用的示例供参考. 一.解压缩zip文件 ? 1 2 3 4 5 6 7 8 9 10 11 $zip = new ZipArchive;//新建一个ZipArchive的对象 /* 通过ZipArchive的对象处理zip文件 $zip->open这个方法的参数表示处理的

Linux下Rsync+Inotify-tools实现数据实时同步

说明: 一.先安装好rsync的服务端和客户端: http://douya.blog.51cto.com/6173221/1573968 二.安装,使用inotify-tools,实时同步 1.查看服务器内核是否支持inotify ll /proc/sys/fs/inotify   #列出文件目录,出现下面的内容,说明服务器内核支持inotify -rw-r--r-- 1 root root 0 Mar  7 02:17 max_queued_events -rw-r--r-- 1 root r