安裝環境:CentOS 6,MySQL5.5
一、背景
近期,公司爲加強數據庫的數據安全,對數據庫進行自動備份,本篇將在Linux下使用crontab自動備份並FTP上傳數據庫。
二、實施腳本
創建腳本dbbackup.sh
#!/bin/bash DATE=`date +%Y%m%d%H%M` DATABASE=**** #備份數據庫 DB_USER=**** #備份用戶名 DB_PASS="*******" #備份用戶名的密碼 BACKUP=******** #備份路徑 /usr/local/mysql/bin/mysqldump -u$DB_USER -p$DB_PASS -h 127.0.0.1 -R --opt $DATABASE |gzip > ${BACKUP}\/${DATABASE}_${DATE}.sql.gz #備份及壓縮 sleep 3 find $BACKUP -mtime +7 |xargs rm -rf #刪除7天以上的備份文件 sleep 3 ftp -vn<<EOF open *.*.*.26 21 #打開ftp服務器,21爲ftp服務器端口 user username password #ftp用戶名及密碼 binary #二進制上傳 cd backup #切換ftp目錄 lcd $BACKUP #切換本地目錄 prompt #控制是否使用交互模式,使用關閉此功能 mput ${DATABASE}_${DATE}.sql.gz #上傳備份文件 close bye EOF
增加可執行權限
chmod +x dbbackup.sh
加入crontab計劃任務,每天凌晨3點自動執行。
crontab -e 0 3 * * * /root/dbbackup.sh >/dev/null 2>&1
不足:因ftp上傳中加入刪除7天以上備份測試失敗,所以未加入腳本中。且腳本中部分設置未使用變量,沒實現郵件通知備份成功與否,後續將陸續改進。下篇將介紹SQL Server備份並FTP上傳小軟件。