rsync 网站自动化备份利器

rsync是类unix系统下的数据镜像备份工具——remote sync。一款快速增量备份工具 Remote Sync,远程同步支持本地复制,或者与其他SSH、rsync主机同步。与传统的cp、scp、tar备份方式相比,rsync具有安全性高、备份迅速、支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如定期的备份文件服务器数据到远端服务器,对本地磁盘定期做数据镜像等。
   
环境
CentOS 5.8(64)  192.168.23.130 (service)
centos 5.8(64)  192.168.23.131 (client)
软件
rsync-3.1.1.tar.gz()
安装步骤
1.前期的准备条件
    a.关闭selinux、防火墙(个人习惯不管什么情况下,自己玩都是必须关闭)
    b.yum install -y make gcc
2.安装rsync(service、client)
    a.tar -zxf rsync-3.1.1.tar.gz
    b.cd rsync-3.1.1
    c. ./configure --prefix=/usr/local/rsync
    d.make
    e.make install
3.配置rsync
    a.vim /etc/rsyncd.conf(service)
        uid = root                       
        gid = root
        use chroot = no
        [apps]
        auth users = root
        secrets file = /etc/rsyncd.passwd
        munge symlinks = no
        read only = no
        path=/data/test
    b.vim /etc/rsyncd.passwd(service)
        root:111111
    c.vim /etc/rsync.passwd(client)
        111111
4.启动rsync(service)
    /usr/local/rsync/bin/rsync --daemon --config=/etc/rsyncd.conf
5.同步文件(client)
    /usr/local/rsync/bin/rsync -vzrtopg --progress --delete rsync://root@192.168.23.131/apps /tmp/tmp/ --password-file=/etc/rsync.pas (service->client)
    /usr/local/rsync/bin/rsync -vzrtopg --progress --delete /tmp/tmp/ rsync://root@192.168.23.131/apps --password-file=/etc/rsync.pas (client->service)
6.验证
    到相应的目录查看是否存在同步的文件
以后是手动运行的,对于比较懒的人肯定不适合,下边就介绍Inotify-tools工具,可以实现实时自动同步。Inotify 是一个 Linux特性,它监控文件系统操作,比如读取、写入和创建。Inotify 反应灵敏,用法非常简单,并且比 cron 任务的繁忙轮询高效得多。学习如何将 inotify 集成到您的应用程序中,并发现一组可用来进一步自动化系统治理的命令行工具。
7.安装Inotify-tools
    a.wget
    b.tar -zxf inotify-tools-3.14.tar.gz
    c.cd inotify-tools-3.14
    d. ./configure --prefix=/usr/local/inotify
    e.make
    f.make install
8.编写shell脚本(rsync.sh)

#!/bin/sh

#local dir
    dstdir="/tmp/tmp/"

#sync user
    rsyncuser="root"

#sync password
    rsyncpassword="/etc/rsync.pas"

#remote ip
    remoteip="192.168.23.131"

#remote module
    module="apps"

#sync remote server  module to local dir
    for ip in $remoteip
    do
        /usr/local/rsync/bin/rsync -vzrtopg --progress  --delete  $rsyncuser@$ip::$module  $dstdir  --password-file=$rsyncpassword
    done


    #monitor local dir, then rsync remote server module
    /usr/local/inotify/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e close_write,modify,delete,create,attrib,move $dstdir |  while read file
    do
        for ip in $remoteip
            do
                /usr/local/rsync/bin/rsync -vzrtopg --progress  --delete $dstdir  $rsyncuser@$ip::$module  --password-file=$rsyncpassword
                echo "  ${file} was rsynced" >> /tmp/rsync.log 2>&1
            done
    done

9.chmod 755 rsync.sh

10.运行shell脚本,并到相应的目录操作看是否操作成功

11.设置开机自启动

echo "sh /usr/local/inotify/rsync.sh &" >> /etc/rc.d/rc.local

Rsync+inotify实现Git数据实时同步备份

Rsync实现文件备份同步详解

Rsync同步两台服务器

CentOS 6.5下Rsync远程同步

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/e383bb772d6d17c6768b33422fcc7338.html