1. 程式人生 > >mysql定時備份資料庫和刪除N天前資料庫備份

mysql定時備份資料庫和刪除N天前資料庫備份

前提,這裡使用 Ubuntu 16.04.4。

mysql定時備份數資料庫:

1.建立備份資料夾和指令碼檔案:

mkdir -p /home/mysql_backup/
touch /home/mysql_backup/mysql_backup.sh

2.編輯指令碼檔案(mysql_backup.sh):

#!/bin/bash
date_str=$(date +%Y%m%d-%T)
cd /home/mysql_backup
mysqldump -uroot -p123456 yueya | gzip > /home/mysql_backup/database_$date_str.sql.gz
或者mysqldump -u root --password=123456 yueya | gzip > /home/mysql_backup/database_$date_str.sql.gz

-u後面接登入資料庫的使用者名稱,-p接登入密碼,yueya是資料庫名

3.然後執行該檔案:

./mysql_backup.sh

在/home/mysql_backup/下,看是否有備份檔案生成

4.然後開始設定定時任務執行該檔案,如果你是root賬戶,可以直接修改/etc/crontab檔案,鍵入以下內容:

30 1 * * * root /home/mysqls_backup/mysqlbackup.sh

說明:此語句表示每天的凌晨1點30分執行備份命令

前面5個引數分別表示分鐘、小時、日、月、周,星號表示任意。

如果是普通使用者,可以使用執行 crontab -e 命令,選擇合適的編輯器後,鍵入一下內容:

30 1 * * * /home/mysqls_backup/mysqlbackup.sh
檢視新增的內容資訊 命令:crontab -l

5.使新增的定時任務生效 :

/etc/init.d/cron restart

mysql定時刪除N天前備份的資料庫:

1.建立指令碼為檔案mysql_delete.sh:
2.編輯指令碼檔案:

#!/bin/bash
rm -rf $(find /home/mysql_backup/ -mtime +30 -name "*.gz")

其中 **/home/mysql_backup/**為對應備份資料庫存放的路徑;30表示天數,查詢30天前的檔案,這裡用數字代表天數;"*.gz"表示查詢的檔案型別,也就是我們備份資料庫儲存檔案的字尾,這裡我是之前儲存的格式為.gz。
3.然後執行該檔案,檢視備份檔案是否刪除:

./mysql_delete.sh

設定定時任務和前面備份資料庫一樣,詳看前面步驟4、5。