VPS自动定时备份数据教程

一个网站最重要的东西就是数据,可想而知,一个你辛辛苦苦建立的网站因为数据丢失而得重新来过的心情.如果你不想体会这个心情,定时备份网站的数据就是最好的办法.

但人也有很忙的时候,有疏忽的时候,你总是有可能不能定时的备份数据.如果在你刚刚忘记备份的时候发生了丢失数据,那也是个大大杯具.

为了不让这种杯具发生.我们可以充分利用计算机的任务计划来帮我完成这个定时备份的任务.

在linux系统下,使用

crontab -e

命令就能调出系统任务计划

其使用方法和VI命令一样,按i开始输入命令,其格式为

* * * * * 要定时运行的命令或脚本

前面的五个星号依次代表 分钟 小时 日期 月份 星期 ,全部用阿拉伯数字表示.*号是通配符.这样说你可能不是很明白.举个例子,如果你前面填的是五个*号,那么就代表你这个任务计划是1分钟执行一次.第一个*号用1代替,就代表在每个小时的第一分钟执行一次(一小时执行一次),第二个*号填的是24的话,代表在24时执行任务计划(一天一次),依次类推,你可以很详细的定义任务计划执行的时候,次数,频率!

说明了发布任务计划的格式,让我们再回到正题,怎么让计算机自动备份我们的网站数据?

要备份数据,我们首先要建立一个存放备份文件的文件夹.这里以/hoem/backup为例.

另外,因为很多VPS系统精简,是没有自带FTP的,我们需要先安装FTP支持

yum -y insall lftp

一般网站数据是分为两部份的,一是数据库,一是网站源码.我们先建立一个能让任务计划自动运行的自动备份数据库脚本文件 backupdb.sh 建立如下

#!/bin/bash
/wp-content/local/mysql/bin/mysqldump -u你的数据库用户名 -p你的数据库密码 --databases数据库名称 > /home/backup/dbbackup_$(date+%Y%m%d).sql
tar zcPf /home/backup/databackup_$(date +%Y%m%d).sql.tar.gz /home/backup
/wp-content/bin/lftp -u FTP用户名,FTP密码 FTP服务器地址/backup -e "put /home/backup/dbbackup_$(date+%Y%m%d).sql.tar.gz;exit"
rm -rf /home/backup/*

以上第二段代码是把数据库导出为一个文件名为 dbbackup_日期时间.sql 的文件放到 /home/backup文件夹中.请用你的数据库信息替换掉代码中的说明.
如要备份多个数据库,可以另起一行,再按如上格式填写(导出的数据库文件文件名必须不一样).
第三段代码是把导出的数据库文件(放在在/home/backup文件夹下的)压缩成一个压缩档文件.
第四段代码是把这个压缩档文件发送到远程FTP服务器上.请用你的FTP帐号信息替换掉代码中的说明
第五段代码是删除生成的备份文件(可以不删除,去掉这段代码即可)

再创建网站源码备份脚本 backup.sh如下

#!/bin/bash
tar zcf /home/backup/backup_$(date +%Y%m%d).tar.gz /home/wwwroot
/wp-content/bin/lftp -u ftp用户名,ftp密码 ftp服务器IP/backup -e "put /home/backup/blogbackup_$(date +%Y%m%d).tar.gz;exit"
rm -fr /home/backup/*

相较数据库备份脚本,大家应该很容易看出来.这段代码少了一个导出数据库的过程,直接把网站文件(我的位于/home/wwwroot)打包成一个文件再发送到FTP服务器.大家只需要用你的信息相应地替换代码中的说明即可.

脚本文件创建完了,接着把这两个文件上传到服务器.假定上传在 /backup 文件夹中.

执行如下命令

cd /backup
sh backup.sh
sh backupdb.sh

看看执行是否成功.

成功执行后接着执行如下命令

chmod +x /backup/*

赋予/backup下的所有文件可执行属性.

创建每天00:30自动备份数据库,每周日00:35自动备份网站源码的任务计划

crontab -e

输入如下

30 0 * * * /backup/backupdb.sh
30 0 * * 0 /backup/backup.sh

完成后存盘退出.

至此,你的网站自动备份计划算是完成了.

存放备份的FTP空间推荐使用GODADDY购买域名附送的免费空间,速度快,也稳定.狗大爹还是比较相得过的.

以上教程同样适用于独立服务器,支持crontab的网站空间(如CPANEL).
我在具体操作中发现一个可能导致错误的地方,给出了修正办法.详情请见备份VPS数据自动备份可能导致出错的地方,给出修补办法

以上教程参考自VPS折腾笔记之VPS备份 | 老耿的博客,经过我自已实践修改,使之更易理解一点.

VPS自动定时备份数据教程》有2个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注