说明:
Rsync是linux/Unix文件同步和传送工具。用于替代rcp的一个工具,rsync可以通过rsh或ssh使用,也能以daemon模式去运行,在以daemon方式运行时rsync server会开一个873端口,等待客户端去连接。连接时,rsync server会检查口令是否相符,若通过口令查核,则可以通过进行文件传输,第一次连通完成时,会把整份文件传输一次,以后则就只需进行增量备份.
安装:
#wget http://rsync.samba.org/ftp/rsync/src/rsync-3.0.9.tar.gz #tar xf rsync-3.0.9.tar.gz # cd rsync-3.0.9 # ./configure && make && make install
参数:
-v,--verbose 详细模式输出; -a,--archive 归档模式,表示以递归的方式传输文件,并保持所有文件属性不变,相当于使用了组合参数-rlptgoD; -r, --recursive 对子目录以递归模式处理; -l, --links 保留软链结; -p, --perms 保持文件权限; -t, --times 保持文件时间信息; -g, --group 保持文件属组信息; -o, --owner 保持文件属主信息; -D, --devices 保持设备文件信息; -H, --hard-links 保留硬链结; -S, --sparse 对稀疏文件进行特殊处理以节省DST的 空间; --delete 删除那些DST中SRC没有的文件; -z, --compress 对备份的文件在传输时进行压缩处理;
rsync六种不同的工作模式:
1.拷贝本地文件,将/home/coremail目录下的文件拷贝到/cmbak目录下
# rsync -avSH /home/coremail/ /cmbak/
2.拷贝本地机器的内容到远程机器
# rsync -av /home/coremail/ 192.168.11.12:/home/coremail/
3.拷贝远程机器的内容到本地机器
# rsync -av 192.168.11.11:/home/coremail/ /home/coremail/
4.拷贝远程rsync服务器(daemon形式运行rsync)的文件到本地机。
# rsync -av root@172.16.78.192::www /databack
5.拷贝本地机器文件到远程rsync服务器(daemon形式运行rsync)中。当DST路径信息包含”::”分隔符时启动该模式。
# rsync -av /databack root@172.16.78.192::www
6.显示远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。
# rsync -v rsync://192.168.11.11/data
rsync配置文件说明:
# cat/etc/rsyncd.conf //内容如下 port = 873 //端口号 uid = nobody //指定当模块传输文件的守护进程UID gid = nobody //指定当模块传输文件的守护进程GID use chroot = no //使用chroot到文件系统中的目录中 max connections = 10 //最大并发连接数 strict modes = yes //指定是否检查口令文件的权限 pid file = /usr/local/rsyncd/rsyncd.pid //指定PID文件 lock file = /usr/local/rsyncd/rsyncd.lock //指定支持max connection的锁文件,默认为/var/run/rsyncd.lock motd file = /usr/local/rsyncd/rsyncd.motd //定义服务器信息的,自己写 rsyncd.motd 文件内容 log file = /usr/local/rsyncd/rsync.log //rsync 服务器的日志 log format = %t %a %m %f %b syslog facility = local3 timeout = 300 [conf] //自定义模块 path = /usr/local/nginx/conf //用来指定要备份的目录 comment = Nginx conf ignore errors //可以忽略一些IO错误 read only = no //设置no,客户端可以上传文件,yes是只读 write only = no //no为客户端可以下载,yes 不能下载 hosts allow = 192.168.2.0/24 //可以连接的IP hosts deny = * //禁止连接的IP list = false //客户请求时,使用模块列表 uid = root gid = root auth users = backup //连接用户名,和linux系统用户名无关系 secrets file = /etc/rsyncd.pass //验证密码文件