一、简介

  rsync是一个远程数据同步工具,可以快速同步多台主机间的文件。Rsync使用所谓的“Rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。当然不仅仅是远程,在本地同步、复制数据也可以使用这个命令,也只传送文件的不同部分。

二、配置rsync server

  1、启动rsync server

  #vim /etc/xinetd.d/rsync

  把disable的yes改为no

 service rsync
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}

  2、配置/etc/rsyncd.conf(需要手动生成)

全局参数
uid = root //运行RSYNC守护进程的用户
gid = root //运行RSYNC守护进程的组
use chroot = no //不使用chroot
max connections = // 最大连接数为4
strict modes =yes //是否检查口令文件的权限
port = //默认端口873
pid file = /var/run/rsyncd.pid //pid文件的存放位置
lock file = /var/run/rsync.lock //锁文件的存放位置
log file = /var/log/rsyncd.log //日志记录文件的存放位置 模块参数
[backup] //这里是认证的模块名,在client端需要指定
path = /home/backup/ //需要备份的目录,不可缺少!
comment = This is a test //这个模块的注释信息
ignore errors //可以忽略一些无关的IO错误
read only = yes // 只读
#list = no //不允许列文件
auth users = wj //认证的用户名,如果没有这行则表明是匿名,此用户与系统无关
secrets file = /etc/rsync.pas //密码和用户名对比表,密码文件自己生成
hosts allow = 192.168.1.1,10.10.10.10 //允许主机
hosts deny = 0.0.0.0/ //禁止主机
#transfer logging = yes

  3、配置rsync密码(在上边的配置文件中已经写好路径)

  /etc/rsync.pas(名字随便写,只要和上边配置文件里的一致即可),格式(一行一个用户)
  账号:密码
   #vi /etc/rsync.pas

wj:

  权限:因为rsync.pas存储了rsync服务的用户名和密码,所以非常重要。要将rsync.pas设置为root拥有, 且权限为600。
  #cd /etc
  #chown root:root rsync.pas 
  #chmod 600 rsync.pas

  4、让配置生效

  #service xinetd restart

  5、同步文件

  ①从SERVER端取文件

  #rsync -vzrtopg --progress --delete wj@192.168.78.129::backup /home/backup --password-file=/etc/rsync.pas

  

  ②向SERVER端上传文件

  #rsync -vzrtopgP . wj@192.168.78.129::backup

  

  

三、rsync命令参数详解  

  -a存档模式

  -v表示verbose详细显示

  -P表示代替-partial和-progress两者的选项功能
  -z表示压缩
  -r表示recursive递归
  -t表示保持原文件创建时间
  -o表示保持原文件属主
  -p表示保持原文件的参数
  -g表示保持原文件的所属组
  -e ssh建立起加密的连接。

  --delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致。
  --exclude不包含/ins目录
  --partial阻止rsync在传输中断时删除已拷贝的部分(如果在拷贝文件的过程中,传输被中断,rsync的默认操作是撤消前操作,即从目标机上
  删除已拷贝的部分文件。)
  --progress是指显示出详细的进度情况
  --size-only 这个参数用在两个文件夹中的差别仅是源文件夹中有一些新文件,不存在重名且被修改过的文件,因为这种文件有可能会因为内容被修改可大小一样,而被略过。这个参数可以大大地提高同步的效率,因为它不需要检查同名文件的内容是否相同。
  --password-file来指定密码文件,内容包含server端指定认证用户的密码。这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读。

  wj@192.168.78.129::backup
  wj是指server端指定认证的用户
  192.168.78.129是指服务器端的ip
  ::backup 表示服务器端需要同步的模块名称;

