案例一:shell+cron實現MySQL自動備份且自動刪除N天前備份
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 {} /;
我的操作系統是CentOS 5.4,只要把腳本拷貝到/etc/cron.daily,并設置為相同的權限就可以執行了,不用再添加crontab。
案例二:CentOS下自動備份網站和數據庫的腳本并上傳至FTP
假定這臺服務器的網站目錄為:/home/www,數據庫程序路徑為:/usr/local/mysql/bin,數據庫名為:levil,ftp服務器為:ftphost,下面先來看完整的自動備份腳本(自動備份腳本保存位置為:/home/backup.sh):
接著輸入chmod +x backup.sh給腳本添加執行權限,再輸入:crontab -e編輯任務自動開始時間,比如我輸入:
00 05 1 /home/backup.sh 就代表每周1的上午5點整執行該自動備份操作。
在這一切完成之后,你可以先把自動任務時間改為當前的接近時間,看自動備份腳本是否工作正常,測試OK的話以后就不用擔心這臺服務器出現任何問題導致數據丟失了,當然如果你的數據更新比較頻繁的話,建議把自動備份時間調整為每日
新聞熱點
疑難解答