1.rsync特性
可以镜像保存整个目录树和文件系统
可以增量同步数据,文件传输效率高,同步时间短
可以保持原有文件的权限、时间等属性
可以通过ssh加密传输
支持匿名传输
2.利用rsync搭建远程备份系统
a:192.168.21.132(rsync服务器)
b:192.168.21.131(客户端)
配置服务端(a机器):
vim /etc/rsyncd.conf
参数意义:
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开机启动
- #!/bin/bash
- # rsyncd Start/Stop the rsyncd daemon.
- # chkconfig: 35 91 62
- # description: rsyncd server
- # processname: rsyncd
- # config: /etc/rsyncd.conf
- # pidfile: /var/run/rsyncd.pid
- # lockfile: /var/run/rsyncd.lock
- # logfile: /var/log/rsyncd.log
- . /etc/init.d/functions
- case "$1" in
- start)
- if [ -e /var/run/rsyncd.pid ];then
- echo "rsyncd is running"
- else
- /usr/bin/rsync --daemon
- if [ $? -eq 0 ]; then
- action "rsyncd start" /bin/true
- else
- action "rsyncd start" /bin/false
- fi
- fi
- ;;
- stop)
- if [ ! -e /var/run/rsyncd.pid ];then
- echo -n "rsyncd is not running. "
- action "rsyncd stop" /bin/false
- else
- killproc rsync
- if [ $? -eq 0 ]; then
- action "rsyncd stop" /bin/true
- else
- action "rsyncd stop" /bin/false
- fi
- fi
- ;;
- restart)
- $0 stop
- $0 start
- ;;
- *)
- echo $"Usage: rsyncd {start|stop|restart}"
- ;;
- esac
添加服务:chkconfig --add rsyncd
3.rsync+inotify
inotify需在rsync客户端安装,监控客户端指定目录的变化,然后推送到远程主机,可以实现远程同步更新。
- #!/bin/bash
- src=/tmp/
- des=test
- inotifywait -mrq -e modify,delete,create,attrib $src | while read files
- do
- rsync -vzrtopg --delete --progress --password-file=/etc/rsync.pwd $src [email protected]::$des >/dev/null 2>&1
- done