#!/bin/sh
DUMP=/usr/local/mysql/bin/mysqldump
OUT_DIR=/home/ldl/xxx/backup/
LINUX_USER=ldl
DB_NAME=ldl
DB_USER=ldl
DB_PASS=xxx
#How much days backup most
DAYS=1
#Core of script
cd $OUT_DIR
DATE=`date +%Y_%m_%d`
OUT_SQL="$DATE.sql"
TAR_SQL="mysql_$DATE.tar.gz"
$DUMP --default-character-set=utf8 --opt -u$DB_USER -p$DB_PASS $DB_NAME > $OUT_SQL
tar -czf $TAR_SQL ./$OUT_SQL
rm $OUT_SQL
chown $DB_NAME:nobody ./$TAR_SQL
find ./ -name "mysql*" -type f -mtime +$DAYS -exec rm {} \;
我的操作系統(tǒng)是CentOS 5.4,只要把腳本拷貝到/etc/cron.daily,并設(shè)置為相同的權(quán)限就可以執(zhí)行了,不用再添加crontab。
假定這臺(tái)服務(wù)器的網(wǎng)站目錄為:/home/www,數(shù)據(jù)庫(kù)程序路徑為:/usr/local/mysql/bin,數(shù)據(jù)庫(kù)名為:levil,ftp服務(wù)器為:ftphost,下面先來(lái)看完整的自動(dòng)備份腳本(自動(dòng)備份腳本保存位置為:/home/backup.sh):
接著輸入chmod +x backup.sh給腳本添加執(zhí)行權(quán)限,再輸入:crontab -e編輯任務(wù)自動(dòng)開始時(shí)間,比如我輸入:
在這一切完成之后,你可以先把自動(dòng)任務(wù)時(shí)間改為當(dāng)前的接近時(shí)間,看自動(dòng)備份腳本是否工作正常,測(cè)試OK的話以后就不用擔(dān)心這臺(tái)服務(wù)器出現(xiàn)任何問題導(dǎo)致數(shù)據(jù)丟失了,當(dāng)然如果你的數(shù)據(jù)更新比較頻繁的話,建議把自動(dòng)備份時(shí)間調(diào)整為每日