0

0

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

DDD

DDD

发布时间:2024-10-28 19:37:25

|

1235人浏览过

|

来源于Linux就该这么学

转载

细述rsync在centos上创建异地备份站点

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:取下成员名称领先'/',作为一个标志,一切都通过。 如果出现错误,消息将包含详细信息,所以我们可以解决这个问题。 因此,每日备份已准备就绪并可正常工作。

OneAI
OneAI

将生成式AI技术打包为API,整合到企业产品和服务中

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

要将备份复制到另一个远程服务器,我们将使用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/
有了这个设置,我们有一个基本的备份我们的数据设置为紧急情况。

相关专题

更多
数据库三范式
数据库三范式

数据库三范式是一种设计规范,用于规范化关系型数据库中的数据结构,它通过消除冗余数据、提高数据库性能和数据一致性,提供了一种有效的数据库设计方法。本专题提供数据库三范式相关的文章、下载和课程。

348

2023.06.29

如何删除数据库
如何删除数据库

删除数据库是指在MySQL中完全移除一个数据库及其所包含的所有数据和结构,作用包括:1、释放存储空间;2、确保数据的安全性;3、提高数据库的整体性能,加速查询和操作的执行速度。尽管删除数据库具有一些好处,但在执行任何删除操作之前,务必谨慎操作,并备份重要的数据。删除数据库将永久性地删除所有相关数据和结构,无法回滚。

2074

2023.08.14

vb怎么连接数据库
vb怎么连接数据库

在VB中,连接数据库通常使用ADO(ActiveX 数据对象)或 DAO(Data Access Objects)这两个技术来实现:1、引入ADO库;2、创建ADO连接对象;3、配置连接字符串;4、打开连接;5、执行SQL语句;6、处理查询结果;7、关闭连接即可。

347

2023.08.31

MySQL恢复数据库
MySQL恢复数据库

MySQL恢复数据库的方法有使用物理备份恢复、使用逻辑备份恢复、使用二进制日志恢复和使用数据库复制进行恢复等。本专题为大家提供MySQL数据库相关的文章、下载、课程内容,供大家免费下载体验。

255

2023.09.05

vb中怎么连接access数据库
vb中怎么连接access数据库

vb中连接access数据库的步骤包括引用必要的命名空间、创建连接字符串、创建连接对象、打开连接、执行SQL语句和关闭连接。本专题为大家提供连接access数据库相关的文章、下载、课程内容,供大家免费下载体验。

323

2023.10.09

数据库对象名无效怎么解决
数据库对象名无效怎么解决

数据库对象名无效解决办法:1、检查使用的对象名是否正确,确保没有拼写错误;2、检查数据库中是否已存在具有相同名称的对象,如果是,请更改对象名为一个不同的名称,然后重新创建;3、确保在连接数据库时使用了正确的用户名、密码和数据库名称;4、尝试重启数据库服务,然后再次尝试创建或使用对象;5、尝试更新驱动程序,然后再次尝试创建或使用对象。

410

2023.10.16

vb连接access数据库的方法
vb连接access数据库的方法

vb连接access数据库方法:1、使用ADO连接,首先导入System.Data.OleDb模块,然后定义一个连接字符串,接着创建一个OleDbConnection对象并使用Open() 方法打开连接;2、使用DAO连接,首先导入 Microsoft.Jet.OLEDB模块,然后定义一个连接字符串,接着创建一个JetConnection对象并使用Open()方法打开连接即可。

398

2023.10.16

vb连接数据库的方法
vb连接数据库的方法

vb连接数据库的方法有使用ADO对象库、使用OLEDB数据提供程序、使用ODBC数据源等。详细介绍:1、使用ADO对象库方法,ADO是一种用于访问数据库的COM组件,可以通过ADO连接数据库并执行SQL语句。可以使用ADODB.Connection对象来建立与数据库的连接,然后使用ADODB.Recordset对象来执行查询和操作数据;2、使用OLEDB数据提供程序方法等等。

219

2023.10.19

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

72

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
jQuery  红蓝两方投票功能实战教程
jQuery 红蓝两方投票功能实战教程

共8课时 | 2.3万人学习

传智播客Swift基础视频教程
传智播客Swift基础视频教程

共40课时 | 7.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号