系统版本: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

最新文章

  1. contiki学习笔记---process结构体
  2. 关于初学者Could not find action or result :No result defined for action com.lyw.action.LoginAction and result success
  3. hdu 4750 Count The Pairs(并查集)
  4. nginx环境下搭建nagios 3.5.0,及配置pnp4nagios画图
  5. 配置Kestrel 网址Urls
  6. ios 实现在tableViewCell上面添加长按手势 删除该条cell以及列表后台数据等
  7. vim如何显示行号
  8. JavaScript 中 正则替换 replace
  9. 电脑小知识-win10
  10. Windows OpenSSH 基本用法
  11. [转]Fiddler模拟post四种请求数据
  12. 外网无法ip访问服务器解决方法 (原)
  13. H5手机移动端调起浏览器(qq浏览器,uc浏览器)自带分享功能实例
  14. MySQL事务(二)
  15. Docker使用札记 - 常用命令
  16. unicode转中文以及str形态的unicode转中文
  17. 转载:“error LNK1169: 找到一个或多个多重定义的符号”的解决方法
  18. LCS2 - Longest Common Substring II(spoj1812)(sam(后缀自动机)+多串LCS)
  19. linux 异常
  20. Codeforces Round #300 E - Demiurges Play Again

热门文章

  1. linux下mysql的安装与使用
  2. build.plugins.plugin.version&#39; for org.apache.maven.plugins:maven-compiler-plugin is missing
  3. ECNU 3263 丽娃河的狼人传说 (贪心)
  4. Directory获取方式
  5. Windows和Linux启动虚拟环境
  6. CodeForcesGym 100517B Bubble Sort
  7. 牛客网暑期ACM多校训练营(第二场)B discount
  8. POJ 2479 两段连续最大和
  9. ZOJ1004 &amp;&amp; HDU1515 dfs回溯
  10. POJ 1741 Tree【Tree,点分治】