1.所需要軟體
mutt Linux下命令列郵件工具,可用來接收和發送郵件
sendmail/postfix Linux下郵件伺服器,所有郵件通過本機發送出去
mysqldump 備份MySQL資料庫的程式
2.mutt參數介紹
-a <filename> 附件
-s <subject> 主題
例子:
echo "你好,祝你愉快!" | mutt -a /etc/passwd -s "Linux發送帶附件的郵件" cc2@cc2.cc
說明:echo列印的內容為郵件內文,發送密碼檔案passwd到郵箱cc2@cc2.cc
3.指令碼
測試備份的資料庫名:
scriptdev2 realmd mmfpm mangos characters
查看資料庫使用的字元集
show variables like "char%";
utf8
建立備份指令碼
vi /root/send-mysql-data.sh
#!/bin/bash
#Power by hugwww 2009-4-11
#set time format
date=`date -d "%m"date -d today +"%Y-%m-%d-%H:%M"`
echo $date
#定義數組
db_array=(scriptdev2 realmd mmfpm characters mangos)
#取數組無元素個數
lenArray=${#db_array[@]}
#迴圈列出數組元素
i=0
while [ $i -lt $lenArray ]
do
#執行備份
mysqldump -uroot -ppassw0rd --default-character-set=utf8 --opt --extended-insert=false \
--triggers -R --hex-blob -x ${db_array[$i]} > /opt/db-backup/everyday/${db_array[$i]}-$date.sql;
# echo ${db_array[$i]}
let i++
done
#將所有SQL檔案壓縮到一個檔案
tar cvzf /opt/db-backup/mysql-data-$date.tar.gz /opt/db-backup/everyday/*$date.sql
#發送備份檔案到郵箱
echo "$date Database Backup檔案" | mutt -a /opt/db-backup/mysql-data-$date.tar.gz -s "mangosDatabase Backup" cc2@cc2.cc
echo "$date 備份成功並發送到指定郵箱" >> /opt/db-backup/backup.log
exit
完成