rsync 是一个能够高效远程更新的文件传输程序,使用快速差分算法。
常用的几个参数
实例:
- rsync -av --size-only --update /usr/local/lighthouse/softwares/btpanel/backup/site /usr/local/lighthouse/softwares/btpanel/backup/database /usr/local/lighthouse/softwares/btpanel/backup/path /usr/local/lighthouse/softwares/btpanel/wwwroot/Web-DB/BackUp
- 常用的几个参数为
- rsync -av --size-only --update
- rsync -avc --delete
- 备注:
- 非常重要,默认情况下,rsync 通过比较文件的最后修改时间(mtime)和文件的大小(size)来确认哪些文件需要被同步过去。
- 在实际使用时,他的时间比较是非常精准的 毫米级 着就会导致 同步时源和目标文件的 mtime 是不一样的 从而反复同步已有文件
- 解决办法:
- --modify-window=NUM
- 使用降低的精度比较修改时间
- --size-only
- 跳过匹配大小的文件(就是跳过一样大小的文件)
- -c,--checksum
- 基于校验而不是修改时间和大小来跳转
- (不建议使用,太耗时.常规备份 比较大小最合适.)
- --update
- 不进行同步 只往远端传送
- --delete
- 删除远端多余的文件,( 目标端内没有的文件)
- -z,--compress
- 传输时压缩文件数据。
复制代码
/usr/local/lighthouse/softwares/btpanel/backup/site
/usr/local/lighthouse/softwares/btpanel/backup/database
/usr/local/lighthouse/softwares/btpanel/backup/path
备份到
/usr/local/lighthouse/softwares/btpanel/wwwroot/Web-DB/BackUp
参数 -avc
以下都没用为各种参数手册
____________________________________________________________________________________________________________________________________________
-c,--checksum
基于校验而不是修改时间和大小来跳转
-a,--archive
归档模式,等于 -rlptgoD(不是 -H,-A,-X)
-r,--recursive
递归目录
-d,--dirs
不递归目录。
-u,--update
接收端较新的文件不进行同步
- 用法
- rsync [OPTION]... SRC [SRC]... DEST
- rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST
- rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST
- rsync [OPTION]... SRC [SRC]... rsync://[USER@]HOST[:PORT]/DEST
- rsync [OPTION]... [USER@]HOST:SRC [DEST]
- rsync [OPTION]... [USER@]HOST::SRC [DEST]
- rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
- ':' 用法通过远程 shell 连接,而 '::' 和 'rsync://' 用法连接到 rsync 守护程序,并要求 SRC 或 DEST 以模块名称开头。
- 选项
- -v,--verbose
- 详细模式
- --info=FLAGS
- 细粒度的详细信息
- --debug=FLAGS
- 细粒度的详细调试信息
- --msgs2stderr
- 用于调试的特殊输出处理
- -q,--quiet
- 不显示非报错信息
- -c,--checksum
- 基于校验而不是修改时间和大小来跳转
- -a,--archive
- 归档模式,等于 -rlptgoD(不是 -H,-A,-X)
- --no-OPTION
- 关闭一个已使用的选项(例如 --no-D)
- -r,--recursive
- 递归目录
- -R,--relative
- 使用关联路径名
- --no-implied-dirs
- 不使用 --relative 发送隐含目录
- -b,--backup
- 创建备份(参考 --suffix 和 --backup-dir)
- --backup-dir=DIR
- 创建备份 DIR
- --suffix=SUFFIX
- 设置备份的后缀
- -u,--update
- 接收端较新的文件不进行同步
- --inplace
- rsync 默认创建新副本,并在完成后放到新位置。但这个选项会直接将数据写到新 位置。
- --append
- 使用将数据追加到文件末尾的方式更新文件,这是假设前边的数据都一致。如果 接收端的文件比发送端的大小更大或一样,则跳过这个文件。
- --append-verify
- 和 --append 选项类似,但接收端的现有数据包含在完整文件校验和验证步骤中, 如果最终验证步骤失败,这将导致重新发送文件。
- -d,--dirs
- 不递归目录。
- -l,--links
- 将软链作为软链同步。
- -L,--copy-links
- 同步软链指向的文件或目录,而不是软链本身。
- --copy-unsafe-links
- 只同步“不安全的”软链。
- --safe-links
- 忽略指向资源树以外的软链。
- --munge-links
- munge 软链接使它们更安全(但无法使用)。
- -k,--copy-dirlinks
- 将指向目录的软链接转换为所指目录。
- -K,--keep-dirlinks
- 将接收端的软链目录视为普通目录。
- -H,--hard-links
- 保留硬链接。
- -p,--perms
- 保留权限。
- -E,--executability
- 保留文件的执行能力。
- --chmod=CHMOD
- 影响文件和/或目录的权限。
- -A,--acls
- 保留ACL(隐含 --perms)。
- -X,--xattrs
- 保留扩展参数。
- -o,--owner
- 保留属主(超级用户专享)。
- -g,--group
- 保留属组。
- --devices
- 保留设备文件(超级用户专享)。
- --copy-devices
- 作为标准文件复制设备内容。
- --specials
- 保留特殊文件。
- -D
- 等于 --devices --specials
- -t,--times
- 保留修改时间。
- -O,--omit-dir-times
- 忽略从 --times 得到的目录。
- -J,--omit-link-times
- 忽略从 --times 得到的软链。
- --super
- 接收端尝试以超级用户执行。
- --fake-super
- 保存/恢复在使用 --xattrs 时的权限。
- -S,--sparse
- 有效地处理稀疏文件。
- --preallocate
- 写入目标文件之前预分配。
- -n,--dry-run
- 执行不做更改的试运行。
- -W,--whole-file
- 使用此选项,不使用 rsync 的 delta-transfer 算法,而是按原样发送整个文件。
- -x,--one-file-system
- 在当前文件系统中。
- -B,--block-size=SIZE
- 强制固定的校验和的 block-size。
- -e,--rsh=COMMAND
- 指定要使用的远程的 shell。
- --rsync-path=PROGRAM
- 指定在远程机器上运行的 rsync。
- --existing
- 不在接收端创建新文件。
- --ignore-existing
- 不更新接收端存在的文件。
- --remove-source-files
- 删除发送端的已同步的文件。
- --del
- --delete-during 的别名。
- --delete
- 在接收端删除发送端没有的文件。
- --delete-before
- 接收端在同步前删除。
- --delete-during
- 接收端在同步时删除。
- --delete-delay
- 在传输期间计算接收方的文件删除(如 --delete-during),然后在传输完成后删 除。
- --delete-after
- 接收端在同步之后删除。
- --delete-excluded
- 从接收端删除排除的文件。
- --ignore-missing-args
- 忽略因找不到源参数的报错。
- --delete-missing-args
- 从接收端删除找不到的源参数。
- --ignore-errors
- 即使是I/O报错也删除。
- --force
- 即使是非空目录也强制删除。
- --max-delete=NUM
- 删除最多 NUM 个文件。
- --max-size=SIZE
- 大于 SIZE 的文件不删除。
- --min-size=SIZE
- 小于 SIZE 的文件不删除。
- --partial
- 保留部分(未完成)传输的文件。
- --partial-dir=DIR
- 将部分(未完成)传输的文件放到 DIR 中。
- --delay-updates
- 将所有更新的文件放到传输的最后。
- -m,--prune-empty-dirs
- 从文件列表中去掉空目录。
- --numeric-ids
- 不要按用户/组名映射 uid/gid 值。
- --usermap=STRING
- 设置用户名映射。
- --groupmap=STRING
- 设置组名映射。
- --chown=USER:GROUP
- 单用户名/组名映射。
- --timeout=SECONDS
- 以秒为单位设置I/O超时。
- --contimeout=SECONDS
- 以秒为单位设置守护连接超时。
- -I,--ignore-times
- 不跳过匹配大小和修改时间的文件。
- -M,--remote-option=OPTION
- 只把 OPTION 发给远端。
- --size-only
- 跳过匹配大小的文件。
- --modify-window=NUM
- 使用降低的精度比较修改时间。
- -T,--temp-dir=DIR
- 在 DIR 目录中创建临时文件。
- -y,--fuzzy
- 如果接收端找不到对应文件,找一个相似文件做基准。
- --compare-dest=DIR
- 比较相对于 DIR 的接收端文件。
- --copy-dest=DIR
- 类似 --compare-dest,包括将不变的文件从 DIR 拷贝到接收端目录。
- --link-dest=DIR
- 类似 --copy-dest,包括将不变的文件从 DIR 硬链接到接收端目录。
- -z,--compress
- 传输时压缩文件数据。
- --compress-level=NUM
- 设置压缩等级。
- --skip-compress=LIST
- 以 LIST 作为后缀的文件不压缩。
- -C,--cvs-exclude
- 自动忽略和 CVS 相同算法的文件。
- -f,--filter=RULE
- 设置文件过滤规则。
- -F
- 等于 --filter='dir-merge /.rsync-filter',第二次使用等于 --filter='exclude .rsync-filter'
- --exclude=PATTERN
- 排除匹配 PATTERN 的文件。
- --exclude-from=FILE
- 从 FILE 读取排除规则。
- --include=PATTERN
- 包括匹配 PATTERN 的文件。
- --include-from=FILE
- 从 FILE 读取包括规则。
- --files-from=FILE
- 从 FILE 中读取源文件列表。
- -0,--from0
- 所有 *-from/filter 文件用 0 分隔。
- -s,--protect-args
- 没有空间分割,只有通配符特殊字符。
- --address=ADDRESS
- 将传出套接字的地址绑定到守护进程。
- --port=PORT
- 指定双冒号备用端口号。
- --sockopts=OPTIONS
- 指定设置 TCP 选项。
- --blocking-io
- 使用块 I/O 作为远程 shell。
- --stats
- 设置文件传输 stats。
- -8,--8-bit-output
- 使输出中的高位字符不转义。
- -h,--human-readable
- 可读性好的方式输出数字。
- --progress
- 展示传输进度。
- -P
- 等于 --partial --progress
- -i,--itemize-changes
- 输出一个源端和目的端的文件的区别的一个报告。有区别的文件会展示文件名和 一个11位的字符串(YXcstpoguax)标示出具体区别。
- Y代表更新方式:
- < 发送到远端
- > 从远端发来
- c 改变或创建
- h 硬链接
- . 未更新
- * 列表其余部分包括一个消息
- X代表文件类型:
- f 文件
- d 目录
- L 软链
- D 设备
- S 特殊文件(命名套接字或管道)
- 其他位每位只有两个值,字母或'.':
- c 表示常规文件具有不同的校验和(需要 --checksum)或符号链接、设备或 特殊文件具有更改的值。
- s 表示常规文件的大小不同,将通过文件传输进行更新。
- t 表示修改时间不同,正在更新为发送端的值(需要 --times)。t 的另一个 值意味着修改时间将设置为传输时间,这发生在没有 --times 的情况下更新文 件/符号链接/设备以及更改符号链接并且接收者无法设置其时间时。
- p 表示权限不同,正在更新为发送端的值(需要 --perms)。
- o 表示所有者不同并且正在更新为发送端的值(需要 --owner 和超级用户权 限)。
- g 表示组不同并且正在更新为发送端的值(需要 --group 和设置组的权限)。
- u 暂时用不到。
- a 表示ACL信息发生了变化。
- x 表示扩展参数信息发生了变化。
- --out-format=FORMAT
- 使用格式 FORMAT 输出更新。
- --log-file=FILE
- 输出日志到 FILE。
- --log-file-format=FMT
- 使用格式 FMT 记录更新。
- --password-file=FILE
- 从 FILE 中读取可访问传输守护进程的密码。
- --list-only
- 只列出文件,不复制。
- --bwlimit=RATE
- 限制套接字I/O带宽。
- --outbuf=N|L|B
- 设置输出缓冲区为 None,Line或Block。
- --write-batch=FILE
- 向 FILE 写入批量更新。
- --only-write-batch=FILE
- 类似 --write-batch,但排除在创建批量任务时接收端没有更新的情况。
- --read-batch=FILE
- 从 FILE 读取批量更新。
- --protocol=NUM
- 强制使用较老的协议版本。
- --iconv=CONVERT_SPEC
- 请求文件名的字符集转化。
- --checksum-seed=NUM
- 设置块/文件校验和种子(高级)。
- -4,--ipv4
- 优先使用ipv4。
- -6,--ipv6
- 优先使用ipv6。
- --version
- 打印版本号。
- --help
- 展示帮助文档。
复制代码
https://blog.csdn.net/yspg_217/article/details/122326503
------------
man rsyncd.conf
服务端配置主配置文件 /etc/rsyncd.conf
- # RSYNC Config
- # 指定传输文件使用的用户
- uid = rsync
- # 指定传输文件使用的用户组
- gid = rsync
- # 安全设置,切换到安全目录
- use chroot = no
- # 最大连接数
- max connections = 10
- # 客户端超时时间,单位秒,设置为 0 不超时
- timeout = 900
- # PID 文件
- pid file = /var/run/rsyncd.pid
- # 锁文件
- lock file = /var/run/rsync.lock
- # 日志文件
- log file = /var/log/rsyncd.log
- # 日志记录方式
- transfer logging = yes
- # 忽略文件
- exclude = lost+found/
- # 忽略不可读文件
- ignore nonreadable = yes
- # 传输时不压缩的文件
- dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
- # 现在的版本需要添加,保留文件的完整属性
- fake super = yes
- # 模块
- [data]
- # 对应的目录
- path = /data
- # 传输的删除时忽略 I/O 错误,报错会跳过--delete
- ignore errors
- # 允许写入
- read only = false
- # 不允许列出
- list = false
- # 允许的网段,多个使用空格隔开
- hosts allow = 192.168.200.0/24
- # 拒绝的网段,拒绝所有
- hosts deny = 0.0.0.0/32
- # 连接的虚拟用户,非系统用户
- auth users = rsync_user
- # 虚拟用户的账号密码文件
- secrets file = /etc/rsync-data.password
- # 注释说明
- comment = Test file share
复制代码
https://blog.csdn.net/jiaofan_yun/article/details/122379546
|