个人应用场景是重要文件备份shell
端口:873,备份端打开便可vim
下载地址:https://rsync.samba.org/ftp/rsync/src/bash
服务端和客户端要保持版本一致服务器
网盘连接:https://pan.baidu.com/s/1wTsj0cCfXRcREnbzeIviuQssh
一、安装rsync:测试
...网站
二、设置密码文件ui
vim /etc/rsync.pas cjh:123456 #格式 用户名:密码 这里的用户名和密码跟系统没有关系的
配置文件spa
vi /etc/rsyncd.conf #文件不必定有,能够本身建立 # /etc/rsyncd: configuration file for rsync daemon mode # See rsyncd.conf man page for more options. # configuration example: # uid = nobody # gid = nobody # use chroot = yes # max connections = 4 # pid file = /var/run/rsyncd.pid # exclude = lost+found/ # transfer logging = yes # timeout = 900 # ignore nonreadable = yes # dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 # [ftp] # path = /home/ftp # comment = ftp export area
加上个人配置code
uid =root #root是必须的,同步时权限问题 gid =root use chroot = yes max connections = 1 pid file = /var/run/rsyncd.pid lock file = /var/run/rsyncd.lock log file = /var/log/rsyncd.log transfer logging = yes log format = %t %a %m %f %b timeout = 300 [test] read only =no #必须是no path = /root/ #同步目录路径,要注意同步过来的时候模块名会拼接,好比/root/test/ 这里就只须要填/root/ comment = xxx #可选,无太大做用 auth users =cjh #用户名,注意跟系统的用户密码不要紧 secrets file =/etc/rsync.pas #密码文件 hosts allow = ip1,ip2 #源文件端ip
启动
which rsync /xx/rsync #后台启动 /xx/rsync --daemon
ps -ef | grep rsync #看看服务是否正常运行
一、安装启动rsync+inotify
注意密码文件格式跟备份端不同,好比这里直接写123456就能够了,不须要用户名
1、rsync [OPTION]... SRC DEST 2、rsync [OPTION]... SRC [USER@]HOST:DEST 3、rsync [OPTION]... [USER@]HOST:SRC DEST 4、rsync [OPTION]... [USER@]HOST::SRC DEST 5、rsync [OPTION]... SRC [USER@]HOST::DEST 6、rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
1)拷贝本地文件。(没用过,不知道效果怎样)
2)使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。(若是没有作免密登陆,每次都要输密码)
3)使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。(若是没有作免密登陆,每次都要输密码)
4)从远程rsync服务器中拷贝文件到本地机。(按期备份能够用这个)
5)从本地机器拷贝文件到远程rsync服务器中。(实时备份用这个)
6)列远程机的文件列表。(没用过)
二、一次性同步测试
rsync -av /root/test/ cjh@备份端IP::test --password-file=/etc/rsync.pas --bwlimit=100
test是客户端定义的模块,/root/test2 是客户端的目录,密码文件跟服务端不一样的是只须要填密码,--bwlimit是网速的限制,--delete是彻底同步目录文件
安装inotify-tools,下载的网站打不开,我就直接用yum方式安装
yum install -y inotify-tools
实时同步脚本(attrib指文件的属性,好比只读)
#!/bin/bash host1=IP #备份服务器IP src=/root/test/ #同步目录最好保持一致 dst1=test #模块名称 user1=cjh #用户名 /usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e create,modify,attrib $src \ | while read files do rsync -av $src $user1@$host1::$dst1 --password-file=/etc/rsync.pas --bwlimit=100 echo "${files} was rsynced." done
启动脚本
nohup sh run.sh > run.out & 2>&1 &
测试经过
注意点:
一、chmod 600 /etc/rsync.pas,两端都须要作这个操做
二、大文件的同步是很慢的,同步的时候卡住注意是否是文件太大了
三、上线前认真作好测试和普通方式的备份,以及尽可能不要使用--delete,防止数据丢失
四、/etc/rsyncd.conf配置文件中一个注释都不能写,上面只是为了方便表达参数含义!
五、当文件数量超多的时候,同步会有一点延迟,大概是几分钟
转载请注明博客出处:http://www.cnblogs.com/cjh-notes/