Linux下定時(shí)自動(dòng)備份Docker中所有SqlServer數(shù)據(jù)庫(kù)的腳本
準(zhǔn)備工作
- 一臺(tái)Linux(Centos7為例)服務(wù)器。
- 安裝Docker服務(wù)。
- 安裝并啟動(dòng)SqlServer容器服務(wù)。
編寫(xiě)Shell文件
給出一個(gè)備份的范例
#!/bin/bash
#設(shè)置mssql備份目錄
folder=/var/opt/mssql/data/databack/
day=`date +%Y%m%d%H%M%S`
#數(shù)據(jù)庫(kù)服務(wù)器,一般為localhost
host=localhost
#用戶名
user=sa
#密碼
password='********'
# 容器名稱
containerId='sqlserver'
# 循環(huán)獲取數(shù)據(jù)庫(kù)名稱
for line in $(docker exec $containerId /opt/mssql-tools/bin/sqlcmd \
-S $host -U $user -P $password \
-Q "select [name] from master.dbo.SysDatabases where [dbid] > 4")
do
# 判斷是否是數(shù)據(jù)庫(kù)名稱
if [[ $line =~ ^[a-zA-Z0-9_]+$ && $line != 'name' && $line != 'rows' ]]; then
echo "數(shù)據(jù)庫(kù) $line 開(kāi)始備份"
docker exec $containerId /opt/mssql-tools/bin/sqlcmd \
-S $host -U $user -P $password \
-Q "BACKUP DATABASE [$line] TO DISK = N'$folder$line/$line$day.bak' WITH NOFORMAT, NOINIT, NAME = N'$line Backup $day', SKIP, NOREWIND, NOUNLOAD, STATS = 10"
fi
done
在Linux添加定時(shí)任務(wù)
添加定時(shí)任務(wù)需要使用到Linux的crontab服務(wù)。我們可以通過(guò)下列命令來(lái)檢測(cè)并安裝這個(gè)服務(wù)。
# 檢查crontab工具是否安裝 crontab -l # 檢查crond服務(wù)是否啟動(dòng) service crond status # 如果未安裝服務(wù)我們需要進(jìn)行安裝 yum install vixie-cron yum install crontabs
再確認(rèn)安裝完成后我們使用命令 crontab -e 打開(kāi)crontab的編輯功能,添加如下示例:
# 定時(shí)任務(wù) 每日0點(diǎn)備份 # 注意別忘記 sh 命令 0 0 * * * sh /root/databack/sqlServerBackup.sh
添加完成后可以使用命令(systemctl restart crond),重啟下crond服務(wù)確保服務(wù)能正常運(yùn)行。
crontab格式介紹
參考生成工具 https://tool.lu/crontab/
格式: * * * * * comand(*以空格或tab隔開(kāi))
- 第一個(gè)* : 分鐘(0--59)
- 第二個(gè)* : 小時(shí)(0--23)
- 第三個(gè)* : 日期(0--31)
- 第四個(gè)* : 月份(1--12)
- 第五個(gè)* : 星期0--7(0或者7表示星期天)
- comand : 要執(zhí)行的操作
舉例:
- 每晚21:30重啟apache: 30 21 * * * service httpd restart
- 每月1、10、22日的4:45重啟apache : 45 4 1,10,22 * * service httpd restart
- 每月1到10日的4:45重啟apache : 45 4 1-10 * * service httpd restart
- 每隔兩分鐘重啟apache : */2 * * * * service httpd restart 或者 1-59/2 * * * * service httpd restart
- 每晚11點(diǎn)到早上7點(diǎn)間,每隔1小時(shí)重啟apache : 0 23-7/1 * * * service httpd restart
- 每晚18:00至23:00,每隔30分鐘重啟apache : 0,30 18-23 * * * service httpd restart 或 0-59/30 18-23 * * * service httpd restart
到此這篇關(guān)于Linux下定時(shí)自動(dòng)備份Docker中所有SqlServer數(shù)據(jù)庫(kù) 的文章就介紹到這了,更多相關(guān)Docker SqlServer定時(shí)自動(dòng)備份內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于docker部署的jenkins跑git上的程序的問(wèn)題
這篇文章主要介紹了docker部署的jenkins跑git上的程序的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
Docker搭建Minio容器的流程步驟(完整詳細(xì)版)
Minio 是一個(gè)基于Apache License v2.0開(kāi)源協(xié)議的對(duì)象存儲(chǔ)服務(wù),雖然輕量,卻擁有著不錯(cuò)的性能,它兼容亞馬遜S3云存儲(chǔ)服務(wù)接口,非常適合于存儲(chǔ)大容量非結(jié)構(gòu)化的數(shù)據(jù),本文將給大家介紹Docker搭建Minio容器的流程步驟,需要的朋友可以參考下2024-08-08
Docker中配置國(guó)內(nèi)鏡像設(shè)置
這篇文章主要介紹了Docker中配置國(guó)內(nèi)鏡像設(shè)置,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11
Docker私有倉(cāng)庫(kù)Registry部署的實(shí)現(xiàn)
這篇文章主要介紹了Docker私有倉(cāng)庫(kù)Registry部署的實(shí)現(xiàn),私有倉(cāng)庫(kù)最常用的就是Registry、Harbor兩種,本文詳細(xì)介紹如何搭建registry私有倉(cāng)庫(kù),感興趣的可以了解一下2020-06-06
Windows Server 2016 安裝 Docker的過(guò)程及遇到問(wèn)題
若要在 Windows Server 上安裝 Docker,可以使用由 Microsoft 發(fā)布的 OneGet 提供程序 PowerShell 模塊,接下來(lái)通過(guò)本文給大家介紹Windows Server 2016 安裝 Docker的過(guò)程及遇到問(wèn)題,一起看看吧2021-09-09
在CentOS系統(tǒng)中輕松安裝和配置Docker全過(guò)程
這篇文章主要介紹了在CentOS系統(tǒng)中輕松安裝和配置Docker全過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-04-04

