nohup rsync -avz --progress --update --include='*/' --include='.*' --bwlimit=1000 agent/ /test/ > /root/file.log 2>&1 & 这条命令意思是用rsync 来进行同步 --progress 显示详细输出 --update 增量同步 --include='*/' --include='.*' 同步隐藏目录以及隐藏文件 --bwlimit=1000 限速1000KB 从 v3.1.0 版本开始rsync 会自动同步隐藏文件,不需要加参数
rsync 脚本举例:实现实时同步,并删除源目录 #!/bin/bash src='/root/a' dest='/root/b' inotifywait -mrq -e close_write -e moved_to -e create "$src" --format '%w%f' | while read path action file; do rsync -av --remove-source-files "$src/$file" "$dest"; done
rsync -av --ignore-existing --ignore-existing选项会告诉rsync忽略目标目录中已存在的文件
rsync 不使用ssh 进行文件同步使用daemon 模式
1. 在目标机 172.16.0.6 操作
1.1 创建配置文件
cat >/etc/rsyncd.conf <<'EOF' uid = root gid = root use chroot = no max connections = 10 log file = /var/log/rsyncd.log [data1] path = /root/data1 read only = false hosts allow = 172.16.0.14 hosts deny = * EOF
只要把 hosts allow
和 hosts deny
这两行删掉或注释掉,rsyncd 就不再对客户端 IP 做限制,任意主机都能连上来。
1.2 创建接收目录并赋权
mkdir -p /root/data1 chmod 755 /root/data1
1.3 启动 daemon(一次性,或写 systemd)
rsync --daemon rsync --daemon --port=1873
默认监听 873 端口;可以指定其他端口
2. 在源机 172.16.0.14 操作
2.1 直接推送(完全开放,无密码)
rsync -avz --delete /root/data/ 172.16.0.6::data1/