复制本地到文件到远程服务器(脚本)
!/bin/sh
rsync -avzlIW --force /work/www/* 192.168.100.100:/work/www/;

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.100.100:/home/coremail/

3.拷贝远程机器的内容到本地机器
rsync -av 192.168.100.100:/home/coremail/ /home/coremail/

4.拷贝远程rsync服务器(daemon形式运行rsync)的文件到本地机。
rsync -av root@192.168.100.100::www /databack

5.拷贝本地机器文件到远程rsync服务器(daemon形式运行rsync)中。当DST路径信息包含”::”分隔符时启动该模式。
rsync -av /databack root@192.168.100.100::www

6.显示远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。
rsync -v rsync://192.168.100.100/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 //验证密码文件

转自:http://coolnull.com/1899.html