rsync同步文件有三种方法:

1:同一台机器内不同目录间文件同步

  追加复制:rsync -avz sourcefile destfile a:archive rtopglD v:verbose z:compress   覆盖复制:rsync -r --delete sourcefile destfile r:recursive

2:跨机器之间文件同步

利用ssh通道rsync同步,双方机器都能推拉

  push: rsync -avzP -e"ssh -p22" sourecefile user@ip:directory   pull:rsync -avzP -e"ssh -p22" user@ip:directory/file directory

利根据rsync服务端进程来同步文件

  server端配置   装rsync   yum install -y rsync   配置    vim /etc/rsyncd.conf 具体选项可参考man rsyncd.conf

uid = user
gid = user
use chroot = no
max connections = 300
timeout = 300
pid file = /var/run/rsync.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsync.log
[模块]
path = directory
ignore erros
list = false
read only = false
hosts allow = 允许ip
hosts deny = 拒绝ip
auth users = 虚拟用户
secrets file = /etc/虚拟用户密码文件

   根据配置文件建directory 属主数组改为user    useradd -s /sbin/nologin 虚拟用户    建虚拟用户密码文件,格式虚拟用户名:密码 给600权限 安全    起服务    rsync --daemon    查看下进程873端口    ps -ef |grep rsync

   client    建/etc/虚拟用户密码文件 格式:密码 给600权限 安全

   推: rsync -avzP --password-file=/etc/虚拟用户密码文件 sourcefile 虚拟用户@server_ip::模块    rsync -avzP --password-file=/etc/虚拟用户密码文件 sourcefile rsync://虚拟用户@server_ip:端口directory    拉: rsync -avzP --password-file=/etc/虚拟用户密码文件 虚拟用户@server_ip::模块/file local_directory    rsync -avzP --password-file=/etc/虚拟用户密码文件 rsync://虚拟用户@server_ip:端口/directory

在rsync过程中排除文件

1:客户端命令加参数支持{}展开  推:rsync -avzP --password-file=file --exclude=file 本地文件 authusers@ip::模块
 推:rsync -avzP --password-file=file --exclude-from=某个目录下文件 本地文件 authusers@ip::模块 2:服务端配置文件定义  在/etc/rsyncd.conf 加一行 exclude = file directory/file  然后pkill rsync 然后rsync --daemon

此外

  基于ssh的scp sftp   ssh -p端口 user@目标ip 绝对路径的命令   sftp -oport=端口 user@目标ip:/directory-->get 目标机器file 本地登录目录 或put 本地目录文件 目标机器目录 --》exit 退出   推:scp -P端口 本机器文件 user@目标机器:/目录   拉:scp -P端口 远程用户@目标机器:/目录 本地目录   scp两端都可以推拉 要是不用输入密码 用ssh 密钥对登陆

注意防火墙和selinux,看日志排错