热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

rsync备份大量数据_SnapShot能做增量备份吗

rsync备份大量数据_SnapShot能做增量备份吗文章目录一、rsync简介二、实验过程三、rsync命令四、编译安装包下载一、rsync简介  sync是一个常用的Linux

文章目录

  • 一、rsync 简介
  • 二、实验过程
  • 三、rsync 命令
  • 四、编译安装包下载


一、rsync 简介

  sync 是一个常用的 Linux 应用程序,用于文件同步。它可以在本地计算机与远程计算机之间,或者两个本地目录之间同步文件(但不支持两台远程计算机之间的同步)。它也可以当作文件复制工具,替代 cp 和 mv 命令。
  它名称里面的 r 指的是 remote,rsync 其实就是 “远程同步”(remote sync)的意思。与其他文件传输工具(如 FTP 或 scp)不同,rsync 的最大特点是会检查发送方和接收方已有的文件,仅传输有变动的部分(默认规则是文件大小或修改时间有变动)。

二、实验过程

服务器环境:
mysql 服务器:192.168.10.90
远程服务器:192.168.10.50
目的:将 mysql 服务器产生的数据同步到远程服务器


两台服务器安装 rsync 和 crontabs

yum -y install rsync crontabs

设置免密登录
在远程服务器生成 key 并传送给 mysql 服务器,使得远程服务器能免密登录 mysql 服务器

--- 远程服务器上
#生成密钥,设置都默认
ssh-keygen -t rsa
#远程传送给 mysql 服务器
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.10.90
#验证登录,执行完退回
ssh -p 22 root@192.168.10.90
#执行命令进行文件同步测试
mkdir -p /home/backup/fileUpload
rsync -vzrtopg --progress --delete -e 'ssh -p 22' root@192.168.10.90:/opt /home/backup/fileUpload/
#输出日志
mkdir /home/logs/
touch /home/logs/rsync.log
rsync -vzrtopg --progress --delete -e 'ssh -p 22' root@192.168.10.90:/opt /home/backup/fileUpload/ 1> /home/logs/rsync.log 2>&1

定时同步

--- mysql 服务器上定时备份数据库(每天的凌晨两点)
#crontab -e 编辑
0 2 * * * root /root/backup/script/auto_mysqldump.sh
--- 远程服务器上定时同步(每天的凌晨两点)
0 2 * * * root /home/backup/script/auto_rsync.sh

定时备份脚本(mysql 服务器上)

[root@mysql-01 ~]#vim /root/backup/script/auto_mysqldump.sh
#!/bin/bash
#设置定时任务,每天凌晨2点执行一次
DATE="$(date +%F)"
backup_dir=/root/backup/database
mysqldump -uroot -p123456 --all-databases > ${backup_dir}/alldbs-${DATE}.sql

定时同步脚本(远程服务器上)

vim /home/backup/script/auto_rsync.sh
#!/bin/bash
rsync -vzrtopg --progress --delete -e 'ssh -p 22' root@192.168.10.90:/root/backup/database /home/backup/fileUpload/
rsync -vzrtopg --progress --delete -e 'ssh -p 22' root@192.168.10.90:/root/backup/database /home/backup/fileUpload/ 1> /home/logs/rsync.log 2>&1

三、rsync 命令

