如何轻松实现服务器远程备份

如何轻松实现服务器远程备份,第1张

一、部署控制中心

在网管机器B中,下载并运行ATIES安装程序,弹出组件安装对话框(图1),点击“Install Acronis True Image

Management Console”选项,同意用户许可协议后,一路点击“NEXT”按钮,就完成了ATIES控制中心的安装。(图1) 

图1

二、远程部署Agent(代理)

要想进行远程备份操作,必须为服务器A远程安装Agent代理程序。

在网管机器B中,依次点击“开始→程序→Acronis→Acronis true image management

console→Acronis true image management console”项目。在ATIES控制中心窗口中点击“Install

acronis componets to a remote

computer”选项,进入到“远程安装向导”对话框,点击“NEXT”按钮后,选中“Registered

components”单选项,在接下来的“程序选择”对话框中列出两个程序组件:Acronis true image agent和Acronis

true image enterprise server。这里笔者要为服务器A安装代理程序,因此选择“Acronis true image

agent”项目如图2,然后进入到“登录信息”对话框。(图2)

图2

在“Computer”栏中输入服务器A的IP地址(图3),如“192.168.1.12”,也可以点击“Browse”按钮,在计算机浏览框中找到服

务器A,然后在“User name”和“Password”栏中分别输入服务器A的管理员账号名和密码,如“lw”账号。这里笔者建议选中“Allow

to reboot remote computer

automatically”选项,因为代理程序远程安装后,必须重新启动系统才能生效。最后点击“Proceed”按钮,开始为服务器A远程安装代理程

序。安装完成后,服务器A将自动重新启动系统。(图3) 

图3

三、让文件夹共享

这里笔者要在网管机器B中远程备份服务器A的磁盘分区,并将“镜像文件”存储在服务器A的“S_bak”共享文件夹中。这里注意服务器A使用的

是NTFS文件系统,因此共享文件夹的访问权限不但受到“共享权限”限制,还受到NTFS文件系统的访问权限限制。我们首先要在服务器A上对

“S_bak”共享文件夹访问权限进行合理设置。

1.设置共享权限

在服务器A的资源管理器中,右键点击“S_bak”共享文件夹,选择“属性”,切换到“共享”标签页,点击“权限”按钮,弹出“S_bak的权

限”设置对话框,点击“添加”按钮,将“lw”账号添加到“组或用户名称”列表框内,并且还要给该账号赋予“完全控制权限”如图4,最后点击“确定”按

钮,完成共享权限设置。(图4)

图4

2.NTFS访问权限设置

以上设置的只是共享访问权限,毕竟“S_bak”共享文件夹是受“共享访问权限”和“NTFS访问权限”双重制约的。如果NTFS文件系统不允许“lw”账号访问共享,也是不行的。

切换到“安全”标签页后,首先将“lw”账号添加到“组或用户名称”列表框中,接下来还要为该账号设置访问权限。选中“lw”账号后,在“lw的权限”列表框中选中“读取和运行、列出文件夹目录、读取、修改和写入”项目,最后点击“确定”按钮。 (图5)

图5

经过以上操作后,就完成了“S_bak”共享文件夹访问权限的设置。这里要注意以上操作是在服务器A进行的。

四、远程备份从此简单

到此为止,远程备份的准备工作就全部完成了,下面就可以在网管机器B中对服务器A的磁盘分区进行远程备份。

1.连接服务器A

在网管机器B的ATIES控制中心窗口中,点击“Connect to a remote

computer”项目,弹出“远程连接计算机”对话框,在“Computer”栏中输入服务器A的IP地址“192.168.1.12”,点击

“Options”按钮后,在“User

name”和“Password”栏中分别输入服务器A的管理员账号名“lw”和账号密码如图6,点击“OK”按钮后,进入到“Pick a task

for the remote computer”窗口,说明已经成功连接到服务器A如图7。(图6)(图7)

图6

图7

2.第一次完全手工备份

下面就开始实施远程手工备份服务器A磁盘分区。点击“Backup”选项,弹出“创建镜像文件向导”对话框,点击“NEXT”按钮后,在接下来

的对话框中列出服务器A的磁盘分区。这里笔者以“C盘”分区为例,选中“C盘分区”项目,点击“NEXT”按钮后,为镜像文件指定存储位置(图8)。

