#!/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 ...