系统版本:Centos X64 6.4(最小化安装)

先安装依赖包

 [root@localhost ~]# yum install vim wget lsof gcc make cmake makeconf autoconf automake openssh -y

开始下载安装

 [root@localhost ~]# wget http://down1.chinaunix.net/distfiles/rsync-3.0.4.tar.gz
[root@localhost ~]# tar zxf rsync-3.0..tar.gz
[root@localhost ~]# cd rsync-3.0.
[root@localhost rsync-3.0.]# ./configure && make && make install

安装完毕后命令的绝对路径:/usr/local/bin/rsync

参数:

-a:表示归档模式,用递归方式传输文件

-v:详细输出

-z:传输时对文件进行压缩处理

-r:对子目录进行递归

-t:保持文件的时间信息

-p:保持文件的权限

-o:保持文件的属主信息

-g:保持文件的属组信息

--delete:表示以服务端为基准进行同步,保持服务端的目录文件和客户端的完全一致

--progress:用于显示数据同步的过程

--exclude:排除不需要同步的目录或者文件

同步本地目录到远程主机

命令格式:rsync -av --delete 本地目录绝对路径(不能带斜杠)  远程主机用户名@远程主机地址:远程绝对路径

如果没做ssh信任关系的话会需要输入远程主机的登录密码

 [root@localhost ~]# rsync -a --delete /etc root@192.168.1.100:/tmp

同步本地目录下的文件到远程主机

命令格式:rsync -av --delete 本地目录绝对路径/  远程主机用户名@远程主机地址:远程绝对路径

 [root@localhost ~]# rsync -a --delete /etc/ root@192.168.1.100:/tmp

把rsync作为服务启动让远程客户端来同步

rsync服务端:192.168.1.101

rsync客户端:192.168.1.100

在rsync服务端创建一个默认的配置文件/etc/rsyncd.conf,

内容如下:

 #指定传输文件时守护进程具有的用户ID,这里表示默认为nobady
uid=nobady
#指定传输文件时守护进程具有的用户组ID,这里表示默认为nobady
gid=nobody
#禁止切换目录
use chroot=no
#客户端的最大连接数
max connection=
#检查口令文件的权限,口令文件的权限用户属组必须是root,权限必须是600
strict modes=yes
#pid文件的位置
pid file=/var/run/rsyncd.pid
#lock文件的位置
lock file=/var/run/rsyncd.lock
#日志文件的位置
log file=/var/log/rsyncd.log #定义模块名
[gamelog]
#指定这个模块需要同步的路径
path=/usr/local/
#这个是注释 可以自己定义
comment=gamelog file
#忽略一些无关的IO错误
ignore errors
#no代表客户端可以上传文件,yes表示只读取
read only=no
#no表示客户端可以下载文件,yes表示不能下载
write only=no
#表示允许连接的主机地址
hosts allow=192.168.1.100
#表示不允许连接的主机地址
hosts deny=*
#不允许该模块被客户端列出
list=false
#指定传输文件时守护进程具有的用户ID,
uid=root
#指定传输文件时守护进程具有的用户组ID,
gid=root
#用来指定连接该模块的用户名,用户名可以自定义
auth users=back
#指定密码文件,文件里面记录的是用户名:密码
secrets file=/etc/srs.pass

帐号密码文件/etc/srs.pass

 [root@localhost ~]# ll /etc/srs.pass
-rw-------. root root Jul : /etc/srs.pass
[root@localhost ~]# cat srs.pass
back:

启动服务端程序

 [root@localhost ~]# /usr/local/bin/rsync --daemon

也可以指定配置文件启动:/usr/local/bin/rsync --daemon --config=配置文件绝对路径

客户端192.168.1.100

创建密码文件:

 [root@localhost etc]# echo "" > rsyncd.pass
[root@localhost etc]# chmod rsyncd.pass

客户端同步命令格式:/usr/local/bin/rsync -vzrtopg --delete --progress --exclude "需要排除的目录和文件"  服务端用户名@服务端地址::模块名字 本地目录 --password-file=密码文件路径

 [root@localhost etc]# rsync -vzrtopg --delete --password-file=/etc/rsyncd.pass  back@192.168.1.101::gamelog /tmp/
