Rsync同步文件

原创 2015年07月09日 12:33:01

rsync 是一个快速增量文件传输工具,它可以用于在同一主机备份内部的备分,我们还可以把它作为不同主机网络备份工具之用。本文主要讲述的是如何自架rsync服务器,以实现文件传输、备份和镜像。相对tar和wget来说,rsync 也有其自身的优点,比如速度快、安全、高效;

Rsync安装省略,一般系统自带;


实验环境:

服务端:192.168.1.2  同步目录:/home/server

客户端:192.168.1.3  同步目录:/home/client


1、服务器端:

>vi /etc/rsyncd.conf   #创建配置文件rsyncd.conf

uid=nobody #运行rsync守护进程的用户
gid=nobody #运行rsync守护进程的组
use chroot = no #不使用chroot
max connections = 10 #最大连接数,0为不限制
pid file = /var/run/rsyncde.pid #pid文件存放位置
lock file = /var/run/rsync.lock #锁文件存放位置
log file = /var/log/rsyncd.log #日志记录文件的存放位置
#通过该选项可以覆盖客户指定的IP超时时间
#通过该选项可以确保rsync服务器不会永远等待一个崩溃的客户端
#超时单位为秒钟,0表示没有超时定义,这也是默认值
#对于匿名rsync服务器来说,一个理想的数字是600.

Timeout = 300
Log format = %t %a %m %f %b
[backup] #这里是认证的模块名,在client端需要指定
path=/home/server/ #需要做镜像的目录
ignore errors #可以忽略一些无关的IO错误
read only = yes  #该选项设定是否允许客户上传文件
list = no #不允许列文件
auth users = rsync #认证的用户名
secrets file = /etc/rsyncd.secrets #秘密文件(下面定义)  
hosts allow = 192.168.1.3 #允许主机或网段
hosts deny = 0.0.0.0/0 #禁止主机

>vi etc/rsyncd.secrets #创建密码文件

内容:

rsync:rsync //这里用户名和密码都定义为rsync

shell>chmod 0600 /etc/rsyncd.secrets  #更改密码文件权限

shell>rsync --daemon;  #启动服务,默认在873端口监听(可以自己修改)


2、客户端

客户端就不用启动rsync服务了

shell>vi /etc/rsyncd.secrets #这里也是创建密码文件,文件名字自定义,但内容只需要填目标服务授权密码

shell>chmod 0600 /etc/rsyncd.secrets #更改文件权限

内容:

rsync //这里是服务端rsync服务授权密码

测试:(在服务端/home/server/ 先创建test文件 )

shell>rsync -vzrtopg --delete --progress --password-file=/etc/rsyncd.secrets rsync@192.168.1.2::backup /home/client

v:传输时的进度等信息, z:表示压缩, r:是递归, t:保持文件原有时间, o:保持文件原有属主, P:传输进度, g:保持文件原有用户组
--progress 指显示

--delete 指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致

--password-file=/etc/rsyncd.secrets 认证密码

rsync 认证用户

backup 认证模块

如果客户端/home/server/下产生了test文件代表同步成功




编写脚本实现实时同步

#!/bin/bash

while true

do

PATH1=/home/client

rsync -vzrtopg --delete --progress --password-file=/etc/rsyncd.secrets rsync@192.168.1.2::backup $PATH1 >> /var/log/rsync_client.log

#同步完成后休息5秒,再进行下一次同步

sleep 5

done       

#脚本是一个死循环,看着玩吧

运行脚本

nohup  ./root/rsync.sh &


*******************************************************************************************************************

*******************************************************补充*******************************************************

*******************************************************************************************************************

下一步写一个脚本文件实现真正的同步......

启动脚本:rsync.sh 

shell>vi /home/rsync.sh

#!/bin/sh
rsync -vzrtopg --delete --progress --password-file=/etc/rsyncd.secrets rsync@192.168.1.2::backup /home/receive

关闭脚本:killrsync.sh

shell>vi /home/killrsync.sh

#!/bin/sh RSYNC_PID=`ps auxww|grep rsync |grep -v grep|awk '{print $2}'` kill -9 $RSYNC_PID

设置定时任务 (crontab?google can help you!)

shell>crontab -e

SHELL=/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root 0 3 * * * /home/rsync.sh //每天晚上3点执行一次同步 0 6 * * * /home/killrsync.sh //每天早上6点强制终止同步(如果还没完成)

shell>crontab -l #可以查看任务设置情况

shell>service crond status #查看crond是否已启动,若启动了能看到PID

shell>service crond start #启动crond服务


rsync+inotify文件变动后实时自动同步程序

1、rsync 与传统的cp、tar备份方式相比,rsync具有安全性高、备份迅速、支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如定期的备份文件服务器数据到远端服...
  • clh604
  • clh604
  • 2013年05月10日 11:18
  • 1178

rsync成功实现多台Windows文件同步

  • 2011年11月22日 17:30
  • 96KB
  • 下载

rsync实现windows与nginx主机端文件同步(参考文档)

资源 Rsync官网:http://rsync.samba.org/ 简介 Rsync(remote sync)是类unix系统下的远程(LAN/WAN)数据镜像备份工具。可以实现linux与l...

rsync实现网站的备份,文件的同步

转自:http://www.mike.org.cn/blog/index.php?load=read&id=639###pp=0 [rsync实现网站的备份,文件的同步,不同系统的文件的同步,如果是...

ssh密匙登录方法及rsync加密传输同步文件设置

首先建立本机的公私密钥 CODE [root@host1 root]# ssh-keygen -t dsa Generating public/private dsa key pair. En...
  • a930716
  • a930716
  • 2017年03月05日 23:10
  • 902

Ubuntu下 rsync同步文件实例

Rsync(remote synchronize) 是一个远程数据同步工具,可以使用“Rsync算法”同步本地和远程主机之间的文件。 rsync的好处是只同步两个文件不同的部分,相同的部分不在传递。类...

【linux教程】inotify用法简介及结合rsync实现主机间的文件实时同步

版权声明:原创作品,如需转载,请与作者联系。否则将追究法律责任。 学习联系QQ:1660809109、1661815153、2813150558 更多资讯:www.magedu...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Rsync同步文件
举报原因:
原因补充:

(最多只允许输入30个字)