Rsync同步、Rsync+Lsync实时同步

原创博文http://www.cnblogs.com/elvi/p/7658049.html

#!/bin/sh
#Myde by Elven @
#centos 6x , centos 7x
#Rsync同步、Rsync+Lsync实时同步 ### 全局配置
#Rsync服务端配置
RS_IP=192.168.20.1
BkDir=/www/backup
#Lsync目录配置
Source="/www/backup/tobak/"
Target="test@$RS_IP::test" ### rsync同步服务端(备份目标地址)
function rs_s() {
echo "#目录设置"
mkdir -p $BkDir/test
touch $BkDir/test/abc{..}.txt
# useradd rsync -s /sbin/nologin -M
# chown -R rsync /www/backup/web echo "#安装……"
[[ `rpm -qa rsync|wc -l` == ]] && { yum install rsync -y; } || echo rsync is OK
#yum install -y rsync
echo "#Rsync服务端配置"
echo "
# rsync配置
uid = root
gid = root
user chroot = no
max connections =
timeout =
port =
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log
hosts allow = 192.168.20.0/
hosts deny = *
secrets file = /etc/rsync.db
ignore errors [backup]
comment= backup server
path=/www/backup/
read only = false
list = true
auth users = rsync [test]
comment= backup test
path=/www/backup/test/
read only = false
list = true
auth users = test ">/etc/rsyncd.conf
#用户验证
echo "rsync:rsync2017">/etc/rsync.db
echo "test:test2017">>/etc/rsync.db
chown root:root /etc/rsync.db
chmod /etc/rsync.db
chmod /etc/rsyncd.conf [[ `uname -r` == *el6* ]] && {
# centos6用xinetd管理rsync进程
#rsync --daemon --address=192.168.20.41
[[ `rpm -qa xinetd|wc -l` == ]] && { yum install xinetd -y; } || echo xinetd is OK
sed -in '6s#yes#no#p' /etc/xinetd.d/rsync
# disable = yes 改成 disable = no
service xinetd restart
chkconfig xinetd on
chkconfig rsync on
}|| {
#centos
systemctl restart rsyncd
systemctl enable rsyncd >/dev/null >&
}
#
netstat -antp|grep
[[ $? == ]] && { echo "#rsync服务已启动……";exit ; }
echo "#查看列表"
rsync --list-only rsync://test@127.0.0.1
[[ `grep $(hostname) /etc/hosts|wc -l` == ]] && echo "#需要把hostname添加到/etc/hosts"
} ### rsync同步客户端(备份源)
function rs_c() {
echo "#安装……"
[[ `rpm -qa rsync|wc -l` == ]] && { yum install rsync -y; } || echo "rsync 已安装" echo "#查看列表"
rsync --list-only rsync://test@$RS_IP echo "rsync2017">/etc/rsync.pwd
echo "test2017">/etc/rsync.ps
chmod /etc/rsync.ps
chmod /etc/rsync.pwd } ###Lsync实时同步,客户端(备份源)
function lsync_c() {
mkdir -p $Source
echo "#Lsync安装配置"
[[ `rpm -qa epel-release|wc -l` == ]] && { yum install epel-release -y; }
[[ `rpm -qa lsyncd|wc -l` == ]] && { yum install lsyncd -y; } || echo "lsyncd 已安装"
[[ `rpm -qa lua lua-devel|wc -l` != ]] && { yum install lua lua-devel -y; } || echo "lua 已安装"
echo '
-- #全局配置
settings {
logfile ="/var/log/lsyncd.log",
statusFile = "/tmp/lsyncd.stat",
statusInterval = ,
inotifyMode = "CloseWrite or Modify",
maxProcesses = ,
maxDelays = ,
} -- #远程目录实时同步,rsync模式
sync {
default.rsync,
source = "'$Source'",
target = "'$Target'",
delete = running,
exclude = { ".*",".tmp" },
delay = ,
init = false,
-- #默认 true 当init = false ,只同步启动后发生改动事件
rsync = {
binary = "/usr/bin/rsync",
archive = true,
compress = true,
verbose = true,
copy_links = true,
password_file = "/etc/rsync.ps",
-- _extra = {"--bwlimit=200"}
}
} -- 本地目录同步测试,rsync模式
sync {
default.rsync,
source = "/tmp/src",
target = "/tmp/dest",
delay = ,
rsync = {
binary = "/usr/bin/rsync",
archive = true,
compress = false,
--bwlimit =
}
}
'>/etc/lsyncd.conf #创建测试目录
mkdir /tmp/{src,dest} >/dev/null >&
#启动服务
[[ `uname -r` == *el6* ]] && {
service lsyncd restart
chkconfig lsyncd on
} || {
systemctl restart lsyncd
systemctl enable lsyncd >/dev/null >&
}
[[ `ps -ef|grep lsync|grep -v grep|wc -l` == ]] && {
echo 'Lsync启动成功……'
echo "本地目录同步测试"
echo "rm -f /tmp/{src,dest}/ #清空目录"
rm -f /tmp/{src,dest}/*
echo "touch /tmp/src/luck-{1..8}.txt #创建文件,测试同步"
touch /tmp/src/luck-{1..8}.txt
sleep 2
echo "#查看同步"
echo "ls -l /tmp/src";ls -l /tmp/src
echo "ls -l /tmp/dest";ls -l /tmp/dest
} || {
echo 'Lsync启动失败……'
echo "请检查配置文件 /etc/lsyncd.conf "
}
} function rs_help() {
echo "
# rsync -a参数 源 目标
#rsync -avzP --delete /root/test/ /www/backup/test/
#查看列表
rsync --list-only rsync://test@$RS_IP
#测试,拉取
rsync -avzP --delete --password-file=/etc/rsync.pwd test@$RS_IP::test /tmp/rsync/
#测试,推送
rm -rf /tmp/rsync/*
touch /tmp/rsync/abc{1..9}.txt
ll /tmp/rsync/
rsync -avzP --delete --password-file=/etc/rsync.pwd /tmp/rsync/ test@$RS_IP::backup
#使用ssh隧道
rsync -avzP -e ' ssh -p 22' root@$RS_IP:/www/backup/test/ /test/
#服务端设置固定IP
rsync --daemon --address=192.168.20.41
"
} ################
function mks() {
#Rsync编译安装参考
#建议先yum安装后,在编辑安装升级
cd /tmp
#wget https://download.samba.org/pub/rsync/src/rsync-3.1.2.tar.gz
tar xf rsync-3*.tar.gz
cd rsync-3*
./configure
make && make install
#替换yum安装文件/usr/bin/rsync
[[ -f /usr/bin/rsync ]] && {
mv /usr/bin/rsync /usr/bin/rsyncd
ln -s /usr/local/bin/rsync /usr/bin/rsync
/usr/bin/rsync --version|head -1
} || {
/usr/bin/rsync --version|head -1
}
}
################ case "$1" in
"s")
rs_s
exit
;;
"c")
rs_c
exit
;;
"l")
rs_c
lsync_c
exit
;;
"h")
rs_help
exit
;;
*)
echo " $0 + { s|c|l|h }"
echo " s #安装Rsync服务端"
echo " c #安装Rsync客户端"
echo " l #安装Rsync+Lsync实时同步客户端"
echo " h #rsync 同步示例"
exit
;;
esac

Rsync同步、Rsync+Lsync实时同步的更多相关文章

  1. Linux下Rsync+sersync实现数据实时同步

    inotify 的同步备份机制有着缺点,于是看了sersync同步,弥补了rsync的缺点.以下转自:http://www.osyunwei.com/archives/7447.html 前言: 一. ...

  2. rsync+sersync实现文件实时同步

    前言: 一.为什么要用Rsync+sersync架构? 1.sersync是基于Inotify开发的,类似于Inotify-tools的工具 2.sersync可以记录下被监听目录中发生变化的(包括增 ...

  3. CentOS 6.5 rsync+inotify实现数据实时同步备份

    CentOS 6.5 rsync+inotify实现数据实时同步备份 rsync    remote sync 远程同步,同步是把数据从缓冲区同步到磁盘上去的.数据在内存缓存区完成之后还没有写入到磁盘 ...

  4. sersync+rsync实现服务器文件实时同步

    sersync+rsync实现服务器文件实时同步 一.为什么要用rsync+sersync架构? 1.sersync是基于inotify开发的,类似于inotify-tools的工具 2.sersyn ...

  5. sersync基于rsync+inotify实现数据实时同步

    一.环境描述 需求:服务器A与服务器B为主备服务模式,需要保持文件一致性,现采用sersync基于rsync+inotify实现数据实时同步 主服务器A:192.168.1.23 从服务器B:192. ...

  6. Rsync+sersync实现数据实时同步

    前言: 一.为什么要用Rsync+sersync架构? 1.sersync是基于Inotify开发的,类似于Inotify-tools的工具 2.sersync可以记录下被监听目录中发生变化的(包括增 ...

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

    Linux下Rsync+Inotify-tools实现数据实时同步 注意:下面的三个案例都是rsync 每次都是全量的同步(这就坑爹了),而且 file列表是循环形式触发rsync ,等于有10个文件 ...

  8. CentOS7下Rsync+sersync实现数据实时同步

    近期公司要上线新项目,后台框架选型我选择当前较为流行的laravel,运行环境使用lnmp. 之前我这边项目tp32+apache,开发工具使用phpstorm. 新建/编辑文件通过phpstorm配 ...

  9. Rsync+inotify实现文件实时同步#附shell脚本

    强烈推荐先仔细看此文 https://segmentfault.com/a/1190000002427568 实验环境 centos 7.3 vm2:192.168.221.128 同步服务器 vm1 ...

随机推荐

  1. 【UML 建模】状态图介绍

    1.Statechart Diagram 即状态图,主要用于描述一个对象在其生存期间的动态行为,表现为一个对象所经历的状态序列.引起状态转移的事件(Event).因状态转移而伴随的动作(Action) ...

  2. ES6新特性之解构使用细节

    ES6的解构说白了就是能够让我们一次性取到多个值,大致可分为一下几个方面 1.数组解构 普通的一维数组解构,如下one = array[0],two=array[1],three=array[2] v ...

  3. Java调用C++类库--JNI

    JNI是Java平台中的一个重要的功能,这里我把我做的Demo总结一下,分享一下,我会把每个步骤尽量的详细的展现出来. 这里我就不讲解JNI的原理了,google,百度一下,到处都是 好了,直接来讲步 ...

  4. HBase数据备份及恢复(导入导出)的常用方法

    一.说明 随着HBase在重要的商业系统中应用的大量增加,许多企业需要通过对它们的HBase集群建立健壮的备份和故障恢复机制来保证它们的企业(数据)资产.备份Hbase时的难点是其待备份的数据集可能非 ...

  5. jQuery选择器(子元素过滤选择器)第七节

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

  6. Struts2+Spring+Hibernate实现员工管理增删改查功能(一)之登录功能

    昨天的博客中我分享了个人关于ssh实现员工管理的框架整合,今天我在分享管理员登录功能的实现.  转载请注明出处"http://www.cnblogs.com/smfx1314/p/78013 ...

  7. Grafana+Prometheus系统监控之钉钉报警功能

    介绍 钉钉,阿里巴巴出品,专为中国企业打造的免费智能移动办公平台,含PC版,Web版和手机版.智能办公电话,消息已读未读,DING消息任务管理,让沟通更高效:移动办公考勤,签到,审批,企业邮箱,企业网 ...

  8. ANDROID基础ACTIVITY篇之Activity的生命周期(一)

    首先我们先来看一下官方的Android的生命周期图: 根据这个流程图我们可以看到Activity的生命周期一共有7个方法,那么接下来我们就来聊聊这些方法执行过程. 首先在两个Activity(Main ...

  9. Vue学习笔记-Vue基础入门

    此篇文章是本人在学习Vue是做的部分笔记的一个整理,内容不是很全面,希望能对阅读文章的同学有点帮助. 什么是Vue? Vue.js (读音 /vjuː/,类似于 view) 是一套构建用户界面的渐进式 ...

  10. Nytro MegaRaid

    Nytro MegaRaid简介 Dell R720xd,内存64G ,12块 SAS Dell R510xd,内存48G ,12块 SAS   SSD+SAS   SSD对于用户透明   raid会 ...