Rsync:一个很实用的文件同步命令
rsync是Linux系统下的文件同步和数据传输工具,可用于同步文件、代码发布
1.安装.
yum insatll -y rsync
2.配置
打开rsync功能vim /etc/xinetd.d/rsync
service rsync
{
disable = no #把yes改成no
flags = IPv6
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
编辑主配置文件
vim /etc/rsyncd.conf服务端
uid = nobody #目录或文件的属主属组为nobody,同步的时候报错权限不足检查目录文件的所属用户组
gid = nobody
use chroot = yes
max connections = 30
pid file=/var/run/rsyncd.pid
log file=/var/log/rsyncd.log
list = no
[data] #同步项 模块 【同步项不需要再服务端添加】
path = /usr/local/hero_all_backup/
hosts allow = 192.168.50.146
read only = yes
启动即可。rsync –daemon
3.使用.
rsync -avz aaa.txt 192.168.0.162::data
####
-v, –verbose 详细模式输出
-a, –archive 归档模式,表示以递归方式传输文件,并保持所有文件属性
-z, 对备份的文件在传输时进行压缩处理
–-delete 删除那些DST中SRC没有的文件 #rsync带上delete的参数后,当源目录中的文件删除,同步后目标目录中的文件也会被删除
–-exclude= 指定排除不需要传输的文件模式
例如:
rsync带上delete的参数后,当源目录中的文件删除,同步后目标目录中的文件也会被删除
如果是源目录/opt/* 带*号的话,只会同步过去所有,并不会随源目录删除而删除。
4.其他.
rsync -avz --delete /tmp/2/ /var/spool/clientmqueue/
同步/tmp/2空目录到/var/spool/clientmqueue/ 即删除/var/spool/clientmqueue/目录下的无用文件。
rsync -avz --delete --exclude=".svn" --exclude="*.swp" --exclude=“upload” 可排除文件或目录
同步的时候排除.svn和.swp的隐藏文件