linux_MYSQL 數據庫自動備份並壓縮和刪除歷史備份

1. 建立shell腳本mysql

#! /bin/bash
# MySQL用戶
user="root"
# MySQL密碼
userPWD="123456789"
# 須要定時備份的數據表列表
dbName=uco_wms_test
# 每次的備份數據以日期建立文件夾存放,同時刪除過時備份
# 此處以保留7天的備份數據爲例
DATE=`date -d "now" +%Y%m%d_%H%M%S`
ODATE=`date -d "-7 days" +%Y%m%d`
newdir=/home/ttx/app/mysqlbackfile/$DATE
olddir=/home/ttx/app/mysqlbackfile/$ODATE*
# 刪除過時備份數據 *號表示模糊匹配
if [ -d $olddir* ];
then
rm -rf $olddir*
fi
# 建立新備份文件夾
mkdir $newdir
# 對備份數據庫列表的全部數據庫備份
dumpFile=$dbName-$DATE.sql.gzsql

#若是mysql沒有部署在容器裏,如下腳本可自行變動[mysqldump -u$user -p$userPWD $dbName | gzip > $newdir/$dumpFile]
mysqldump -u$user -p$userPWD $dbName | gzip > $newdir/$dumpFileshell

2. 給shell腳本添加執行權限數據庫

chmod +x backupdb.shbash

安裝Mysql客戶端app

命令行執行命令:sudo apt-get install mysql-clientspa

3. 給腳本添加定時任務命令行

 sudo 權限code

vi /etc/crontabcrontab

00 01 * * *  root /bin/sh /usr/local/mysql/backupdb.sh

添加計劃任務保存便可

時間配置格式說明 https://tool.lu/crontab/

或者用下面的處理

crontab -e
輸入上一行命名進行編輯定時任務,最後添加以下內容
00 01 * * * /bin/sh /usr/ local /mysql/backupdb.sh
上面的定時任務意思是天天凌晨1點會執行自動備份腳,進行MySQL數據庫的定時備份.
 
crontab文件的說明:

用戶建立的crontab文件中,每一行都表明一項定時任務,每行的每一個字段表明一項設置,它的格式每行共分爲六個字段,前五段是時間設定字段,第六段是要執行的命令字段。

 格式以下:minute hour day month week command

參數說明:

minute: 表示分鐘,能夠是從0到59之間的任何整數。hour:表示小時,能夠是從0到23之間的任何整數。day:表示日期,能夠是從1到31之間的任何整數。month:表示月份,能夠是從1到12之間的任何整數。week:表示星期幾,能夠是從0到7之間的任何整數,這裏的0或7表明星期日。command:要執行的命令,能夠是Linux系統命令,也能夠是本身編寫的腳本文件。

相關文章
相關標籤/搜索