基于rsync方式的文件备份

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

  sync在进行同步或备份时,使用远程shell,或TCP连接远程daemon,有两种途经连接远程主机。
  shell模式,不需要使用配置文件,也不需要启动远端rsync。远程传输时一般使用ssh作为传输工具。
  daemon模式,但必须在一台机器上启动rsync。

  • rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。 rsync是一个功能非常强大的工具,其命令也有很多功能特色选项,我们下面就对它的选项一一进行分析说明。
  • 特性:

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

http://man.linuxde.net/rsync      rsync命令

http://www.cnblogs.com/mchina/p/2829944.html   安装rsync可参考

http://www.ttlsa.com/web/let-infotify-rsync-fast/         真正的inotify+rsync实时同步 彻底告别同步慢

1. 基于rsync方式,需要传输多个文件时  

2.1 从本地到远端,远端的rsync服务端需要部署完成

-a 参数,相当于-rlptgoD,-r 是递归 -l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限;-t 保持文件原有时间;-g 保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件;

-v 传输时的进度等信息,和-P有点关系,自己试试。可以看文档;
-z 传输时压缩;
-P 传输进度;

--bwlimit=KBPS 限制I/O带宽,KBytes per second。

--progress 在传输时现实传输过程;

--include=PATTERN 指定不排除而需要传输的文件模式,适用于精确传输指定文件,一般于exclude搭配使用;
--exclude=PATTERN 指定排除不需要传输的文件模式,格式为需要过滤的文件或目录名称,多个文件之间用空格分隔;
--exclude-from=FILE 排除FILE中指定模式的文件,将不需要传输的文件列表写入指定的文件中,每行一个文件名称;(如果该文件在传输目录下,包括文件名本身)

  1. 从本地推送单个文件至rsync服务器端,backup为rsync指定的bak模块用户,密码写入/home/opsuser/rsync.pass文件中,权限必须为600,本地文件为/backup02/tc-df-2005-20160729.tar.gz,远端module为bak
rsync -avzP --bwlimit=3000 --progress --password-file=/home/opsuser/rsync.pass /backup02/tc-df-2005-20160729.tar.gz [email protected]192.168.1.100::bak      #单个文件迁移,限速3M

  2.从本地推送多个文件至rsync服务器端,本地目录为/backup02/,排除exclude.list文件中指定的文件,其余文件全部传输至远端module为bak的模块对应的目录下

rsync -avzP --bwlimit=3000 --progress --password-file=/home/opsuser/rsync.pass --exclude-from=/backup02/exclude.list /backup02/ [email protected]192.168.1.100::bak    #批量迁移本地/backup02/目录下文件,限速3M,注意参数--exclude-from后面写入的是文件名称

  注:将传输目录下不需要进行备份的文件名字写入指定的文件内(如果该文件在传输目录下,包括文件名本身)
  

  

  3.备份rsync服务器端bak模块文件到本地/data/backup02目录下

  

rsync -avzP --bwlimit=3000 --progress --password-file=/home/opsuser/rsync.pass  [email protected]192.168.1.100::bak /data/backup02/   #备份rsync服务器端bak模块对应目录下面的文件至本地/data/backip02/目录下,限速3M

2. 基于ssh方式传输(需要启动ssh服务,不需要启动rsync服务) 

  1. 基于ssh方式从远程复制到本地,由于是基于ssh方式,server端不需要运行rsync服务,且远程的传输用户为系统的真实用户,若ssh默认为22端口不需要指定传输端口,以下示例指定ssh远程端口为22222进行传输
  •  从远端复制到本地
rsync -avzogP --bwlimit=100  --progress -e ‘ssh -p 22222‘ [email protected]192.168.1.100:/data/server-update/tc-df-2001-20160523.tar.gz /export/backup     #基于ssh方式单个文件迁移,多个文件可以用*代替,支持正则,限速100K
  •  从本地到远端
rsync -avzP --delete --exclude=".svn" -e ‘ssh -p 2222‘ /data/backup/ [email protected]192.168.1.100:/data/server-update/        #基于ssh方式备份整个目录,本地目录为/data/backup/,排除.svn文件

示例:

//注:server为modul名[server]
//列出rsync 服务器上的所提供的同步内容
    rsync  --list-only  [email protected]192.168.145.5::server
//列出目录:
    rsync  --list-only  [email protected]192.168.93.149::server 

//从服务端取数据(客户端只会增加文件);
    rsync -avzP [email protected]192.168.93.149::server rhel4home[本地目录]

//从服务端取数据(使客户端的文件和服务端完全一致,会删除客户端多余的文件);
    rsync -avzP --delete [email protected]192.168.93.149::server ./

//密码从文件中读取:    注意此时的密码文件里面只需要写密码不要写用户名 和服务端的文件是不同的
    rsync -avzP --delete --password-file=/etc/rsyncd.secrets [email protected]192.168.93.149::server ./

//客户端向服务端提交文件(只需要把目录更换位置即可)
    rsync -avzP --delete --password-file=/kang/sercet ./ [email protected]192.168.93.149::server
时间: 2024-08-24 13:30:38