receiving incremental file list
./
xx sent bytes received bytes 512.00 bytes/sec
total size is speedup is 4745.42

出错的排查方法

1.查看防火墙是否关闭,或者对873端口添加了白名单,可以在客户端telnet 服务端的873端口

2.查看帐号密码文件的权限和所属用户是否正确

shell安装脚本:

rsync_install.sh

#!/bin/bash

function Install_Rsync()
{
yum install wget gcc make automake makeconf openssh*-y
wget http://down1.chinaunix.net/distfiles/rsync-3.0.4.tar.gz
tar zxf rsync-3.0..tar.gz && cd rsync-3.0.
./configure && make && make install
} function Create_Rsync_Conf()
{
cat <<EOF > /etc/rsyncd.conf
uid=nobody
gid=nobody
use chroot=no
max connections=
strict modes=yes
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.pid
log file=/var/log/rsyncd.log
[WEBSERVER]
path=/webserver
comment=SHENG file
ignore errors
read only=no
write only=no
hosts allow=xxx.xxx.xxx.xxx
hosts deny=*
auth users=test
secrets file=/etc/rsyncd.pass
EOF
} which rsync
if [ $? -eq ]
then
echo -e "\033[1;32m \033[05m The rsync is Exist! \033[0m"
Create_Rsync_Conf
echo -e "\033[1;32m The configure file is /etc/rsyncd.conf \033[0m"
else
echo -e "\033[1;32m Setup rsync \033[0m"
Install_Rsync
echo -e "\033[1;32m Create config file \033[0m"
Create_Rsync_Conf if [ -f /etc/rsyncd.conf ]
then
echo -e "\033[1;32m The rsync install OK! \033[0m"
else
echo -e "\033[31m \033[05m The rsync install Fail! \033[0m"
fi
fi

shell启动脚本 放在/etc/init.d/ 下 给755权限 chmod 755 /etc/init.d/rsyncd

rsyncd

#!/bin/bash

Rsync_Command=`whereis rsync | awk '{print $2}'`

function Start()
{
${Rsync_Command} --daemon
if [ $? -eq ]
then
echo -e "\033[1;32m The rsyncd start successful...... \033[0m"
else
echo -e "\033[31m \033[05m The rsyncd start fail !!!!!!!! \033[0m"
fi
} function Stop()
{
if [ -f '/var/run/rsyncd.pid' ]
then
kill - `cat /var/run/rsyncd.pid`
sleep
proce_num=`ps -ef | grep ${Rsync_Command} | grep -v grep | wc -l`
if [ ${proce_num} -gt ]
then
echo -e "\033[31m \033[05m The rsyncd Stop fail !!!!!!!! \033[0m"
else
echo -e "\033[1;32m The rsyncd Stop successful...... \033[0m"
rm /var/run/rsyncd.pid
fi
else
echo -e "\033[31m \033[05m The /var/run/rsyncd.pid file is not exist! Check rsync is Runing ??? \033[0m" fi
} function Restart()
{
Stop
sleep
Start
} case $ in
start)
Start
;;
stop)
Stop
;;
restart)
Restart
;;
*)
echo -e "\033[31m \033[05m Use start|stop|restart \033[0m"
;;
esac

