第一步:账号建立
在web服务器上建立备份专用账户vicbak,及用户组vicbakgrp,并属于组vicbakgrp。

#创建组
groupadd  bakgrp

===========所有服务部署在web服务器上============

#创建用户并归组
useradd -d  /home/vicbak -m vicbak -g bakgrp


第二步:免密登陆设置


建立通信密钥,可以让服务器备份功能免密码登录到备份服务器vicbak

#生成密钥文件
ssh-keygen -b 1024 -t rsa

#复制公钥到备份目标机器指定目录并改名为authorized_keys,输入密码完成公钥复制

scp -p .ssh/id_rsa.pub vicadmin@10.0.0.4:/home/vicadmin/.ssh/authorized_keys


#测试登陆情况,如直接登陆则表示成功无密码登陆目标机器

ssh vicadmin@10.10.10.4



第三步:建立备份脚本,添加可执行权限,邮件发送备份成功通知,需要提前打包文件夹

#新建备份脚本 ,文件位置:/data/wwwroot/webbak/sql_autobak.sh

vi /data/wwwroot/webbak/sql_autobak.sh

autobak.sh代码:

#!/bin/sh
echo "微客得备份任务开始"

mysqldump -h 10.0.0.5 -u vkd2015 -pvkd2015 vkd2015 >/data/wwwroot/sqlbak/vkd2015_bak.sql
#还原数据库语句,备用测试



#tar -zcvf /data/wwwroot/vicweb_bak_$.tar.gz  /data/wwwroot/default

scp -P 22 /data/wwwroot/webbak/vkd2015_bak.sql vicadmin@10.0.0.4:/home/vicadmin/webbak/sqlbak/

echo "备份脚本执行完毕"

#sh脚本授权,在vicbak账户下授权

chmod +x /data/wwwroot/webbak/sql_autobak.sh


第四步:删除以往备份

自动覆盖,不再单独删除操作

第五步:编写crontab任务,每天2点执行异地备份到备份服务器10.0.0.4

crontab -u vicbak -e  #进入编辑状态
0 2 * * * /data/wwwroot/webbak/autobak.sh

第六步:测试运行