mysql自动备份发邮箱,定时任务自动备份数据库并邮件发送
我原本是使用Vastar的第一個(gè)腳本方案來自動(dòng)備份WordPress數(shù)據(jù)庫并郵件發(fā)送的,不過后來因?yàn)楦鼡Q服務(wù)器,不知道為什么造成了會(huì)二次備份并有錯(cuò)誤提示。剛好Vastar又給了一個(gè)更簡(jiǎn)潔的方法,于是昨天就替換掉了。
不過Vastar的是同時(shí)備份數(shù)據(jù)庫和網(wǎng)站文件的,而我是每天一備份數(shù)據(jù)庫,網(wǎng)站文件是修改后才備份的,所以需要修改一下。雖然可以將網(wǎng)站目錄設(shè)為空便可不備份網(wǎng)站文件,不過我決定省掉這些步驟。
修改后的代碼如下
#!/bin/bash
WP_CONFIG=/your-space-dir/your-site-dir/wp-config.php
## 上面路徑是為了獲取數(shù)據(jù)庫信息
## 也可以用下面這些直接填寫,然后去掉上面那行
# S_DB_USER=db_user
# S_DB_PASSWORD=db_password
# S_DB_NAME=db_name
## 收信箱
TO=xxx@gmail.com
## 獲取數(shù)據(jù)庫信息
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
# 切換到數(shù)據(jù)庫備份目錄
cd /your-space-dir/backup-store-dir
#刪除之前在這個(gè)文件夾下的備份
if [ -e *.sql.gz ]
then
rm *.sql.gz
fi
## 備份數(shù)據(jù)庫并使用gzip壓縮,然后更改權(quán)限
## 使用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
## 發(fā)送郵件
(echo "Database Backup for my site";uuencode STAMP.sql.gzSTAMP.sql.gz)| mail -s 'Database Backup' $TO
exit
使用方法
很簡(jiǎn)單,將其扔到空間的某個(gè)位置(即代碼中的backup-store-dir),權(quán)限設(shè)為700,然后配置一下定時(shí)任務(wù)即可。關(guān)于定時(shí)任務(wù)的使用,可以參照Vastar的第一個(gè)腳本方案。
一些小提示
Windows下的不要使用記事本來編輯以上代碼,請(qǐng)使用UltraEdit等編輯器。編碼使用utf-8,換行格式選擇Unix,無BOM簽名。
關(guān)于附件命令uuencode,切記其帶兩個(gè)參數(shù),第二個(gè)參數(shù)附件標(biāo)題必不可少,否則附件會(huì)為空。
關(guān)于定時(shí)任務(wù)的時(shí)間,如果需要準(zhǔn)確時(shí)間備份,請(qǐng)計(jì)算上服務(wù)器時(shí)區(qū)。
在測(cè)試通過后,如果使用gmail,搭配過濾器,自動(dòng)添加標(biāo)簽、存檔,一切即可無聲無息地進(jìn)行。QQ郵箱在這方面好像也有一點(diǎn)長進(jìn)。
總結(jié)
以上是生活随笔為你收集整理的mysql自动备份发邮箱,定时任务自动备份数据库并邮件发送的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux中tomcat日志文件含义
- 下一篇: 大数据——sqoop操作mysql和hi