1、查看磁盤空間情況
既然是定時備份,就要選擇一個空間充足的磁盤空間,避免出現因空間不足導致備份失敗、數據丟失的問題。查看服務器磁盤空間使用情況的命令為:df -h。(df,disk free;h,human;以人類易讀的形式展示可用磁盤)
這里選擇根目錄(/)作為備份目錄。
2、創建備份目錄
3、創建備份腳本
備份sql文件腳本格式:
!/bin/bash
mysqldump -uusername -ppassword DBName > /backup/DBName_$(date +%Y%m%d_%H%M%S).sql
1
2
備份sql壓縮文件腳本格式:
!/bin/bash
mysqldump -uusername -ppassword DBName | gzip > /backup/DBName_$(date +%Y%m%d_%H%M%S).sql.gz
1
2
刪除7天前的備份文件:
workdir="/backup/"
do_delete()
{
echo file name is $workdir
find $workdir -name '*.sql.gz' -and -mtime +7 -type f -delete
if [ $? -eq 0 ];then
echo $date delete $dir success!
else
echo $date delete $dir FAILD!
fi
}
do_delete
username:數據庫用戶名
password:數據庫密碼
DBName :要備份的數據庫名
在backup目錄下執行命令:vi bkdb.sh,並粘貼寫好的備份和刪除腳本,例如:
!/bin/bash
mysqldump -uroot -proot wms_prod | gzip > /backup/wms_prod_$(date +%Y%m%d_%H%M%S).sql.gz
workdir="/backup/"
do_delete()
{
echo file name is $workdir
find $workdir -name '*.sql.gz' -and -mtime +7 -type f -delete
if [ $? -eq 0 ];then
echo $date delete $dir success!
else
echo $date delete $dir FAILD!
fi
}
do_delete
以上內容有兩個作用:
備份數據庫:wms_prod。
刪除7天前/backup/目錄下后綴名為.sql.gz的文件。
4、添加可執行權限
chmod u+x bkdb.sh
1
檢驗腳本是否可用,執行命令:./bkdb.sh。如果可用,則backup目錄下會生成備份文件。
5、添加計划任務
執行命令crontab -e。如果出現提示信息:command not found,可參考文章:安裝crontab,自行完成安裝。
這時就像使用vi編輯器一樣,可以對計划任務進行編輯。輸入以下內容:
0 22 * * * /backup/bkdb.sh
1
意思是每天在22:00執行shell腳本/backup/bkdb.sh。
