Centos7中自動備份mysql資料庫

2021-09-23 08:00:06 字數 2153 閱讀 4484

邏輯很簡單,通過linux的crontab定時執行bash指令碼完成mysql資料庫備份。接下來就是寫bash指令碼和設定定時任務。

#!/bin/bash

path=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin

export path

#資料庫使用者名稱

dbuser='root'

#資料庫用密碼

dbpasswd='root'

需要備份的資料庫,多個資料庫用空格分開

dbname='test'

#備份時間

backtime=`date +%y%m%d%h%m%s`

#日誌備份路徑

logpath='/home/database_backup/test'

#資料備份路徑

datapath='/home/database_backup/test'

#日誌記錄頭部

echo 『"備份時間為$,備份資料庫表 $ 開始" >> $/log.log

#正式備份資料庫

for table in $dbname; do

source=`mysqldump -u $ -p$ $> $/$.sql` 2>> $/mysqllog.log;

#備份成功以下操作

if [ "$?" == 0 ];then

cd $datapath

#為節約硬碟空間,將資料庫壓縮

tar jcf $$.tar.bz2 $.sql > /dev/null

#刪除原始檔案,只留壓縮後檔案

rm -f $/$.sql

#刪除七天前備份,也就是只儲存7天內的備份

find $datapath -name "*.tar.bz2" -type f -mtime +7 -exec rm -rf {} \; > /dev/null 2>&1

echo "資料庫表 $ 備份成功!!" >> $/mysqllog.log

else

#備份失敗則進行以下操作

echo "資料庫表 $ 備份失敗!!" >> $/mysqllog.log

fidone

測試一下是否有效:

./bashup.sh

如果生效則可以在日誌和資料庫備份路徑內看到新增的檔案。有可能backup.sh沒有許可權在資料夾內新增檔案,可為資料夾設定許可權:

sudo chmod a+w test

為test資料夾設定許可權。

開啟crontab檔案可以看到crontab的格式 「mm hh dd mm week user-name command」 ,例如:

59 23 * * * /bin/bash /home/database_back_bachup.sh

意思是在每天的23:59執行/home/database_back_bachup.sh,執行者是/bin/bash,shell檔案的預設執行者是bash,所以寫成如是一樣的:

59 23 * * * /home/database_back_bachup.sh

設定crontab

crontab -e

在文字中加入一行任務即可:

檢視crontab日誌想知道定時任務有沒有執行,檢視crontab日誌即可

sudo cat /var/log/cron

檢視crontab格式

Centos7 設定mysql自動備份

要設定自動備份,思路是2個步驟,第一步 1 編寫shell備份指令碼 mysql user username mysql備份使用者 mysql password password mysql備份使用者的密碼 mysql host mysql port 3306 mysql charset utf8 ...

Centos7中自動備份mysql資料庫

邏輯很簡單,通過linux的crontab定時執行bash指令碼完成mysql資料庫備份。接下來就是寫bash指令碼和設定定時任務。bin bash path bin sbin usr bin usr sbin usr local bin usr local sbin export path 資料庫...

centos7下的mysql自動備份

yum 安裝mysql 看這裡 時間戳命名 time date s mysql路徑 db dir usr bin 備份路徑 back dir home db 跟上使用者名稱密碼和資料庫名 db dir mysqldump uroot pjwbjwb123.test back dir autoback...