码迷,mamicode.com
首页 > 系统相关 > 详细

Linux远程增量备份-Rsync

时间:2018-02-22 22:04:05      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:eve   说明   提示   als   文件删除   密码文件   reads   byte   org   

Rsync使用的Rsync算法来使本地和远程主机的文件达到同步,这个算法只传送两个文件的不同部分,从而实现增量备份

特点:

能同步整个目录、树和文件系统

有选择性的保持符号链接、硬连接、文件属主、权限、设备以及时间等

能用rsh、ssh或端口作为传输端口,支持匿名同步

 

安装:

yum install -y rsync

 

rsync命令参数:

-v表示verbose详细显示

-z表示压缩

-r表示recursive递归

-t表示保持原文件创建时间

-o表示保持原文件属主

-p表示保持原文件的参数

-g表示保持原文件的所属组

-a存档模式

-P表示代替-partial和-progress两者的选项功能

-e ssh建立起加密的连接。

--progress是指显示出详细的进度情况

--delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致。

 

user123@192.168.9.201::share1  user123是server端指定认证用户,::share1是模块名,也就是在/etc/rsyncd.conf中自定义的名称。

--exclude="*.sh" 不包含某些文件

 

基于SSH的同步源

从远程服务器备份到本机

rsync -avz root@192.168.200.102:/var/www/html/* /backup/ssh/

从本机上传到远程服务器

rsync -avz /backup/ssh/* root@192.168.200.102:/var/www/html/

基于rsync的同步源

vim /etc/rsyncd.conf

address=192.168.200.102        #监听地址

port=873                       #监听端口

use chroot=yes    #是否锁定path目录

uid=nobody

gid=nobody

log file=/var/log/rsyncd.log  #日志位置

hosts allow=192.168.200.0/255.255.255.0

hosts deny=0.0.0.0/0.0.0.0

 

[backup]

comment=backup_server                   #说明

path=/var/www/html            #共享目录

read only=false                 #权限为读写,true为只读

list=false                              #不允许列出文件

dont compress=*.gz *.bz2 *.zip        #传输时那些文件不压缩

auth users=user123            #虚拟用户用户名

secrets file=/etc/rsyncd_users.db     #虚拟用户密码配置文件位置

 

vim /etc/rsyncd_users.db

user123:1234

设置密码文件权限为600(必须,否则提示认证失败)

chmod 600 /etc/rsyncd_users.db

设置目录权限

setfacl -m user:nobody:rwx /var/www/html/

 

启动rsync

rsync --daemon

centos7启动

systemctl start rsyncd

 

客户端测试

从远程服务器备份到本机

rsync -avz user123@192.168.200.102::backup /backup/rsync/

从本机上传到远程服务器

rsync -avz /backup/rsync/* user123@192.168.200.102::backup

rsync -avz /backup/rsync/* rsync://user123@192.168.200.102/backup#与上述命令结果相同

免密码验证

1. 可以通过ssh密钥登陆实现

2.通过变量RSYNC_PASSWORD实现自动登陆

export RSYNC_PASSWORD=1234

3. 用--password-file=/password/path/file指定密码文件(权限要为700)

 

实时同步工具:inotify(需要备份的服务器安装)

https://sourceforge.net/projects/inotify-tools/

tar -xzvf inotify-tools-3.13.tar.gz

cd inotify-tools-3.13/

./configure

make && make install

 

vim rsync.sh

#!/bin/bash

a="/usr/local/bin/inotifywait -mrq -e create /var/www/html/"

b="/usr/bin/rsync -avz /var/www/html/* root@192.168.200.101:/root"

 

$a | while read directory event file

do

$b

done

 

chmod 750 rsync.sh 

./rsync.sh &

export RSYNC_PASSWORD=1234  #实现免密码验证

 

cd /var/www/html/

[root@local2 html]# touch 123

[root@local2 html]# sending incremental file list

123

 

sent 102 bytes  received 31 bytes  266.00 bytes/sec

total size is 0  speedup is 0.00

 

inotify+unsion双向实时同步

环境配置:

两台机器能通过密钥对互相访问

http://liang-yao.cnblogs.com/p/8448224.html 

2. 安装unison的编译工具ocaml

wget https://caml.inria.fr/pub/distrib/ocaml-3.10/ocaml-3.10.1.tar.gz

tar xzvf ocaml-3.10.1.tar.gz

cd ocaml-3.10.1/

./configure

make world opt

make install

 

3. 安装unison

wget http://www.seas.upenn.edu/~bcpierce/unison//download/releases/unison-2.32.52/unison-2.32.52.tar.gz

tar xvf unison-2.32.52.tar.gz

cd unison-2.32.52

make UISTYLE=text THREADS=true STATIC=true

#当前工作模式:文本 多进程工作模式

cp unison /usr/local/bin

 

4. 安装inotify

https://sourceforge.net/projects/inotify-tools/

tar -xzvf inotify-tools-3.13.tar.gz

cd inotify-tools-3.13/

./configure

make && make install

 

server2和server1步骤相同

  

server1创建server1目录

mkdir /server1

server2创建server2目录

mkdir /server2

 

5. 脚本:vim 3.sh

#!/bin/bash

#server1和server2的netip和localfile、netfile不同

netip=192.168.200.101

localfile=/server2

netfile=/server1

a="/usr/local/bin/inotifywait -mrq -e create,delete,modify $localfile"

b="/usr/local/bin/unison -batch $localfile/ ssh://$netip/$netfile"

$a | while read directory event file

do

$b

done

 

chmod +x 3.sh

./3.sh & #把脚本放入后台执行,查看效果

!!!主机名不能相同

Linux远程增量备份-Rsync

标签:eve   说明   提示   als   文件删除   密码文件   reads   byte   org   

原文地址:https://www.cnblogs.com/liang-yao/p/8454896.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!