rsync ssh 数据同步分析

 更新时间:2012年08月01日 17:05:14   作者:  
可通过ssh进行网络加密传输,也可以利用ssh客户端密钥建立信任关系。当在两台计算机之间保持大型、复杂目录结构的同步时候,比tar或wget等方式都要快。而且可以做到精确同步
1.rsync和ssh差异远程同步命令

复制代码 代码如下:

命令格式:
#rsync [option] 源路径 目标路径
其中:
[option]:
a:使用archive模式,等于-rlptgoD,即保持原有的文件权限
z:表示传输时压缩数据
v:显示到屏幕中
e:使用远程shell程序(可以使用rsh或ssh)
--delete:精确保存副本,源主机删除的文件,目标主机也会同步删除
--include=PATTERN:不排除符合PATTERN的文件或目录
--exclude=PATTERN:排除所有符合PATTERN的文件或目录
--password-file:指定用于rsync服务器的用户验证密码

源路径和目标路径可以使用如下格式:
rsync://[USER@]Host[:Port]/Path <--rsync服务器路径
[USER@]Host::Path <--rsync服务器的另一种表示形式
[USER@]Host:Path <--远程路径
LocalPath <--本地路径

※需要注意的是,来源或目的路径最少要有一个是本地路径,如果忽略本地路径,则只会列出远端的文件列表。

例子:

mkdir test_new;  //本地建立一个测试目录

ssh ljz@192.168.1.109:/home/ljz/test/  //这个是svn服务器中的账户目录

将svn上test目录下的内容更新到本地test_new目录下

rsync -ave ssh ljz@192.168.1.109:/home/ljz/test/ /home/ljz/test_new/  

※需要注意的是,如果是/home/ljz/test/表示是test目录下的所有内容,/home/ljz/test表示连同这个目录已经目录下的所有内容

将本地内容同步到远程目录?

rsync -ave ssh /home/ljz/test_new/ ljz@192.168.1.109:/home/ljz/test/
1#rsync -avz --delete ljz@192.168.1.109:/home/ljz/test/ /home/ljz/New_Test/
将109上的test目录内容同步到本地的New_Test目录,并删除本地上源路径中不存在的文件或目录。
※千万要注意--delete参数,在使用此参数的时候,建议用绝对路径指定本地目录,防止清空当前目录。

二、建立rsync服务器

当服务器没有开通ssh,或备份方没有ssh权限的时候,我们可以通过建立rsync服务器,进行匿名的数据同步。
要使用rsync服务,需要建立服务端和客户端:
1、服务端
主配置文件:
复制代码 代码如下:

#vi /etc/rsyncd.conf
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
[test] #rsync区段的设定名称
path = /var/www/html/test #需要同步的数据存放路径
comment = test folder #注释
uid = apache #采用什么身份进行文件读取
gid = apache #同上,必须是有读取path权限的用户、组
ignore errors #忽略错误
read only = yes #只读
list = no #不能列表
auth users = linuxing #连接rsync服务的帐号
secrets file = /etc/rsyncd.secrets #指定存放帐号密码的位置

帐号密码文件:

#vi /etc/rsyncd.secrets
#格式:帐号:密码 (每行一组,帐号和密码用:号分开)
linuxing:backup

保存后,需要保证用户是root,权限是600

#chown root:root /etc/rsyncd.secrets
#chmod 600 /etc/rsyncd.secrets

启动服务:
#rsync --daemon

保证开机自动启动:
修改/etc/xinetd.d/rsync文件,把其中的disable=yes改为disable=no

#sed -i -e "/disable/{ s/yes/no/ }" /etc/xinetd.d/rsync
#service xinetd.d restart

2、客户端
使用用法一中涉及到rsync://的方法即可。
如果rsync服务器需要密码验证,可以增加--password-file参数:

#rsync -azv --delete rsync://linuxing@192.168.1.100/test /var/www/html --password-file=/etc/test
#vi /etc/test
#指定访问密码
bakcup
#chmod 600 /etc/test

