阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

细述Rsync在Centos上创建异地备份站点

258次阅读
没有评论

共计 4782 个字符,预计需要花费 12 分钟才能阅读完成。

导读 本文提供了一种快速方法来备份典型 Web 托管方案中最常见的内容:网站文件和数据库数据。我们将设置网站文件夹的完整每日备份,并将此数据复制到远程服务器(这也可以用于另一个 VPS)。我们还将设置一个 rsync 示例来复制增量更改。最后,我们将设置 MySQL 数据库的备份。所描述的过程使用几个简单的 Bash 命令,rsync 和 cron 来计划备份。例如数据,我们可以安装 WordPress 按照本教程。

DigitalOcean 提供 快照和备份,来处理备份和快照非常好。还有一些优秀的备份即服务解决方案,能够以最低配置工作。但有时我们想使用另一个备份服务器或者内部服务器,我们想要一个快速的方法将数据从 webhost 回到我们的服务器。在这种情况下,这些提示可以帮助。

有两种方法可以进行备份:增量备份和完全备份。完全备份复制所有数据,而快照仅处理自上次更新以来的更改。

完全备份

完全备份通常执行以下操作:

对文件夹中的所有文件进行归档

将生成的归档复制到远程服务器。

如上所述,我们的数据将驻留在 / var / www / wordpress 目录中。我们将指定一个备份文件夹位置。

mkdir -p /backup/wordpress

上面的命令将创建一个 / backup 目录,和一个 / backup / wordpress 目录,如果它们不存在。要创建我们的数据的完整快照,我们使用称为 tar 的 linux 工具。

tar -czf /backup/wordpress/initial_backup.tar.gz

/var/www/wordpress

tar 将 c 在 A F ILE initial_backup.tar.gz reate AGžIP 存档。我们可以添加一个 v 标志(所以我们得到的 tar-czvf)如果我们想要一个详细输出(文件名列表)。我们将文件命名为 initial_backup.tar.gz,以便我们知道这是一个初始备份,它使用 tar 归档,iz 以 gzip 格式压缩。tar 会使用任何参数,我们提供一个来源,我们的情况下,将备份的 / var / WWW / WordPress 的目录中。我们可以传递两个或多个参数,无论它们是文件还是文件夹:ie。

tar -czf /backup/cms_systems_backup.tar.gz /var/www/wordpress
/var/www/drupal /var/www/joomla

最后一个命令将备份所有已安装的 cms 系统。

现在,对于我们将来的备份,我们可能需要在备份时添加一个日期:

tar -czf /backup/wordpress/wordpress-`date '+%m%d%y'`.tar.gz
/var/www/wordpress

让我们看看我们现在有什么:

[root@Backup ~]# ls -l /backup/wordpress/
total 9760
-rw-r--r-- 1 root root 4995743 Apr 17 12:16 initial_backup.tar.gz
-rw-r--r-- 1 root root 4995743 Apr 17 12:25 wordpress-041713.tar.gz
[root@Backup ~]#
我们有两个文件,一个称为 initial_backup,一个称为 wordpress-041713(2013 年 4 月 17 日,写作时间)。现在,为了每天计划,我们需要创建一个 crontab 条目。Crontab 是一个 linux 任务调度器:我们告诉它什么时候做什么和什么任务实际上做。无论如何,我们打开 crontab 编辑器:EDITOR=nano crontab -e
它将在文本编辑器中打开一个 crontab 文件。默认情况下,DO CentOS 映像包括 vim 作为编辑器,这需要一些设置,所以我们使用了一个更简单的编辑器为此目的,称为 nano 编辑器。我们可以使用默认编辑器:crontab -e
现在我们需要告诉 cron 备份,比方说,每天上午 3:30,当有希望不是很多交通。我们还将通过电子邮件向我们发送任何调查结果。我们把这个内容放到 crontab:MAILTO=email@example.com
30 3 * * * /bin/tar -czf /backup/wordpress/wordpress-`date
+\%m\%d\%y`.tar.gz /var/www/wordpress

我们用 CTRL- X 保存文件,并用 Y 和 Enter 确认。上述命令将告诉 linux 每天在 3:30 重复我们的命令。我们还告诉 cron 向我们发送电子邮件的结果。您将收到消息:/ 斌 /tar:取下成员名称领先 ’/’,作为一个标志,一切都通过。如果出现错误,消息将包含详细信息,所以我们可以解决这个问题。因此,每日备份已准备就绪并可正常工作。

将备份复制到另一个远程服务器

要将备份复制到另一个远程服务器,我们将使用 scp – 安全复制。首先,我们需要生成一个 SSH 密钥:

ssh-keygen

我们可以将密码为空,现在,使用 /root/.ssh/id_rsa_backup 密钥文件(或 /home/username/.ssh/id_rsa_backup 如果我们不以 root 身份运行)。现在我们可以检查公钥部分:

cat .ssh/id_rsa_backup.pub

我们需要将 SSH 密钥的公共部分复制到远程服务器,复制到 authorized_keys 文件。我认为我们已经有了 backup.example.com 称为远程服务器和用户备份。这可能是一个空的新创建的 DigitalOcean VPS(Droplet),但用户必须事先创建。我们只做这一部分一次。

scp .ssh/id_rsa_backup.pub
backup@backup.example.com:/home/backup/backup_key.pub

系统将提示您输入备份用户的密码。我们复制了该文件,现在让我们在 authorized_keys 中将它添加到应该放在哪里。我不能假设这个用户已经有文件和文件夹设置,所以让我们检查一下信息:

