rsync源服务器:

Rsync是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录数,支持增量备份保持链接和权限,且采用优化的同步算法,传输前执行压缩,非常适用于异地备份镜像服务器等应用.

Rsync(远程同步)工具,以实现快速安全高效的异地备份.

目前最新版3.0.9.wayne  davison进行维护,作为一种常用的文件备份工具, Rsync往往是linux/unix系统默认的基本组件之一.rsync的官方站点http://rsync.samba.org/

远程同步任务中,负责发起rsync同步操作的客户机称为发起端,而负责响应来自客户机的rsync同步操作的服务器称为备份源(同步源).在下行同步(下载),备份源负责提供文档的原始位置,发起端应对该位置具有读取权限;在上行同步(上传),备份源负责提供文档的目标位置,发起端应对该位置具有写入权限.

rsync远程同步基本用法_rsync远程同步基本用法

                                              Rsync下行同步示意图

rsync命令的基本用法:

1)命令格式及常用备份选项

格式:rsync 【选项】 源文件 目标文件

常见的选项:

-a,--archive 归档模式,表示以递归的方式传输文件,并且保持文件属性,等同于-rlptgoD

-r,–recursive 对子目录以递归模式处理

-l,--links 表示拷贝链接文件

-p , --perms 表示保持文件原有权限

-t , --times 表示保持文件原有时间

-g , --group 表示保持文件原有属用户组

-o , --owner 表示保持文件原有属主

-D , --devices 表示块设备文件信息

-z , --compress 表示压缩传输

-H 表示硬连接文件

-A 保留ACL属性信息

-P 显示传输进度

-u, --update 仅仅进行更新,也就是跳过所有已经存在于目标位置,并且文件时间晚于要备份的文件。(不覆盖更新的文件)

--port=PORT 指定其他的rsync服务端口

--delete 删除那些目标位置有而原始位置没有的文件

--password-file=FILE FILE中得到密码
--bwlimit=KBPS
限制I/O带宽,KBytes /second

--filter - 文件名”需要过滤的文件

--exclude= :需要过滤的文件

-v 显示同步过程的详细信息

2)配置源的表示方法

执行远程同步任务时,rsync命令需要指定备份源服务器中的资源位置,对于下行备份操作,备份源对应原始位置”;对于上行备份操作,备份源对应目标位置”.

ØSSH备份源:表示为用户名@主机地址:目录路径的形式,用一个冒号分隔,验证字串与SSH登录类似.

:Rsync -avz  backuper@192.168.4.200:/var/www/html   /opt

ØRsync备份源:表示为用户名@主机地址::共享模块名或者”rsync://用户名@主机地址/共享模块名的形式

:rsync -avz  backuper@192.168.4.200::wwwroot  /root

rsync -avz rsync://backuper@192.168.4.200/wwwroot /root

:使用Ssh备份源:好处能够给予更安全的远程连接,增强备份的保密性.

配置: Ssh备份源只要确认源文件夹位置,并准备一个备份操作用户即可.

Rsync不仅可以用作远程同步发起端(客户端),也可以作为是守护进程运行.

配置:rsync备份源需要建立配置文件rsync.conf 创建备份帐号,然后将rsync程序以”--daemon”选项运行.rsync --daemon启动rsync服务,kill  $(cat /var/run/rsyncd.pid)关闭rsync服务)

备份操作类型

§本地同步

rsync  ...  本地目录1  本地目录2

§rsync+ssh同步

rsync  ... SSH本地目录

rsync  ...  本地目录  SSH

§rsync+rsync同步

rsync  ... rsync本地目录

rsync  ...  本地目录  rsync

rsync+inotify实时同步

linux内核从2.6.13版本开始提供了inotify通知接口,用来监控文件系统的各种变化情况,如文件存取删除移动修改等,利用这一机制.可以非常方便的实现文件异动告警增量备份,并针对目录或文件的变化及时做出反应.

使用rsync工具与inotify机制相结合,可以实现触发式备份(实时同步)----只要原始位置的文档发生变化,则立即启动增量备份操作,否则处于静默等待状态.这样就避免了按固定周期备份时存在的延迟性.

rsync远程同步基本用法_郑彦茹_02

                Inotify+rsync触发式上行同步

Inotify通知机制由linux内核提供,因此主要做本机监控,在触发式备份中应用更适合上行同步.

安装inotify-tools工具

使用inotify机制还需要安装inotify-tools工具,以便使用inotifywait inotifywatch辅助工具程序,用来监控汇总改动情况.目前新版本3.14,可从http://inotify-tools.sourceforge.net/下载.

:Inotifywait:用于持续监控,实时输出

Inotifywatch:用来收集文件系统变动情况,并在运结束后输出汇总的变化情况

Inotifywait命令中的可选参数:

-e:用来指定要监控那些事件

-m:表示持续监控

-r:表示递归整个目录

-q:简化输出信息

Inotifywait可监控 modify(修改)create(创建)move(移动)delete(删除)arrb(属性修改)等事件。

列:inotifywait –mrq  -e modifycreatemovedeletearrb  /var/www/htmlctrl+c终止)

配置触发备份任务时只要用到inotifywait

编写触发式同步脚本

Vim /root/rsync_get_wwwroot.sh

rsync远程同步基本用法_郑彦茹_03

Chmod +x   /root/rsync_get_wwwroot.sh

Crontab -e    //编写任务计划

30  22  * *  *  /root/rsync_get_wwwroot.sh     //每天2230执行脚本

Service crond  start

Chkconfig crond  on

补充:

Linux文件系统的ACL访问控制机制,通过Setfacl命令设置:

-R:表示递归操作

-m:用来指定权限

对设有ACL的目录或文件,执行ls –l命令查看时会出现权限字串末尾多一个符号“+

Getfacl可以查看到详细的ACL属性

列:setfacl –R –m userdaemonrwx /var/www/html

   Getfacl  /var/www/html

希望新建立的文件子目录也具有相同的ACL属性,则应为指定目录设置默认ACL属性----setfacl权限模式中添加“default:”部分

列: setfacl  -m defaultuserdaemonrwx  /var/www/html

    Getfacl/var/www/html  | grep  default