rsync 备份文件

1.rsync特性

可以镜像保存整个目录树和文件系统

可以增量同步数据,文件传输效率高,同步时间短

可以保持原有文件的权限、时间等属性

可以通过ssh加密传输

支持匿名传输

2.利用rsync搭建远程备份系统

a:192.168.21.132(rsync服务器)

b:192.168.21.131(客户端)

配置服务端(a机器):

vim /etc/rsyncd.conf

 

uid=nobody
gid=nobody
use chroot=no
strict modes=yes
max connections=200
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock 
log file=/var/log/rsyncd.log
[test]
path=/tmp
hosts allow=192.168.21.0/24
hosts deny=*
ignore errors
list=false
auth users=backup
secrets file=/etc/rsync.pwd

 

参数意义:

uid:传输文件时守护进程应该具有的UID,默认是nobody,表示任意用户。

gid:传输文件时守护进程应该具有的UID,默认是nobody,表示任意用户组。

use chroot:此选项不可以备份目录内的指向目录外的链接文件,默认为yes。

strict modes:指定是否检查密码文件的权限。

max connections:指定rsync服务端模块的最大并发连接数。

pid file:rsync守护进程的pid文件路径。

lock file:知道支持max connections的锁文件。

log file:指定rsync日志的输出路径。

[test]:模块的名称。

path:指定需要被封的文件或目录。

igores error:忽略一些无关的IO错误。

hosts allow:设置可以连接rsync服务器的主机。

hosts deny:设置禁止连接rsync服务器的主机。

list:设置客户端请求可以使用的模块列表时,模块是否被列出。

auth users:定义客户端连接模块的用户名,与系统用户无关。

secerts file:指定auth users的密码文件路径,格式为:用户名:密码,权限为600.

cat /etc/rsync.pwd

backup:test

启动rsync:rsync --daemon

关闭rsync:pkill rsync

配置客户端(b机器):

只需创建一个secrets file,内容为服务端指定的密码,不必写用户名。

cat /etc/rsync.pwd

test

同步目录:

rsync -avzP [email protected]::test --delete /tmp --password-file=/etc/rsync.pwd 

设置rsync开机启动

 

 

  
  
  
  
  1. #!/bin/bash 
  2. # rsyncd      Start/Stop the rsyncd daemon. 
  3. # chkconfig: 35 91 62 
  4. # description: rsyncd server 
  5. # processname: rsyncd 
  6. # config: /etc/rsyncd.conf 
  7. # pidfile: /var/run/rsyncd.pid 
  8. # lockfile: /var/run/rsyncd.lock 
  9. # logfile: /var/log/rsyncd.log 
  10. . /etc/init.d/functions 
  11. case "$1" in 
  12.   start) 
  13.         if [ -e /var/run/rsyncd.pid ];then 
  14.                 echo "rsyncd is running" 
  15.         else 
  16.                 /usr/bin/rsync --daemon 
  17.                 if  [ $? -eq 0 ]; then 
  18.                         action "rsyncd start" /bin/true 
  19.                 else 
  20.                         action "rsyncd start" /bin/false 
  21.                 fi 
  22.         fi 
  23.         ;; 
  24.   stop) 
  25.         if [ ! -e /var/run/rsyncd.pid ];then 
  26.                 echo -n  "rsyncd is not running. " 
  27.                 action "rsyncd stop" /bin/false 
  28.         else  
  29.                  killproc  rsync 
  30.                 if [ $? -eq 0 ]; then 
  31.                         action "rsyncd stop" /bin/true 
  32.  
  33.                 else 
  34.                         action "rsyncd stop" /bin/false 
  35.                 fi 
  36.         fi 
  37.         ;; 
  38.   restart) 
  39.         $0 stop 
  40.         $0 start 
  41.         ;; 
  42.   *) 
  43.         echo $"Usage: rsyncd {start|stop|restart}" 
  44.         ;; 
  45. esac  

 

添加服务:chkconfig --add rsyncd

3.rsync+inotify

inotify需在rsync客户端安装,监控客户端指定目录的变化,然后推送到远程主机,可以实现远程同步更新。

  
  
  
  
  1. #!/bin/bash 
  2. src=/tmp/ 
  3. des=test 
  4. inotifywait -mrq  -e modify,delete,create,attrib $src | while read files 
  5. do 
  6. rsync -vzrtopg --delete --progress --password-file=/etc/rsync.pwd $src [email protected]::$des >/dev/null 2>&1 
  7. done 

 

你可能感兴趣的:(备份,rsync)