ssh backup@backup.example.com "mkdir -p /home/backup/.ssh"
ssh backup@backup.example.com "chmod 700 /home/backup/.ssh"
ssh backup@backup.example.com "touch /home/backup/.ssh/authorized_keys"
ssh backup@backup.example.com "chmod 600 /home/backup/.ssh/authorized_keys"
ssh backup@backup.example.com "mkdir -p /home/backup/backups"

上面的几个命令创建了一个用于 SSH 工作的目录(如果它不存在),以及 authorized_keys 文件,它需要存在备份才能工作。我们还创建了一个备份目录,以我们的文件存储。现在剩下的是将我们的公钥复制到该文件。

ssh backup@backup.example.com "cat /home/backup/backup_key.pub >>
/home/backup/.ssh/authorized_keys"

现在我们可以使用这个键来复制东西。

现在,让我们复制备份文件:

scp -i .ssh/id_rsa_backup
/backup/wordpress/wordpress-041713.tar.gz
backup@backup.example.com:/home/backup/backups

如果我们的密钥设置正确,文件将被复制,我们不会要求输入密码。我们可以检查文件是否真的存在:

ssh backup@backup.example.com "ls -l /home/backup/backups"
好的,我们现在可以把这个动作安排到 crontab 了。再次启动 crontab 编辑器:EDITOR=nano crontab -e
我们现在将改变我们的备份行:我们要添加信息,以便在创建备份存档时复制它。所以,我们添加新的命令,使它看起来像这样:30 3 * * * /bin/tar -czf /backup/wordpress/wordpress-`date
+\%m\%d\%y`.tar.gz /var/www/wordpress;/usr/bin/scp -i
/root/.ssh/id_rsa_backup /backup/wordpress/wordpress-`date
+\%m\%d\%y`.tar.gz
backup@backup.example.com:/home/backup/backups

注意:这不是通常的做法,最好设置一个脚本,它执行所有的任务,然后调度脚本。但为了本文的简洁,我们将使用该表单。

增量备份

但是如果我们在另一个服务器有我们自己的备份软件怎么办?我们只是想同步数据,然后让其他服务器做备份工作。此外,我们要保留文件戳。然后我们使用 rsync。这里的用例是,我们只想逐步高于一切这一次复制在 / var / WWW / WordPress 的到远程服务器,到 / 家庭 / 备份 / 快照 / WordPress 的目录中。这里是一个简单的命令来做所有:

ssh backup@backup.example.com "mkdir -p /home/backup/sync"
rsync -avz --delete -e "ssh -i /root/.ssh/id_rsa_backup"
/var/www/wordpress backup@backup.example.com:/home/backup/sync
第一行创建一个快照目录,第二份修改过的文件了。这意味着被修改,新创建或删除的文件。我们可以在 cron 中安排它:EDITOR=nano crontab -e
crontab 行应该如下所示:30 3 * * * /usr/bin/rsync -avz --delete -e "ssh -i
/root/.ssh/id_rsa_backup" /var/www/wordpress
backup@backup.example.com:/home/backup/sync
现在我们的远程服务器总是有一个新的数据同步副本,我们可以做备份。
备份数据库

我们还可以备份我们的数据库。首先,我们要转储数据。如果我们遵循的 WordPress 的安装指导,我们也有一个数据库,WordPress 的,由用户与 wordpressuser 密码 password 访问。我们可以这样做初始转储:

mkdir /backup/mysql
mysqldump 
/backup/mysql/initial.sql.gz
此命令创建了一个 initial.sql.gz gziped SQL 文件。为了每天这样做,我们可以像 cron 一样在 cron 中调度它。我们生成的 cron 行应该是这样:0 4 * * * /usr/bin/mysqldump  /backup/mysql/mysql--`date +\%m\%d\%y`.sql.gz
现在我们还可以结合它与 scp 或 rsync 远程复制它。0 4 * * * /usr/bin/mysqldump  /backup/mysql/mysql-`date +\%m\%d\%y`.sql.gz;
/usr/bin/scp -i /root/.ssh/id_rsa_backup /backup/mysql/mysql-`date
+\%m\%d\%y`.sql.gz  backup@backup.example.com:/home/backup/
有了这个设置,我们有一个基本的备份我们的数据设置为紧急情况。

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-10-27发表,共计4782字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19348
评论数
4
阅读量
7796738
文章搜索
热门文章
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

  星哥带你玩飞牛 NAS-16:不再错过公众号更新,飞牛 NAS 搭建 RSS 对于经常关注多个微...
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...
手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板 前言 大家好,我是星哥。星哥发现很多新手刚接触服务器时,都会被“选购...
星哥带你玩飞牛NAS-5:飞牛NAS中的Docker功能介绍

星哥带你玩飞牛NAS-5:飞牛NAS中的Docker功能介绍

星哥带你玩飞牛 NAS-5:飞牛 NAS 中的 Docker 功能介绍 大家好,我是星哥,今天给大家带来如何在...
你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你 为什么要用宝塔跑分? 宝塔跑分其实就是对 CPU、内存、磁盘、IO 做...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地 大家好,我是星哥,今天教大家在飞牛 NA...
安装并使用谷歌AI编程工具Antigravity(亲测有效)

安装并使用谷歌AI编程工具Antigravity(亲测有效)

  安装并使用谷歌 AI 编程工具 Antigravity(亲测有效) 引言 Antigravity...
手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板 前言 大家好,我是星哥。星哥发现很多新手刚接触服务器时,都会被“选购...
如何免费使用强大的Nano Banana Pro?附赠邪修的用法

如何免费使用强大的Nano Banana Pro?附赠邪修的用法

如何免费使用强大的 Nano Banana Pro?附赠邪修的用法 前言 大家好,我是星哥,今天来介绍谷歌的 ...
多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞...