#安裝壓縮包
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...