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