-v, --verbose 详细模式输出
-q, --quiet 精简输出模式
-c, --checksum 打开校验开关,强制对文件传输进行校验
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-r, --recursive 对子目录以递归模式处理
-R, --relative 使用相对路径信息
-b, --backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀
--backup-dir 将备份文件(如~filename)存放在在目录下
-suffix=SUFFIX 定义备份文件前缀
-u, --update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件,不覆盖更新的文件
-l, --links 保留软链结
-L, --copy-links 想对待常规文件一样处理软链结
--copy-unsafe-links 仅仅拷贝指向SRC路径目录树以外的链结
--safe-links 忽略指向SRC路径目录树以外的链结
-H, --hard-links 保留硬链结
-p, --perms 保持文件权限
-o, --owner 保持文件属主信息
-g, --group 保持文件属组信息
-D, --devices 保持设备文件信息
-t, --times 保持文件时间信息
-S, --sparse 对稀疏文件进行特殊处理以节省DST的空间
-n, --dry-run现实哪些文件将被传输
-w, --whole-file 拷贝文件,不进行增量检测
-x, --one-file-system 不要跨越文件系统边界
-B, --block-size=SIZE 检验算法使用的块尺寸,默认是700字节
-e, --rsh=command 指定使用rsh、ssh方式进行数据同步
--rsync-path=PATH 指定远程服务器上的rsync命令所在路径信息
-C, --cvs-exclude 使用和CVS一样的方法自动忽略文件,用来排除那些不希望传输的文件
--existing 仅仅更新那些已经存在于DST的文件,而不备份那些新创建的文件
--delete 删除那些DST中SRC没有的文件
--delete-excluded 同样删除接收端那些被该选项指定排除的文件
--delete-after 传输结束以后再删除
--ignore-errors 及时出现IO错误也进行删除
--max-delete=NUM 最多删除NUM个文件
--partial 保留那些因故没有完全传输的文件,以是加快随后的再次传输
--force 强制删除目录,即使不为空
--numeric-ids 不将数字的用户和组id匹配为用户名和组名
--timeout=time ip超时时间,单位为秒
-I, --ignore-times 不跳过那些有同样的时间和长度的文件
--size-only 当决定是否要备份文件时,仅仅察看文件大小而不考虑文件时间
--modify-window=NUM 决定文件是否时间相同时使用的时间戳窗口,默认为0
-T --temp-dir=DIR 在DIR中创建临时文件
--compare-dest=DIR 同样比较DIR中的文件来决定是否需要备份
-P 等同于 --partial
--progress 显示备份过程
-z, --compress 对备份的文件在传输时进行压缩处理
--exclude=PATTERN 指定排除不需要传输的文件模式
--include=PATTERN 指定不排除而需要传输的文件模式
--exclude-from=FILE 排除FILE中指定模式的文件
--include-from=FILE 不排除FILE指定模式匹配的文件
--version 打印版本信息
--address 绑定到特定的地址
--config=FILE 指定其他的配置文件,不使用默认的rsyncd.conf文件
--port=PORT 指定其他的rsync服务端口
--blocking-io 对远程shell使用阻塞IO
-stats 给出某些文件的传输状态
--progress 在传输时现实传输过程
--log-format=formAT 指定日志文件格式
--password-file=FILE 从FILE中得到密码
--bwlimit=KBPS 限制I/O带宽,KBytes per second
-h, --help 显示帮助信息

四、编译安装包下载

wget http://101.34.22.188/rsync/rsync-3.1.2.tar.gz
wget http://101.34.22.188/rsync/inotify-tools-3.14.tar.gz


参考:
rsync实时同步mysql数据库
rsync同步mysql_CentOS之间rsync做文件增量(备份)同步
Rsync+inotify搭建实时同步系统


