建立一script,設權限為755
#!/bin/bash
#要備份的DB清單
BACKUP_LIST="/home/back_list"
#要備份到什麼地方
BACKUP_PATH="/home/Backup_DB"
BACKUP_TIME=`date +%Y%m%d_%H`
BACKUP_FOLDER=BACKUP_PATH/BACKUP_TIME
if [! -d BACKUP_FOLDER ]; then
/bin/mkdir -p BACKUP_FOLDER
fi
#== LOG ==
echo BACKUP_TIME >> BACKUP_PATH/log
TIME_START=`date +%s` #現在時間換算成秒數
cat BACKUP_LIST while read DB
do
#-p 後面接密碼為123456 設定為utf8格式
/usr/bin/mysqldump -u root -p123456 --default-character-set=UTF8 DB > BACKUP_FOLDER/DB.sql
if [ ? -ne "0" ]; then
#== LOG ==
echo " [ERROR] "DB >> BACKUP_PATH/errorlog
fi
done
TIME_END=`date +%s`
TIME_TOTAL=((TIME_END-TIME_START))
#== LOG ==
echo " [TIME] "TIME_TOTAL" /sec" >> BACKUP_PATH/log
cd BACKUP_PATH
tar zcvf BACKUP_TIME.tar.gz BACKUP_TIME &> /dev/null (如果有錯誤訊息送到虛無設備/dev/null 直接丟棄不會顯示在營幕上)
if [ ? -eq "0" ]; then
if [ -d BACKUP_TIME ]; then
rm -rf BACKUP_TIME
fi
fi
======================================
接著就設定排程讓它跑吧