基于rsync方式的文件备份的相关文章

基于rsync+inotify实现数据实时同步传输

前言 与传统的cp.tar备份方式相比,rsync具有安全性高.备份迅速.支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,但随着文件数量的增大和实时同步的要求,rsync已不能满足需求,随之rsync+inotify便应运而生.本文将讲解rsync的基础知识和如何基于rsync+inotify实现数据实时同步传输. rsync相关介绍 rsync(remote sync)是一款快速增量备份工具(远程同步),支持本地复制,或者与其他SSH(安全传输).rsync主机同步.

[转帖]sersync基于rsync+inotify实现数据实时同步

sersync基于rsync+inotify实现数据实时同步 https://www.jianshu.com/p/d532a34e5cc5 前言 提到数据同步就必然会谈到rsync,一般简单的服务器数据传输会使用ftp/sftp等方式,但是这样的方式效率不高,不支持差异化增量同步也不支持实时传输. 原文地址:https://www.cnblogs.com/nbxcnxvcnb/p/12393252.html

sersync基于rsync+inotify实现数据实时同步

一.环境描述 需求:服务器A与服务器B为主备服务模式,需要保持文件一致性,现采用sersync基于rsync+inotify实现数据实时同步 主服务器A:192.168.1.23 从服务器B:192.168.1.243 实时同步/var/atlassian目录到从服务器. 二.实施 1.从服务器192.168.1.243 rsync服务搭建 1.1安装软件包 wget http://rsync.samba.org/ftp/rsync/src/rsync-3.1.1.tar.gz tar xf r

Spring声明式事务管理(基于注解方式实现)

----------------------siwuxie095 Spring 声明式事务管理(基于注解方式实现) 以转账为例 1.导入相关 jar 包(共 10 个包) (1)导入核心 jar 包和日志相关的 jar 包 (2)导入 JdbcTemplate 的 jar 包 (3)导入 MySQL 的 JDBC 驱动包 mysql-connector-java 下载链接: https://dev.mysql.com/downloads/connector/j/ (4)导入 AOP 的 jar

基于php-fpm方式部署LAMP

前言 CentOS 7: httpd-2.4:rpm包默认编译支持了fcgi模块: php-fpm包:专用于将php运行于fpm模式: 当我们使用php-fpm方式部署LAMP时,需要使用三台服务器,一台服务器作为http服务器,一台当作php-fpm服务器,一台作为数据库服务器.当http服务器接收到客户端的请求时,会通过本地磁盘IO返回出请求中的静态请求资源,当http服务器匹配到请求数据中的动态资源后,通过fastcgi将动态资源请求转发给php-fpm服务器的9000端口,php-fpm

技术实战:基于 MHA 方式实现 MySQL 的高可用(转)

转自:http://os.51cto.com/art/201307/401702_all.htm MHA故障转移可以很好的帮我们解决从库数据的一致性问题,同时最大化挽回故障发生后的数据.本文分享了基于 MHA 方式实现 Mysql 的高可用的技术实战,希望对您有所帮助. AD:51CTO网+ 首届中国APP创新评选大赛火热招募中…… 数据的重要性对于人们来说重要程度不说自明,在信息时代,数据有着比人们更大的力量,我们也知道最近的斯诺登事件,军事专家对于他掌握的数据给出的评价是,相当于美军十个重装

基于标签方式的工作流启动及任务执行开发说明

基于现在的系统的整合需求,本系统提供基于标签的工作流整合方式,工作流的启动及执行下一步时,均需要通过可以通过标识来处理完成.这使得基于JSP方式的流程整合变得很简单. 自定义工作流启动 系统提供启动参数,只需要提交至/flow/startProcessActivity.do,提交的参数包括以下:(可以参考ProcessRunStart.js的) defId: 必需,流程定义Id,即pro_definition表里的主键 startFlow: 必需,值为true,则表示启动流程   必填 dest

【ALB技术笔记】基于多线程方式的串行通信接口数据接收案例

基于多线程方式的串行通信接口数据接收案例 广东职业技术技术学院  欧浩源 1.案例背景 在本博客的<[CC2530入门教程-06]CC2530的ADC工作原理与应用>中实现了电压数据采集的程序设计,传感器模块以每1秒发送一帧数据的形式通过串口向上位机发送电压数据.其数据帧由4个字节组成:一个帧头和一个帧尾,中间两个字节为电压数据,其格式如下: 帧头(0xAF)    电压数据高8位    电压数据低8位    帧尾(0xFA) 在篇博文中,将讲述如何通过多线程的方式,从串口接收传感器发送过来的

基于http方式搭建YUM源服务器

基于http方式搭建YUM源服务器 (2012-09-21 11:59:14) 转载▼ 标签: yum linux lnmp lamp http 分类: Linux 为了方便公司80多台Linux服务器下载.安装.升级软件包更快速,版本一致性:我们最近在IDC局域网内安装了一台yum源: 此yum源是基于http的,也可以用ftp,这里我们仅仅就http来配置:如下: 建立yum服务器,下载速度快,方便软件安装,下面操作的环境是centos 5.4 i386 32bit,采用http方式安装.