图8

在“网络计算机”对话框中找到服务器A,弹出登录对话框窗口,输入服务器A的管理员账号后,进入到“S_bak”共享文件夹,接着为镜像文件起个名字,如

“server.tib”。下面选择“镜像模式”,这是笔者第一次为服务器A的C盘分区进行备份,因此要选择完全备份方式,选中“Create the

full backup image

archive”选项,点击“NEXT”按钮后,要为镜像文件设置一个复杂的“保护密码”,防止有人非法窃取。接着还要为镜像文件设置分卷方式、压缩率

等,如果没有特殊要求,使用默认值即可。最后点击“Proceed”按钮,就开始远程备份服务器A的C盘分区。备份成功后,就会在服务器A的

“S_bak”共享文件夹中生成一个名为“rtj.tib”的镜像文件。(图9)

图9

3.计划增量备份

以上完成了第一次手工备份,但以后每次都要手工备份是非常麻烦的,ATIES提供了“计划任务”功能,利用它创建备份任务,可以轻松完成自动备份。

在网管机器B的ATIES控制中心窗口中,点击下方的“Show tasks”选项,弹出“计划任务向导”对话框,计划备份向导的操作过程和手工备份向导基本相似,只是多出“备份时间间隔”参数的设置。(图9)

还是以备份服务器A的C盘分区为例,在“计划任务向导”对话框中选中服务器A的C盘分区,指定好镜像文件的存储位置“S_bak共享文件夹中

rtj.tib”。这里要注意:“镜像模式”要选中“Create differential backup

archive”项目,也就是增量备份。(图10)

图10

接着指定好分卷方式、压缩率等,然后进入到“备份时间间隔”参数设置对话框。这里笔者每天都要对服务器A的C盘分区进行远程增量备份,选中“Daily”

单选项,点击“NEXT”按钮后,在“Start

time”栏中设置每天开始计划备份的时间然后进入到“用户信息”对话框,在这里输入要使用的服务器A的管理员账号密码,最后点击“Finish”按

钮,完成备份任务的创建。这样一来,网管机器B每天都可以自动对服务器A的C盘分区进行远程增量备份,免去了手工备份的麻烦。 (图11)

图11

总结:利用ATIES实现磁盘分区的远程备份的确能方便网管对备份文件的统一管理。在设置过程中一定注意以下两点:一、要正确设置服务器A的网络防火墙和

共享文件夹的访问权限,这样在网络中进行远程备份的人员才能访问服务器A,保证备份文件被正常存储在共享文件夹中;二、远程备份人员要拥有服务器A的管理

员访问权限,否则就无法正常安装代理程序和远程连接服务器A。

一、环境准备

1.gitlab所在的服务器A(centos7,192.168.1.1)

2.备份服务器B(centos7,192.168.1.2)

3.gitlab本地备份目录设置为/var/opt/gitlab/backups/log,本篇也是以此展开

gitlab已经配置了本地备份。如果没有配置,可以参考 http://www.cnblogs.com/straycats/p/7671204.html 。

二、通过密钥配对取消scp传输密码的限制

手动备份数据费时费力。最好的方法就是通过脚本实现远程自动备份。但远程无论是通过SSH登陆,还是通过scp拷贝文件都需要输入密码。

为了克服这个问题,首先需要实现不需要密码的SSH登陆,这样就可以使用 rsync,scp,rexec等命令来做的远程备份了。

2.1 生成密钥对

假设A,B两服务器,现在需要在A机上用root登陆B机,而不需要输入密码。那我们可按照下面的步骤来做:

** 1)在gitlab服务器A上生成rsa证书 **

1、生成的过程中提示输入密钥对保存位置,直接回车,接受默认值就行了。

2、因为之前已经有/root/.ssh/id_rsa 文件存在,因此提示你是否覆盖,输入y表示覆盖

3、接着会提示输入一个密码,直接回车,让它空着。当然,也可以输入一个密码。

4、接着输入确认密码,输入完之后,回车密钥对就生成完了。

这样,在/root/.ssh下生成id_rsa 和 id_rsa.pub 两个文件,其中公共密钥保存在 /root/.ssh/id_rsa.pub,私有密钥保存在/root/.ssh/id_rsa。

