shell指令碼定時備份資料庫

2021-10-05 02:38:20 字數 1202 閱讀 8762

#!/bin/bash

#功能說明:本功能用於備份mysql資料庫

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

export path

#資料庫使用者名稱

dbuser='***'

#資料庫密碼

dbpasswd='***'

#資料庫名,可以定義多個資料庫,中間以空格隔開,如:test test1 test2

dbname='test test1'

#備份時間

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

#日誌備份路徑

logpath='/mnt/mysqlbackup/log'

#資料備份路徑

datapath='/mnt/mysqlbackup

#日誌記錄頭部

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

#正式備份資料庫

for table in $dbname; do

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

#備份成功以下操作

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

cd $datapath

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

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

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

rm -f $/$.sql

#只保留3天的備份資料

find $datapath -mtime +3 -type f -name \*.bz2 -exec rm -f {} \;

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

else

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

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

fidone

新增定時器:

在linux執行命令crontab -e

新增:10 1 * * * /opt/workspace/shell/backdb.sh

每天早上1:10分執行

參考:1.

2.

Shell 定時備份資料庫指令碼

每天凌晨 2 10 備份 資料庫 atguigudb 到 data backup db 備份開始和備份結束能夠給出相應的提示資訊 備份後的檔案要求以備份時間為檔名,並打包成 tar.gz 的形式,比如 2018 03 12 230201.tar.gz 在備份的同時,檢查是否有 10 天前備份的資料庫...

MySQL定時備份資料庫shell指令碼

資料庫匯出,主要用到mysqldump 命令 mysqldump h db host u db user p db user passwd dbname todaybackuppath dbname sql 具體指令碼如下 db host localhost db user root db user...

shell指令碼備份資料庫

自學使用shell指令碼備份資料庫,記錄一下 bin bash 定義變數 backdir mysql back date y m d t mysqldb 要備份的資料庫 mysqldb mysql mysqlusr root 手動輸入資料庫密碼 read p enter your password ...