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郵箱在這方面好像也有一點長進。
總結
以上是生活随笔為你收集整理的mysql自动备份发邮箱,定时任务自动备份数据库并邮件发送的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux中tomcat日志文件含义
- 下一篇: linux cmake编译源码,linu