3、定时
另外,由于rsync客户端没有定时功能,我们可以通过在crontab中增加计划任务实现定时的同步,如:(不要使用-v参数,防止刷屏)

#crontab -e
0 22 * * 1-5 /usr/bin/rsync -az --delete rsync://linuxing@192.168.1.100/test /var/www/html --password-file=/etc/test
#指定星期一到五,每晚十点整进行同步

三、总结
使用rsync的优点:可通过ssh进行网络加密传输,也可以利用ssh客户端密钥建立信任关系。当在两台计算机之间保持大型、复杂目录结构的同步时候,比tar或wget等方式都要快。而且可以做到精确同步。

四、附录
如果是通过编译安装的rsync(如FreeBSD),路径有点不同:
服务器的配置文件在:/usr/local/etc/rsyncd.conf
启动文件:/usr/local/etc/rc.d/rsyncd.sh
命令文件:/usr/local/bin/rsync
系统启动托管:/etc/rc.conf(增加rsyncd_enable="YES")

相关文章

  • WHMCS V7.4.2 图文安装教程

    WHMCS V7.4.2 图文安装教程

    这篇文章主要介绍了WHMCS V7.4.2 图文安装教程,需要的朋友可以参考下
    2019-04-04
  • 阿里云Centos7安装svn与配置讲解

    阿里云Centos7安装svn与配置讲解

    今天小编就为大家分享一篇关于阿里云Centos7安装svn与配置讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • windows+apache+mod_python配置django运行环境

    windows+apache+mod_python配置django运行环境

    环境:windows2008, apache2.2, python2.5, mod_python-3.3.1.win32-py2.5-Apache2.2, django-1.0.2_final
    2012-06-06
  • win10同网段/跨网段访问虚拟机samba服务器的过程记录

    win10同网段/跨网段访问虚拟机samba服务器的过程记录

    这篇文章主要介绍了win10同网段/跨网段访问虚拟机samba服务器,主要包括环境搭建和ubuntu端的安装配置过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • Cobbler 批量安装操作系统的配置方法

    Cobbler 批量安装操作系统的配置方法

    Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows。该工具使用python开发,小巧轻便(才15k行代码),使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理DHCP,DNS,以及yum包镜像
    2016-08-08
  • RSync实现文件备份同步详解

    RSync实现文件备份同步详解

    rsync,remote synchronize顾名思意就知道它是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息
    2016-03-03
  • 基于BaseHTTPRequestHandler的HTTP服务器使用及实现方法

    基于BaseHTTPRequestHandler的HTTP服务器使用及实现方法

    BaseHTTPRequestHandler是Python中的一个基类,属于http.server模块,用于处理HTTP请求的基本功能,下面详细介绍BaseHTTPRequestHandler的主要特点和使用方法,感兴趣的朋友一起看看吧
    2023-10-10
  • 云服务器(Linux)安装部署Kafka的详细过程

    云服务器(Linux)安装部署Kafka的详细过程

    这篇文章主要介绍了云服务器(Linux)安装部署Kafka的详细过程,kafka的安装需要依赖于jdk,需要在服务器上提前安装好该环境,这里使用用jdk1.8,本文给大家详细介绍感兴趣的朋友跟随小编一起看看吧
    2022-11-11
  • 禁止IP访问网站的多种方法分享(linux,php,nginx,apache)

    禁止IP访问网站的多种方法分享(linux,php,nginx,apache)

    禁止IP访问网站的各种方法有许多,不同服务器环境的方法会所有不同,下面我总结我们常用的禁止IP访问网站的实现配置方法,希望对大家会有所帮助
    2014-07-07
  • WampServer运行呈橙色该怎么解决

    WampServer运行呈橙色该怎么解决

    这篇文章主要给大家介绍了关于WampServer运行呈橙色该怎么解决的相关资料,wampserver一直是橙色的,表示服务没有完全开启,可能是Apache服务器没有启动,文中给出了详细的解决办法,需要的朋友可以参考下
    2023-09-09

最新评论