rsync单向同步的更多相关文章

  1. openstack私有云布署实践【9.3 主从controller单向同步glance-image目录】

    采用Rysnc单向同步,而不用双方实时同步,原因是在历史的运行过程中,我们发现,有些镜像包太大,当在主用的glance将镜像保存时,并不是一时半会就把镜像保存好,当主用在保存时,备用节点又在实时同步那 ...

  2. rsync单项同步

    配置rsync+inotify实时单向同步 定期同步的缺点: 执行备份的时间固定,延期明显,实时性差 当同步源长期不变化时,密集的定期任务是不必要的(浪费资源) 实时同步的优点: 一旦同步源出现变化, ...

  3. ceph 006 rbd高级特性 rbd快照 镜像克隆 rbd缓存 rbd增量备份 rbd镜像单向同步

    版本 [root@clienta ~]# ceph -v ceph version 16.2.0-117.el8cp (0e34bb74700060ebfaa22d99b7d2cdc037b28a57 ...

  4. couchbase单向同步

    我们知道,couchbase默认情况下就是N主的HA模式,bucket同时存储在多个节点中.如下所示: 但事实上,有些时候我们希望某些节点只能读,不能写以避免各种副作用以及分布式系统下出于管理和安全性 ...

  5. Rsync文件同步

    Rsync文件同步 本章结构 关于rsync 1.一款增量备份工具,remote sync,远程同步,支持本地复制或者与其他SSH.rsync主机同步,官方网站:http://rsync.samba. ...

  6. 真正的inotify+rsync实时同步 彻底告别同步慢

    真正的inotify+rsync实时同步 彻底告别同步慢       http://www.ttlsa.com/web/let-infotify-rsync-fast/     背景 我们公司在用in ...

  7. rsync命令(同步/备份数据)

    rsync命令rsync命令是一个远程数据同步工具,可通过 lam/wan快速同步多台主机间的文件.rsync使用所谓的 "rsync算法"来使用本地和远程两个主机之间的文件达到同 ...

  8. Linux实战教学笔记21:Rsync数据同步工具

    第二十一节 Rsync数据同步工具 标签(空格分隔): Linux实战教学笔记-陈思齐 ---本教学笔记是本人学习和工作生涯中的摘记整理而成,此为初稿(尚有诸多不完善之处),为原创作品,允许转载,转载 ...

  9. 架设rsync服务器同步数据

    什么是rsync rsync 是一个快速增量文件传输工具,它可以用于在同一主机备份内部的备分,我们还可以把它作为不同主机网络备份工具之用.本文主要讲述的是如何自架rsync服 务器,以实现文件传输.备 ...

随机推荐

  1. 去面试Python工程师,这几个基础问题一定要能回答,Python面试题No4

    今天的面试题以基础为主,去面试Python工程师,这几个基础问题不能答错 第1题:列表和元组有什么不同? 列表和元组是Python中最常用的两种数据结构,字典是第三种. 相同点: 都是序列 都可以存储 ...

  2. linux下mysql的安装与使用

    一.mysql的安装 之前搭建linux下项目的发布,最后遗留的问题时数据库的迁移,如何从windows上迁移到linux上?这里首先进行mysql数据库的安装 1.下载mysql安装包 在这里下载的 ...

  3. (八)python3 迭代

    迭代:如果给定一个 list 或 tuple,我们可以通过 for 循环来遍历这个 list 或tuple,这种遍历我们称为迭代(Iteration) 字典: >>> d = {'a ...

  4. odoo权限配置讲解2

    今天我们在来讲解一下odoo中配合使用公司开发的权限配置模块,简单配置odoo权限的操作说明 接着上篇讲到的,昨天我们只是做了一个简单的表单模型的筛选规则 今天来讲解一下如何在创建内贸报价单的时候,在 ...

  5. selenium切换frame(iframe)

    例如网页代码为: <!DOCTYPE html><html lang="en"><head> <meta charset="UT ...

  6. Codeforce 741B Arpa's weak amphitheater and Mehrdad's valuable Hoses(并查集&分组背包)

    题意: 给定n个价值为b 花费为w的物品, 然后某些物品是属于同一个组的, 给定一个花费限制V, 求在小于等于V的情况下取得到的价值最大为多少,能对于同一个组的物品,要么全取,要么只取一个. 分析: ...

  7. [luoguP1033] 自由落体(模拟?)

    传送门 这不能算是数论题... 卡精度这事noip也做的出来.. 代码 #include <cmath> #include <cstdio> int n, ans; doubl ...

  8. [luoguP1015] 回文数(模拟 + 高精度?)

    传送门 类似高精的操作... 代码 #include <cstdio> #include <cstring> #include <iostream> #define ...

  9. 消息队列RabbitMQ使用教程收集

    学习应该要系统,最好的方式是看书. RabbitMQ最权威的教程应该参考官方文档. 下面是收集的一些教程: 官方: https://www.rabbitmq.com/getstarted.html h ...

  10. 在 Oracle Linux 上使用 DTrace

    作者:Richard Friedman 简要介绍适用于 Oracle Linux 的 DTrace 探测器和提供程序,以及与 Oracle Solaris 中 DTrace 探测器和提供程序的区别.还 ...