** 2)在gitlab服务器A上cp生成rsa公钥证书 **

在/root/.ssh下复制备份一份id_rsa.pub 命名为 id_rsa.pub.A,以便拷贝到远程服务器B。

2.2 生成rsa公钥证书上传到备份服务器B

先在服务器B上创建目录/root/.ssh。

使用scp命令进行远程复制,将服务器A生成的id_rsa.pub.A拷贝到服务器B的/root/.ssh目录下。

此时使用scp命令需要输入密码,当把下面的“2.3 密钥配对”执行后,以后gitlab服务器A使用scp命令复制文件到备份服务器B的话,就不需要输入密码了。

2.3 密钥配对

1)创建authorized_keys文件

在备份服务器B的/root/.ssh下创建authorized_keys文件。

2)将id_rsa.pub.A文件内容追加到authorized_keys 文件中

通过 cat 命令 把id_rsa.pub.A 追写到 authorized_keys 文件中。

3)修改authorized_keys文件的权限

authorized_keys文件的权限很重要,如果设置为777,那么登录的时候,还是需要提供密码的。

4)测试上传文件是否还要输入密码

不放心的话,立刻测试下gitlab服务器A使用scp命令复制文件到备份服务器B是否还要输入密码。

发现在2.3之前,由于没有设置ssh证书授权认证时,上传需要输入密码;2.3操作完后,由于授权认证,已经不需要输入密码了。

三、定时将备份文件传到备份服务器

3.1 创建远程备份脚本

在gitlab服务器A上 ,在/root目录下创建定期备份脚本auto_backup_to_remote.sh。

添加下面的内容,并wq保存。

3.2 修改远程备份脚本auto_backup_to_remote.sh的权限

要能让系统执行 auto_backup_to_remote.sh ,必须修改该脚本的权限。

3.3 创建日志存放目录

3.4 测试远程备份脚本的功能是否可用

现在为了验证脚本是否可以正常运行,我们需要手动执行脚本。

在gitlab服务器A上执行find命令,看是否能够正常查找出我们要scp到远程服务器的Gitlab备份文件。

手动执行脚本auto_backup_to_remote.sh,看是否能够正常上传

等待1-2分钟左右,查看备份服务器B的目录/root/gitlab_backup下是否有服务器A传过来的备份文件。

在备份服务器B上能找到服务器A传过来的备份文件,说明远程备份脚本的功能OK。

如果每次上传都通过人工运行脚本的方式,人工的消耗太大,接着配置定时执行该脚本。

3.5 添加定时计划

定时备份的思路建立在手动的基础上,通过crontab添加定时计划就可以解决这个问题。

一般添加定时计划可以有2种方式:

1.使用命令crontab -e,将定时任务添加后保存。

2.将定时任务添加到/etc/crontab文件中。

我这里采取第一种,使用crontab -e。

结合我之前对公司gitlab本地备份的设计,故设计在备份完10分钟后上传,故分别在每天12:10、19:10进行备份,故添加下面的内容,wq保存。

重启crontab

四、定时删除备份服务器上的备份文件

每个Gitlab备份文件都很大。因此每天备份两次,过不了多久的话,备份服务器B上的磁盘空间可能就会被Gitlab备份文件占用完。

故需要定期清理备份文件,参考备份服务器的空间,暂定保留14天的备份文件。

4.1 创建删除过期备份文件的脚本

设计备份服务器B的/root/gitlab_backup作为接收远程上传备份文件的目录, 故在备份服务器B上 ,先创建该目录。

创建删除过期备份文件的脚本auto_remove_old_backup.sh。

添加下面的内容,并wq保存。

4.2 修改auto_remove_old_backup.sh脚本的权限

4.3 添加定时计划

定时备份的思路建立在手动的基础上,通过crontab添加定时计划就可以解决这个问题。

一般添加定时计划可以有2种方式:

1.使用命令crontab -e,将定时任务添加后保存。

2.将定时任务添加到/etc/crontab文件中。

我这里采取第一种,使用crontab -e。

设计凌晨0点执行删除过期备份文件的脚本,故添加下面的内容,wq保存。

重启crontab


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/607303.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-12
下一篇2023-07-12

发表评论

登录后才能评论

评论列表(0条)

    保存