网站内容定时备份


不消说,网站内容定期备份是很有必要的,以下就讲下上周末我学到的网站内容备份的东西。

首先,考虑到wordpress导出的内容可能缺少网站配置等东西,我选择备份的是数据库中的内容,另一方面是可以通过shell+cron的方式定时备份。
备份的主要原理是通过mysqldump导出数据库内容,做成压缩包。考虑到要定期备份,所以套一个cron,每天执行。最后,考虑一个星期把网站的最新内容scp到家里的机器,每月开始删除上个月的备份。

shell脚本如下:

#!/bin/sh

TODAY=`date +"%Y-%m-%d"`
WORK_DIR=/var/backups/myblog
SQL_FILE_NAME=myblog-$date.sql
PACK_FILE_NAME=$date.tar.gz

USER=myblog_dump
PASS=password

cd $WORK_DIR
mysqldump myblog -u$USER -p$PASS > $SQL_FILE_NAME
tar -zcf $PACK_FILE_NAME $SQL_FILE_NAME
rm $SQL_FILE_NAME

每天执行,其实很简单(注意可能要把sh后缀去掉):

cp backup-myblog.sh /etc/cron.daily/backup-mysql

复制到自己机器上:

scp user@server:/var/backups/myblog/2013-05-07.tar.gz .

删除上个月的备份:

ssh user@server "rm /var/backups/myblog/2013-04-*.tar.gz && exit"

脚本和命令上基本就这些,顺便说下mysqldump需要的权限主要是两个SELECT和LOCK TABLES,建议给备份专门建立一个用户。


One response to “网站内容定时备份”

  1. WordPress备份的话可以用这个插件:BackWPup
    支持同步到Dropbox上,比较简单方便!