mysql備份指令碼

2021-07-25 17:45:31 字數 3907 閱讀 7632

生產環境中mysql資料庫的備份是週期性重複的操作,所以通常是要編寫指令碼實現,通過crond計畫任務週期性執行備份指令碼

mysqldump備份方案:

週日凌晨1點全庫備份

周一到週六凌晨每隔4個小時增量備份一次

設定crontab任務,每天執行備份指令碼

0 1 * * 0 /root/mysqlfullbackup.sh >/dev/null 2>&1

0 /4 * 1-6 /root/mysqldailybackup.sh >/dev/null 2>&1

mysqlfullbackup.sh指令碼內容:

[root@localhost ~]# cat mysqlfullbackup.sh

mysqldir=/usr/local/mysql

user=root

userpwd=123456

dbname=test_db

databackupdir=/opt/mysqlbackup

[ ! -d

databackupdir ]&& mkdir

databackupdir

emailfile=$databackupdir/email.txt

[email protected]

logfile=$databackupdir/mysqlbackup.log

date=date -i

echo 「」 > em

ailf

ilee

cho (date +"%y-%m-%d %h:%m:%s") >> em

ailf

ilec

d databackupdir

dumpfile=mysql_

date.sql  

gzdumpfile=mysql_

date.sql.tar.gzmy

sqld

ir/b

in/m

ysql

dump

−uuser -pus

erpw

d−−f

lush

−log

s−x dbname > $dumpfile

if [ ?−

eq0]

;the

ntar

czf gzdumpfile du

mpfi

le>>

emailfile 2>&1

echo 「backupfilename:gz

dump

file

">

>

emailfile

echo 「database backup success!」 >> em

ailf

iler

m−f dumpfile

else

echo 「database backup fail!」 >> $emailfile

fiecho 「——————————————————–」 >> lo

gfil

ecat

emailfile >> $logfile

cat em

ailf

ile|

mail

−s"m

ysql

back

up" email

mysqldailybackup.sh指令碼內容:

[root@localhost ~]# cat mysqldailybackup.sh

mysqldir=/usr/local/mysql

datadir=$mysqldir/data

user=root

userpwd=123456

databackupdir=/opt/mysqlbackup

dailybackupdir=da

taba

ckup

dir/

dail

y[!−

d dailybackupdir ]&& mkdir -p $databackupdir/daily

emailfile=$databackupdir/email.txt

[email protected]

logfile=da

taba

ckup

dir/

mysq

lbac

kup.

loge

cho「

」>

emailfile

echo (d

ate+

" emailfile #m

ysql

dir/

bin/

mysq

ladm

in−u

user -pus

erpw

dflu

sh−l

ogsc

d datadir

filelist=cat mysql-bin.index

icounter=0

for file in $filelist

do icounter=expr $icounter + 1

done

nextnum=0

ifile=0

for file in $filelist

do binlogname=basename $file

nextnum=expr $nextnum + 1

if [ ne

xtnu

m−eq

icounter ]; then

echo 「skip lastest!」 > /dev/null

else

dest=da

ilyb

acku

pdir

/ binlogname

if [ -e de

st];

then

echo

「ski

pexi

stbinlogname!」 > /dev/null

else

cp bin

logn

ame dailybackupdir

if [ $? -eq 0 ]; then

ifile=expr $ifile + 1

echo 「bi

nlog

name

back

upsu

cces

s!">

>

emailfile

fi fi

fi done

if [ if

ile−

eq0]

;the

nech

o「no

binl

ogba

ckup

!」>>

emailfile

else

echo 「backup if

ilef

ile(

s).">

>

emailfile

echo 「backup mysql binlog ok!」 >> $emailfile

ficat em

ailf

ile|

mail

−s"m

ysql

back

up" email

echo 「——————————————————–」 >> lo

gfil

ecat

emailfile >> $logfile

chmod +x

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

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

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的備份指令碼

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