推荐阅读
  • RancherOS 是由 Rancher Labs 开发的一款专为 Docker 设计的轻量级 Linux 发行版,提供了一个全面的 Docker 运行环境。其引导镜像仅 20MB,非常适合在资源受限的环境中部署。本文将详细介绍如何在 ESXi 虚拟化平台上安装和配置 RancherOS,帮助用户快速搭建高效、稳定的容器化应用环境。 ... [详细]
  • 利用 Python Paramiko 库在远程服务器上高效执行 Shell 脚本的方法与技巧 ... [详细]
  • 在上篇文章的基础上,本文将继续探讨 Linux 设备驱动中的设备模型与 `devicedriverbus` 机制。在将设备注册到总线之前,需要先创建 `device` 对象。可以通过静态定义 `device` 结构体变量,并调用 `device_register` 函数来完成这一过程。此外,文章还将详细解析设备模型的内部工作机制,以及 `devicedriverbus` 机制如何实现设备与驱动的自动匹配和管理。 ... [详细]
  • 在Linux系统中Nginx环境下SSL证书的安装步骤与WordPress CDN的高级配置指南
    在Linux系统中,Nginx环境下安装SSL证书的具体步骤及WordPress CDN的高级配置指南。首先,安装SSL证书需要准备两个关键配置文件,并建议在操作前备份相关服务器配置文件,以确保数据安全。随后,本文将详细介绍如何在Nginx中正确配置SSL证书,以及如何优化WordPress的CDN设置,提升网站性能和安全性。 ... [详细]
  • 软件开发史上最具影响力的十位编程大师(附图解)
    在软件开发领域,有十位编程大师对行业发展产生了深远影响。本文基于国外知名社区的一项评选,通过图文并茂的形式,详细介绍了这十位杰出人物,包括游戏开发先驱John Carmack等,为读者呈现了他们卓越的技术贡献与创新精神。 ... [详细]
  • 在使用 PHP 通过 SSL 安全连接到 MySQLi 数据库服务器时,遇到了一些技术难题。我的环境包括一个 Web 服务器和一个数据库服务器,两者均使用 OpenSSL 生成了证书。尽管证书内容一致,但在尝试从 Web 服务器使用 `mysql` 命令进行连接时,仍然遇到了问题。为了确保连接的安全性和稳定性,需要进一步检查证书配置和 PHP 的 SSL 设置,以排除潜在的配置错误或兼容性问题。 ... [详细]
  • 为了优化直播应用底部聊天框的弹出机制,确保在不同设备上的布局稳定性和兼容性,特别是在配备虚拟按键的设备上,我们对用户交互流程进行了调整。首次打开应用时,需先点击首个输入框以准确获取键盘高度,避免直接点击第二个输入框导致的整体布局挤压问题。此优化通过调整 `activity_main.xml` 布局文件实现,确保了更好的用户体验和界面适配。 ... [详细]
  • 精通jQuery:深入解析事件处理机制与应用技巧
    本文详细探讨了jQuery的事件处理机制及其应用技巧,通过具体的代码示例,逐一解析了每个jQuery代码片段与其对应的HTML结构。文章以标记为基准,CSS作为通用样式,确保每段代码都能独立运行。HTML和CSS代码统一放置在文章末尾,方便读者参考和实践。 ... [详细]
  • 本文详细介绍了 Ansible Ad-Hoc 命令的使用方法,基于官方文档进行了中文翻译。Ad-Hoc 命令允许用户通过 `usr/bin/ansible` 快速执行一次性任务,适用于快速部署、配置管理和故障排查等场景。文中通过多个实例演示了 Ad-Hoc 命令的具体应用,帮助读者更好地理解和掌握这一强大工具。 ... [详细]
  • 在 Red Hat 系统的启动过程中,首先运行的程序是 `/sbin/init`。该程序会读取 `/etc/inittab` 文件,并根据其中的配置进行系统的初始化工作。例如,它会根据设定的运行级别启动相应的服务和进程,确保系统能够顺利进入指定的运行状态。此外,`/sbin/init` 还负责管理系统关机和重启等操作,确保系统的稳定性和安全性。 ... [详细]
  • NanoPi2 使用体验深入解析(续篇)
    随着Raspberry Pi的问世,开源硬件领域迎来了前所未有的发展,激发了全球范围内的创新热潮。在中国,这一趋势同样催生了一系列类似的开发板,例如NanoPi 2。本文作为前篇的延续,将深入探讨NanoPi 2的实际使用体验,从性能、兼容性到应用场景,进行全面分析。 ... [详细]
  • 前言: 网上搭建k8s的文章很多,但很多都无法按其说明在阿里云ecs服务器成功搭建,所以我就花了些时间基于自己成功搭建k8s的步骤写了个操作手册,希望对想搭建k8s环境的盆友有所帮 ... [详细]
  • 想咨询下linux系统还原到时间点怎么弄linux系统还原到时间;系统自带的系统还原:“开始”“程序”“附件”“系统工具”“系统还原”,点选“恢复我的计算机到一个较早的时间”,按下 ... [详细]
  • Java体系化进阶学习图谱:java进阶路线图
    第一篇Linux基础学习篇目录第零章﹑计算机概论关于电脑的硬件组成部分﹐其实你可以观察你的台式机来分析一下﹐依外观来说这家伙主要可分为三部分﹐分别是∶输入单元∶包括键盘﹑鼠标﹑读 ... [详细]
  • ProgressReportNov7-Nov 15 ... [详细]
author-avatar
江西花而美
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有