There are questions remain, We'll search for the answers together. But one thing we known for sure,the future is not set!

【原创文章】WDCP管理系统中实现远程服务器自动备份

系统防护 百蔬君 3370℃ 已收录 0评论

有两个重要的网站,担心出现物理故障,所以需要双机备份,以免数据丢失,把过程记录一下。

linux双机备份最简单的方案当然是使用scp或者rsync命令结合SSH来进行。SCP命令是完全的拷贝整个目录结构和数据,而rsync命令只是备份两个服务器之间有差异的目录结构和数据。由于网站相当的大,差不多有200多G数据,所以这里选择rsync命令。

比如A机为本地服务器,ip为172.25.217.1,B机为远程服务器,ip为172.25.217.2。现在的目的是把B机的特定目录内容备份到A机,这里假定两台服务器需要同步的内容都是/www/web/baishujun/public_html/,SSH端口为31。

那么SCP执行备份的命令为

scp -p31 -r root@172.25.217.2:/www/web/baishujun/public_html/*  /www/web/baishujun/public_html

rsync命令为

rsync  -vzrtopg --progress -e 'ssh -p 31' --delete root@172.25.217.2:/www/web/baishujun/public_html/* /www/web/baishujun/public_html

这个命令需要手动输入密码,显然对于自动执行备份来说,这不合适。我们采用证书登陆ssh的方法来避免输入密码。

在A机,执行命令cd /root/.ssh/,进入ssh目录,在这里我们需要生成ssh证书,通过 ssh-keygen -d命令来生成,之后一直回车就好了。

[root@baishujun]# cd /root/.ssh/
[root@baishujun .ssh]# ssh-keygen -d
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa):
Enter passphrase (empty for no passphrase): 
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.

这样就在 /root/.ssh/目录获得了两个文件id_dsa和id_dsa.pub两个文件,id_dsa.pub是公钥,id_dsa是密钥。

为了免密码登陆ssh,我们需要把id_dsa.pub放到B机的ssh目录中去。

这个通过ssh命令很简单

scp -P31  id_dsa.pub root@172.25.217.2:/root/.ssh/authorized_keys2

这里有一个要注意,scp命令的P参数一定要大写,ssh命令的p参数一定要小写!

并且这里公钥在B机一定要改名为authorized_keys2,不然无法自动登陆ssh。

做好了这个准备之后,我们可以把rsync 这个命令放到sh脚本里面。

执行命令vi backup2.sh,输入命令

#!/bin/bash
rsync  -vzrtopg  -e 'ssh -p 31' --delete root@172.25.217.2:/www/web/baishujun/public_html/* /www/web/baishujun/public_html

wq命令保存就好了。wdcp管理系统中有一个计划任务,相当好用,把这个脚本加入“任务计划”中,需要绝对路径,或者把这个脚本cp到wdcp的shell目录/www/wdlinux/wdcp/shell/,这样输入文件名就可以了。

如果没有使用wdcp系统,那么自己安装个crond来周期性执行脚本就好了。

转载请注明:百蔬君 » 【原创文章】WDCP管理系统中实现远程服务器自动备份

喜欢 (2)or分享 (0)
发表我的评论
取消评论

请证明您不是机器人(^v^):

表情