不消说,网站内容定期备份是很有必要的,以下就讲下上周末我学到的网站内容备份的东西。
首先,考虑到wordpress导出的内容可能缺少网站配置等东西,我选择备份的是数据库中的内容,另一方面是可以通过shell+cron的方式定时备份。
备份的主要原理是通过mysqldump导出数据库内容,做成压缩包。考虑到要定期备份,所以套一个cron,每天执行。最后,考虑一个星期把网站的最新内容scp到家里的机器,每月开始删除上个月的备份。
shell脚本如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#!/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后缀去掉):
1 |
cp backup–myblog.sh /etc/cron.daily/backup–mysql |
复制到自己机器上:
1 |
scp user@server:/var/backups/myblog/2013–05–07.tar.gz . |
删除上个月的备份:
1 |
ssh user@server “rm /var/backups/myblog/2013-04-*.tar.gz && exit” |
脚本和命令上基本就这些,顺便说下mysqldump需要的权限主要是两个SELECT和LOCK TABLES,建议给备份专门建立一个用户。
One response to “网站内容定时备份”
WordPress备份的话可以用这个插件:BackWPup
支持同步到Dropbox上,比较简单方便!