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,看日志排错