需求

鉴于国内网络环境的恶劣,本人的blog的托管在国外的vps,为了防范数据丢失,需要及时备份下网站的数据和代码,这样等哪天数据丢失即可及时恢复,数据最重要

解决方法

自己就通过查找资料,简单地写了shell脚本

  • 首先打包wordpress代码,使用mysqldump导出mysql数据
  • 其次使用mail命令发送数据到指定邮箱
  • 最后crontab定时执行

即可搞定

另外在使用mail命令行工具时遇到了一个问题,stackoverflow帮我解决了,具体在这里

实现脚本

#!/bin/bash
# author: yaronli (jidalyg_8711@163.com)
# powered by yaronspace.cn
set -x 

backup() {

cd /var/www/
#打包代码
tar -czf /tmp/${1}_$(date +%F).tar.gz ${1}
#导出数据
mysqldump -u${2} -p${3} ${1} > /tmp/${1}_$(date +%F).sql
#以附件形式发送邮件
(uuencode /tmp/${1}_$(date +%F).tar.gz ${1}_$(date +%F).tar.gz; uuencode /tmp/${1}_$(date +%F).sql ${1}_$(date +%F).sql)\
	| mail -s ${1}_$(date +%F) yangguangli19871124@gmail.com

}
#param1: 站点目录 param2: 数据库用户  param3: 密码
backup yaronspace ****   ****
backup xiaofangdeng **** ****