rsync命令详解

说明:
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  //验证密码文件

发表评论

邮箱地址不会被公开。 必填项已用*标注