Linux中使用rsync备份数据

0    56    1

👉 本文共约5830个字,系统预计阅读时间或需22分钟。

告别 scp 命令,从我做起!

rsync 命令是一个远程数据同步工具,可通过 LAN/WAN 快速同步多台主机间的文件。rsync 使用 rsync算法 使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。

愉快的使用rsync备份数据

愉快的使用rsync备份数据


1. 使用方式

rsync 的高级应用

编号含义解释参数列表
1本机内同步文件或目录rsync [OPTION] SRC DEST
2将本机同步到远程主机rsync [OPTION] SRC [USER@]host:DEST
3将远程主机同步到本机rsync [OPTION] [USER@]HOST:SRC DEST
4从 rsync 服务器中同步rsync [OPTION] [USER@]HOST::SRC DEST
5往 rsync 服务器中同步rsync [OPTION] SRC [USER@]HOST::DEST
6列出远程机的文件列表rsync [OPTION] rsync://[USER@]HOST[:PORT]/SRC [DEST]

2. 常用参数

rsync 命令的各种参数

  • [1] 文件同步属性参数
编号参数列表含义解释
1-a以递归方式并保持所有文件属性;等于 -rlptgoD
2-r对子目录以递归模式处理
3-l保留软链接
4-L像对待常规文件一样对应软链接文件
5-p保持文件权限
6-t保持文件时间信息
7-g保持文件属组信息
8-o保持文件属主信息
9-D保持设备文件信息
10-u仅仅进行更新操作;不覆盖新的文件;等同于 --update
11-P断点续传并显示备份过程;等同于 --partial --progress
12-b创建备份;存在新文件或者目录会进行重命名;可以使用 --suffix 指定前缀;--backup
  • [2] 同步模式相关参数
编号参数列表含义解释
1-v/--verbose详细模式输出
2-q/--quiet精简输出模式
3-b创建备份,对于目的已经存在有同样的文件名时重命名
4--delete删除那些 DST 中有而 SRC 没有的文件
5--progress显示备份过程
6--dry-run查看并显示哪些文件将被传输
7--backup-dir将备份文件存放在在目录下
8--exclude=PATTERN指定排除不需要传输的文件模式
9--port=PORT指定其他的 rsync 服务端口
10--password-file=FILEFILE 中得到密码,需要注意权限为 600
11-e/--rsh=COMMAND指定使用 rshssh 方式进行数据同步
12--existing仅更新那些已经存在于 DST 的文件,而不备份那些新创建的文件
13--files-from指定需要同步的文件或者目录列表文件集合
14--usermap=STRING将属主为 apache 的文件映射为 nginx 属主
15--groupmap=STRING将属组为 apache 的文件映射为 nginx 属组
16--bwlitmit=(kb/s)限制传输文件的 I/O 带宽
17--config=FILE指定其他的配置文件;默认使用 rsyncd.conf 文件
18--partial断点续传;保留那些因故没有完成传输的文件用于加快随后的传输
  • [3] 实际使用示例和注意事项

  • [4] 并发同步文件或目录(最佳实践)

愉快的使用rsync备份数据

愉快的使用rsync备份数据


3. 注意事项

同步文件时候的坑点

  • [1] 同步方式

在我们日常生活中,同步文件有以下三种模式,分别是:

  • 把源路径下文件,同步到目标路径
    • 目标路径将自动创建多层目录存放 nginx.conf 文件
    • rsync -aR /data/nginx/config/nginx.conf 192.168.1.100:/data
  • 把源站某个目录,同步到目录路径
    • 目标路径将自动创建多层目录存放 config 目录
    • rsync -aR /data/nginx/config/ 192.168.1.100:/data
  • 把源站某个文件,同步到目标文件
    • 不会自动穿件多目录,只是传送 nginx.conf 文件到目标文件
    • rsync -aR /data/nginx/config/nginx.conf 192.168.1.100:/data/backup/nginx/nginx.conf

前两种情况,目标路径最好事前创建好,不存在的话会自动创建的。第三种情况,rsync 只支持创建一层目录,也就是说可以允许 nginx 目录不存在,否则会报错的。而且需要重点注意的是,对应目标路径的 /data 不需事前存在,否则目录文件都无法创建和传送。

  • [2] 使用细节
  1. 要使--delete参数生效,后面源目录(a)必须已/符号结尾,目标目录则无所谓
  2. 参数--exclude可以使用绝对路径,也可以使用相对路径,且使用效果是一样的
  3. 如使用--exclude=data则会排除源目录(a)和目标目录(b)下所有的data目录及其文件
  4. 如使用--exclude=/data则会排除源目录(a)和目标目录(b)下第一层的data目录及其文件


4. 实例说明

还是那句话,光看不练假把式,哈哈哈

  • [1] 备份到中央备份服务器,增量为 7 天

  • [2] 备份到备用磁盘

  • [3] 在家自动备份

本人提供Oracle、MySQL、PG等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
  • [4] 花式备份远程文件列表


5. 常见错误

出错不可怕,害怕的是不知道怎么解决

  • [1] 切换目录报错

  • [2] 需要用户认证

  • [3] 指定模块不存在

  • [4] 密码权限问题

  • [5] 防火墙限制

  • [6] 配置文件有误

  • [7] 同步软连接

  • [8] 服务没有正常启动

  • [9] 文件加锁限制

  • [10] 磁盘空间不足

  • [11] 域名反解析异常

  • [12] 远程地址文件和本地链接文件冲突

参考

https://www.escapelife.site/posts/a207988d.html

标签:

头像

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

1 × 1 =

 

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部
返回顶部