不消说,网站内容定期备份是很有必要的,以下就讲下上周末我学到的网站内容备份的东西。
首先,考虑到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 “网站内容定时备份”
WordPress备份的话可以用这个插件:BackWPup
支持同步到Dropbox上,比较简单方便!