docker內mysql容器備份資料庫

2021-10-17 23:07:26 字數 1871 閱讀 6695

#安裝壓縮包

yum -y install

bzip2

#安裝定時任務包

yum install vixie-cron

yum install crontabs

#!/bin/bash

#mysql容器名稱

mysql_container=

"mysql"

#mysql備份使用者

mysql_user=

"root"

#mysql備份使用者的密碼

mysql_password=

"****"

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

dbname=

'test test1 test2'

#備份時間

backtime=

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

#日誌備份路徑 此處指向你建立的資料夾

logpath=

'/opt/mysql/log'

#資料備份路徑 此處指向你建立的資料夾

datapath=

'/opt/mysql/data'

#檢視備份目錄if[

! -d "$logpath"];

then

mkdir -p "$logpath"

fi#檢視備份目錄if[

! -d "$datapath"];

then

mkdir -p "$datapath"

fi#日誌記錄頭部

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

$/mysqllog.log

#正式備份資料庫

for table in

$dbname;do

source=

`docker exec -i $ mysqldump -u$ -p$ --single-transaction $

> $/$.sql`

2>>

$/mysqllog.log;

#備份成功以下操作if[

"$?"

!= 0 ]

;then

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

echo 「資料庫表 $ 備份失敗!

!」 >>

$/mysqllog.log

else

cd$datapath

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

tar jcf $

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

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

rm -f $/$.sql

#刪除30天前備份

find

$datapath -name "*.tar.bz2" -type f -mtime +90 -exec rm -rf \;

> /dev/null 2>

&1echo 「資料庫表 $ 備份成功!

!」 >>

$/mysqllog.log

fidone

#編輯定時任務配置資訊

crontab -e

#寫入(每天00:00執行)

00 00 * * * sh /指令碼檔案路徑/backup.sh

#測試寫入(每10秒)

* * * * * sleep 10; sh /指令碼路徑/backup.sh

#重啟服務

systemctl restart crond.service

#重新整理配置

systemctl reload crond.service

#查詢現有任務

crontab -l

Docker容器內安裝mysql

docker pull mysql 5.7使 用docker命令啟動 docker run p 3306 3306 name mysql v mydata mysql log var log mysql v mydata mysql data var lib mysql v mydata mysql...

docker容器內mysql定時任務備份及遇到問題

注 部分為網上找到,後面加以修改。命令 vi mysql backup.sh 內容如下 bin bash 設定mysql的登入使用者名稱和密碼 根據實際情況填寫 mysql user root mysql password 123456 mysql host localhost mysql port...

docker容器內安裝vim

reading package lists.done building dependency tree reading state information.done e unable to locate package vim這時候需要敲 apt get update,這個命令的作用是 同步 etc...