我原本是使用Vastar的第一个脚本方案来自动备份WordPress数据库并邮件发送的,不过后来因为更换服务器,不知道为什么造成了会二次备份并有错误提示。刚好Vastar又给了一个更简洁的方法,于是昨天就替换掉了。
不过Vastar的是同时备份数据库和网站文件的,而我是每天一备份数据库,网站文件是修改后才备份的,所以需要修改一下。虽然可以将网站目录设为空便可不备份网站文件,不过我决定省掉这些步骤。
修改后的代码如下
#!/bin/bash
WP_CONFIG=/your-space-dir/your-site-dir/wp-config.php
## 上面路径是为了获取数据库信息
## 也可以用下面这些直接填写,然后去掉上面那行
# S_DB_USER=db_user
# S_DB_PASSWORD=db_password
# S_DB_NAME=db_name
## 收信箱
TO=xxx@gmail.com
## 获取数据库信息
if [ -f WP_CONFIG ]
then
DB_USER=`grep "DB_USER"WP_CONFIG |awk '{print 2}'|awk -F ')' '{print1}'|sed "s/'//g"`
DB_PASSWORD=`grep "DB_PASSWORD" WP_CONFIG |awk '{print2}'|awk -F ')' '{print 1}'|sed "s/'//g"`
DB_NAME=`grep "DB_NAME"WP_CONFIG |awk '{print 2}'|awk -F ')' '{print1}'|sed "s/'//g"`
else
DB_USER=S_DB_USER
DB_PASSWORD=S_DB_PASSWORD
DB_NAME=S_DB_NAME
fi
# 切换到数据库备份目录
cd /your-space-dir/backup-store-dir
#删除之前在这个文件夹下的备份
if [ -e *.sql.gz ]
then
rm *.sql.gz
fi
## 备份数据库并使用gzip压缩,然后更改权限
## 使用2010-09-10.sql.gz的格式是为了使命名明显,可自定义
STAMP=`date +%Y-%m-%d`
mysqldump --add-drop-table -uDB_USER -pDB_PASSWORDDB_NAME |gzip > STAMP.sql.gz
chmod 600STAMP.sql.gz
## 发送邮件
(echo "Database Backup for my site";uuencode STAMP.sql.gzSTAMP.sql.gz)| mail -s 'Database Backup' $TO
exit
使用方法
很简单,将其扔到空间的某个位置(即代码中的backup-store-dir),权限设为700,然后配置一下定时任务即可。关于定时任务的使用,可以参照Vastar的第一个脚本方案。
一些小提示
- Windows下的不要使用记事本来编辑以上代码,请使用UltraEdit等编辑器。编码使用utf-8,换行格式选择Unix,无BOM签名。
- mail命令的简单介绍可参考linux下的命令行邮件发送-mail命令。
- 关于附件命令uuencode,切记其带两个参数,第二个参数附件标题必不可少,否则附件会为空。
- 关于定时任务的时间,如果需要准确时间备份,请计算上服务器时区。
- 在测试通过后,如果使用gmail,搭配过滤器,自动添加标签、存档,一切即可无声无息地进行。QQ邮箱在这方面好像也有一点长进。
支持一下!就单纯备份数据库和邮件发送而言,这个应该是很简洁的了。
现在真的有些奇奇怪怪的问题,你的站点我不是一次两次打不开了。
我是用tor过来的。
@vastar, ❓ 我可以正常访问哦
@流年, 喔。真是怪事。
现在又好了。
好东西,收藏了 😀
@freemouse, 从Vastar那里拿过来的
😀 我一直用的WP里面的备份插件 每天备份到QQ邮箱 自动进专属文件夹 😆
@mice, 再导入有遇到乱码情况么?我当时用插件乱码…
@vastar, 说实话,还没看过导入如何,不过应该没问题吧,直接调用mysql的命令导出的
代码实现,很厉害!我以前用WP的时候 用的是插件!
@joyla, 因为Linux主机支持定时任务,所以可以如此;windows主机不知道行不行
@流年, 应该可以的,除非你的插件没装好。呵呵!
啊,竟然可以不用插件!
@huangjun, 能少一个插件就少一个啦
现在越来越多的插件非插件化了,支持下!
@人好哇!, 能够直接用系统命令的话当然比PHP的效率高,还减轻了WP的负担
非插件 定时发送?? 支持非插件啊~~
好东西不错 值得推广
@dengmin, 学来的
小居博主,很想知道你这个代码高亮是如何实现的啊?还有上下、左右拉条,看起来很优美
@求索阁, CodeColorer,介绍可看Willin的CodeColorer 語法高亮插件,到官网查看更多的信息