Linux下配置rsync服务器的更多相关文章

  1. Linux下配置Tomcat服务器

    Linux下配置Tomcat服务器和Windows下其实差不多,可以去官网下载安装包释放或者在线下载,只是当时下载的windows.zip文件,现在下载.tar.gz格式的即可,下面使用命令行的方式安 ...

  2. Linux下配置Samba服务器全过程

    Linux下配置Samba服务器全过程 user级别的samba的配置 http://www.linuxidc.com/Linux/2014-11/109234.htm http://www.linu ...

  3. 【转】 linux下配置squid 服务器,最简单使用方式

    linux下配置squid 1.什么是squid Squid cache(简称为Squid)是一个流行的自由软件(GNU通用公共许可证)的代理服务器和Web缓存服务器.Squid有广泛的用途,从作为网 ...

  4. linux下配置NFS服务器

    (声明:本文大部分文字摘自Linux NFS服务器的安装与配置) 一.NFS简介     NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Su ...

  5. linux下配置cvs服务器以及cvs常用命令

    .查看系统是否安装有cvs #cat /etc/services | grep cvspserver 看看是否有: cvspserver /tcp #CVS client/server operati ...

  6. linux下配置squid 服务器,最简单使用方式

    https://blog.csdn.net/unixtech/article/details/53185297 squid 查看命中率 https://blog.csdn.net/cnbird2008 ...

  7. Linux下配置一个VNC服务器

    在Linux下配置一个VNC服务器,并设置2个用户,要求其中一个用户登录时不需要输入密码. 然后在客户端使用ssh+vncview的方式访问. 1确认vnc安装 2配置vncserver 3测试vnc ...

  8. suse linux 10 下配置vpn服务器(pptp)

     一.安装所需的软件包:      pptpd-*.rpm      ppp-*.rpm      pptp-*.rpm     一般情况下系统已经将pptp和ppp包安装好了,所以只需安装pptpd ...

  9. 阿里云ECS服务器Linux环境下配置php服务器(二)--phpMyAdmin篇

    上一篇讲了PHP服务器的基本配置,我们安装了apache,php,还有MySQL,最后还跑通了一个非常简单的php页面,有兴趣的朋友可以看我的这篇博客: 阿里云ECS服务器Linux环境下配置php服 ...

随机推荐

  1. POJ3345 Bribing FIPA

    Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 5021   Accepted: 1574 Description There ...

  2. 【BZOJ3991】寻宝游戏(虚树,DFS序,splay)

    题意:求在树中从任意点开始,经过若干个关键点回到原点的最小距离 要求支持在线将某个点设置(取消)为关键点,以及询问答案 n,m<=100000 len[i]<=10^9 思路:显然是一个虚 ...

  3. laravel 数据库配置

    数据库配置文件为项目根目录下的config/database.php //默认数据库为mysql 'default' => env('DB_CONNECTION', 'mysql'), 'mys ...

  4. go gin框架 static 静态文件

    项目结构: DemoPro: .. .. static/ test.txt .. router := gin.Default() router.Static("/static", ...

  5. Java屏幕截图工具 捕获屏幕

    原文:http://www.open-open.com/code/view/1420037709781 import java.awt.BorderLayout; import java.awt.Co ...

  6. 【Spring boot】【gradle】idea新建spring boot+gradle项目

    在此之前,安装了idea/jdk/gradle在本地 ===================================== gradle怎么安装:http://www.cnblogs.com/s ...

  7. [WASM Rust] Use the js-sys Crate to Invoke Global APIs Available in Any JavaScript Environment

    js-sys offers bindings to all the global APIs available in every JavaScript environment as defined b ...

  8. 使用azure send grid发送email

    1. create a send grid account 2. remember the username/password of the send grid account watermark/2 ...

  9. 使用FMDB多线程訪问数据库,及database is locked的问题

    今天最终攻克了多线程同一时候訪问数据库时,报数据库锁定的问题.错误信息是: Unknown error finalizing or resetting statement (5: database i ...

  10. C++中结构和类的区别

    首先从从语言角度来看,c语言是一种结构化的语言,便于按照模块化的方式来组织程序,易于程序员的调试和维护,而对于c++来说,我么可以认为它是标准c的超集.实际上所有的c程序也是c++程序.但两者之间还是 ...