1. 程式人生 > 資料庫 >mysql備份指令碼並保留7天

mysql備份指令碼並保留7天

指令碼需求:

每天備份mysql資料庫,保留7天的指令碼。

存放在/opt/dbbak目錄中。

指令碼名稱為database_xxxx-xx-xx.sql

指令碼內容:

#!/bin/bash
export NOW="$(date +"%Y-%m-%d")"
export DATA_DIR=/opt/dbbak
/usr/local/ywgh/mysql/bin/mysqldump --opt -uroot –p 'mypassword' ywghblog > $DATA_DIR/ywghblog/ywghblog_$NOW.sql
find $DATA_DIR/ywghblog -type f -name "*.sql" -mtime +7 -exec rm -rf {} \;

指令碼解釋:

首先定義一個變數NOW取當前的年月日,

在定義一個目錄的變數DATA_DIR,

然後使用mysqldump命令將要備份的庫備份到指定的目錄,

最後使用find命令找到指定目錄的sql檔案,並且將7天之外的檔案刪除。

-mtime + 就是找到7天之外的檔案

-mtime – 就是找到7天之內的檔案

-exec就是執行後邊的命令

請根據自己的需求修改指令碼。

知識點擴充套件:自動備份MYSQL資料庫指令碼

vi dbbackup.sh在開啟的編輯器輸入:

#!/bin/bash
/usr/local/mysql/bin/mysqldump -uuser -ppasswd databasename > /home/wwwroot/backup/date_$(date '+%Y%m%d').sql

命令的意思是用mysqldump匯出名為databasename的資料庫到/home/wwwroot/backup/資料夾並命名為date_日期.sql,-u後面的是你的Mysql的使用者名稱,-p後面的是Mysql密碼,databasename是要備份資料庫名字,把這三個替換成自己的。

修改許可權並執行備份指令碼看能否備份成功:

chmod +x dbbackup.sh
sh dbbackup.sh

如果一切檢查沒問題了,就建立定時任務自動備份你的資料吧,輸入命令:

crontab -e

在開啟的檔案輸入定時任務:

56 23 * * * /root/dbbackup.sh

然後按esc鍵後輸入:wq退出編輯並儲存檔案。

好了,定時任務建立好了,每天23點56分備份執行dbbackup.sh備份資料庫。

總結

以上所述是小編給大家介紹的mysql備份指令碼並保留7天,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對我們網站的支援!
如果你覺得本文對你有幫助,歡迎轉載,煩請註明出處,謝謝!