mysql自动备份发邮箱,定时任务自动备份数据库并邮件发送

我原本是使用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签名。

关于附件命令uuencode,切记其带两个参数,第二个参数附件标题必不可少,否则附件会为空。

关于定时任务的时间,如果需要准确时间备份,请计算上服务器时区。

在测试通过后,如果使用gmail,搭配过滤器,自动添加标签、存档,一切即可无声无息地进行。QQ邮箱在这方面好像也有一点长进。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值