安裝環境:CentOS 6,MySQL5.5mysql
1、背景
sql
近期,公司爲增強數據庫的數據安全,對數據庫進行自動備份,本篇將在Linux下使用crontab自動備份並FTP上傳數據庫。
數據庫
2、實施腳本安全
建立腳本dbbackup.sh
bash
#!/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點自動執行。ide
crontab -e 0 3 * * * /root/dbbackup.sh >/dev/null 2>&1
不足:因ftp上傳中加入刪除7天以上備份測試失敗,因此未加入腳本中。且腳本中部分設置未使用變量,沒實現郵件通知備份成功與否,後續將陸續改進。下篇將介紹SQL Server備份並FTP上傳小軟件。測試