博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RSync 远程同步工具的使用
阅读量:7207 次
发布时间:2019-06-29

本文共 3876 字,大约阅读时间需要 12 分钟。

RSync实现文件备份同步:

简介:

remote synchronize:一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息, rsync是用 “rsync 算法”提供了一个客户机                         和远程文件服务器的文件同步的快速方法,而且可以通过ssh方式来传输文件,这样其保密性也非常好,另外它还是免费的软件。因为rsync是一款如此有用            的软件,所以很多Linux的发行版本都将它收录在内了

特性:

  • 能更新整个目录
  • 有选择性的保持符号链链、硬链接、文件属于、权限、设备以及时间等;
  • 对于安装来说,无任何特殊权限要求;
  • 对于多个文件来说,内部流水线减少文件等待的延时;
  • 能用rsh、ssh 或直接端口做为传输入端口;
  • 支持匿名rsync 同步文件,是理想的镜像工具;

架设rsync服务器:

  1.安装:

#yum方式安装#源码方式,注意安装gcctar xvf  rsync-xxx.tar.gzcd rsync-xxx./configure --prefix=/usr/local make ;make install

rsync的主要有以下三个配置文件(需要手工创建):

/etc/rsyncd.conf(主配置文件)
/etc/rsyncd.secrets(密码文件)
  格式:user1:passwd1
  出于安全目的,文件的属性必需是只有属主可读。
  chown root.root rsyncd.secrets  #修改属主
  chmod 600 rsyncd.secrets
/etc/rsyncd.motd
  定义rysnc服务器信息的,也就是用户登录信息,可以为空
  类似ftp的欢迎页面
  示例:Welcome to use the mike.org.cn rsync services!
rsyncd.conf配置文件示例:

#Distributed under the terms of the GNU General Public License v2#Minimal configuration file for rsync daemon#See rsync(1) and rsyncd.conf(5) man pages for help# This line is required by the /etc/init.d/rsyncd script#告诉进程写到 /var/run/rsyncd.pid 文件中pid file = /var/run/rsyncd.pid   #指定运行端口,默认是873port = 873#指定服务器IP地址address = 192.168.1.171  #服务器端传输文件时,要发哪个用户和用户组来执行,默认是nobody。 如果用nobody 用户和用户组,可能遇到权限问题#uid = nobody #gid = nobody    uid = root   gid = root  #一个安全选项 详情自己去查查use chroot = yes  #read only 是只读选择,也就是说,不让客户端上传文件到服务器上。还有一个 write only选项read only = yes #在您可以指定单个IP,也可以指定整个网段,能提高安全性。格式是ip 与ip 之间、ip和网段之间、网段和网段之间要用空格隔开#limit access to private LANshosts allow=192.168.1.0/255.255.255.0 10.0.1.0/255.255.255.0  hosts deny=*max connections = 5 motd file = /etc/rsyncd.motd#This will give you a separate log file#log file = /var/log/rsync.log#This will log every file transferred - up to 85,000+ per user, per sync#transfer logging = yeslog format = %t %a %m %f %bsyslog facility = local3timeout = 300 #指定文件目录所在位置[home]  path = /home    list=yes #是否可以列出目录ignore errors # #忽略IO错误 #auth users必须是在服务器上存在的真实的系统用户,如果你想用多个用户以,号隔开,比如auth users = easylife,rootauth users = rootsecrets file = /etc/rsyncd.secrets  comment = This is RHEL 4 data  #exclude是排除的意思,也就是说,要把/home目录下的easylife和samba排除在外; easylife/和samba/目录之间有空格分开exclude = easylife/  samba/

模块定义什么呢?

  主要是定义服务器哪个目录要被同步。每个模块都要以[name]形式。这个名字就是在rsync 客户端看到的名字,其实有点象Samba服务器提供的共享名。而服务器真正同步的     数据是通过path 指定的。我们可以根据自己的需要,来指定多个模块。每个模块要指定认证用户,密码文件、但排除并不是必须的

 

启动rsync服务器:

/usr/bin/rsync --daemon  --config=/etc/rsyncd/rsyncd.conf --config用于指定rsyncd.conf的位置,如果在/etc下可以不写/usr/bin/rsync --daemon  --config=/etc/rsyncd/rsyncd.conf

rsync有六种不同的工作模式:

 

  1. 拷贝本地文件;当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式。

  2.使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号":"分隔符时启动该模式。
  3.使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号":"分隔符时启动该模式。
  4. 从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时启动该模式。
  5. 从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式。
  6. 列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。
  -a 以archive模式操作、复制目录、符号连接 相当于-rlptgoD

 

  rsync中的参数

 

  -r 是递归

  -l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限;-t 保持文件原有时间;-g 保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件;
  -z 传输时压缩;
  -P 传输进度;
  -v 传输时的进度等信息,和-P有点关系,自己试试。可以看文档;
  -e ssh的参数建立起加密的连接。
  -u只进行更新,防止本地新文件被重写,注意两者机器的时钟的同时
  --progress是指显示出详细的进度情况
  --delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致
  --password-file=/password/path/file来指定密码文件,这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读。

一些实例:

 

//注:server为modul名[server]//列出rsync 服务器上的所提供的同步内容     rsync  --list-only  root@192.168.145.5::server//列出目录:    rsync  --list-only  root@192.168.93.149::server //从服务端取数据(客户端只会增加文件);    rsync -avzP root@192.168.93.149::server rhel4home[本地目录]    //从服务端取数据(使客户端的文件和服务端完全一致,会删除客户端多余的文件);    rsync -avzP --delete root@192.168.93.149::server ./    //密码从文件中读取:    注意此时的密码文件里面只需要写密码不要写用户名 和服务端的文件是不同的    rsync -avzP --delete --password-file=/etc/rsyncd.secrets root@192.168.93.149::server .///客户端向服务端提交文件(只需要把目录更换位置即可)    rsync -avzP --delete --password-file=/kang/sercet ./ root@192.168.93.149::server

 

 

转载地址:http://pklum.baihongyu.com/

你可能感兴趣的文章
解析Disruptor:解密内存障
查看>>
管道-过滤器模式学习总结
查看>>
投放数据获取(三):搜狗
查看>>
springboot之使用redistemplate优雅地操作redis
查看>>
《斯坦福大学:编程范式》第5节1:void*类型的使用:一个兼容所有类型的线性搜索...
查看>>
环境配置之 Debug 和 Release - iOS
查看>>
Java精选笔记_Java入门
查看>>
The Cow-Signal
查看>>
centOS7 初始环境配置
查看>>
HTML5 Canvas绘制跟随鼠标移动的球
查看>>
leetcode1048
查看>>
Log Analysis - DataFrame
查看>>
Spring Data Solr
查看>>
页面渲染的同步和异步区别?
查看>>
MongoDB基本使用
查看>>
[转]Eclipse中远程调试Hadoop
查看>>
由一个C语言递归判断回文数的程序产生的回忆
查看>>
Linux下安装mysql5.7
查看>>
1.1.3 Getting Started_Budding Your First App_Building a Simple User Interface
查看>>
学习日记0907 GIL全局解释器锁 死锁与递归锁 信号量 Event事件 线程的queue
查看>>