mysql的備份指令碼 mysql的備份指令碼

2021-10-22 09:53:25 字數 1455 閱讀 9160

1、描述

我相信很多朋友在工作都都會有這種需求,老闆或領導讓你每天都要備份mysql資料庫,你該如何實現呢,是每天到一定的時間在伺服器上敲一遍mysql的備份命令,還是想寫個指令碼,定時定點的自動備份呢?我相信大家都想讓它自動備份,接下來我通"shell指令碼+定時任務"的方式來實現自動備份mysql資料庫。

2、環境

備份路徑:/data/mysqlbak/

備份指令碼:/data/mysqlbak/mysqlbak.sh

備份要求:比如備份的資料只保留1周

3、mysqlbak.sh指令碼#!/bin/bash

#資料庫伺服器

dbserver='192.168.100.100'

#資料庫使用者名稱

dbuser='root'

#資料庫用密碼

dbpasswd='********'

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

dbname='backdata01 backdata02'

#備份時間

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

#日誌備份路徑

logpath='/data/mysqlbak/'

#資料備份路徑

datapath='/data/mysqlbak/'

echo '##################$backtime##########################'

#日誌記錄頭部

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

#正式備份資料庫

for table in $dbname; do

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

#備份成功以下操作

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

cd $datapath

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

tar zcf $$.tar.gz $.sql > /dev/null

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

rm -f $/$.sql

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

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

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

else

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

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

fidone

echo '##################完成############################

標籤:指令碼,備份,logpath,backtime,dbname,mysqlbak,mysql,資料庫

mysql備份 MySQL備份指令碼

第乙個指令碼 bin bash mysql備份指令碼bak dir data backup date y m d mysqldb 資料庫名mysqluser 使用者mysqlpwd 密碼mysqlcmd usr bin mysqldumpmysqlser 資料庫伺服器mysqlport 埠if d ...

編寫mysql備份指令碼 mysql 備份指令碼的編寫

最近在為做一些邊邊角角的工作,現在有乙個需求要每天把mysql的資料庫dump出來到備份機器上面去.看似簡單的任務也潛在了很多的需求,整理如下 自動執行 crontab 指令碼的環境變數設定 由於通過crontab 啟動執行的指令碼環境變數沒有設定,需要在指令碼中設定環境變數 使用何種方式備份資料庫...

mysql備份指令碼

bin bash shell variables shellname mysqlbak scriptdir data dbbackup backupdir data dbbackup logfile scriptdir shellname log date time veriables remain...