Linux下定時自動備份Docker中所有SqlServer數(shù)據(jù)庫的腳本
準備工作
- 一臺Linux(Centos7為例)服務(wù)器。
- 安裝Docker服務(wù)。
- 安裝并啟動SqlServer容器服務(wù)。
編寫Shell文件
給出一個備份的范例
#!/bin/bash #設(shè)置mssql備份目錄 folder=/var/opt/mssql/data/databack/ day=`date +%Y%m%d%H%M%S` #數(shù)據(jù)庫服務(wù)器,一般為localhost host=localhost #用戶名 user=sa #密碼 password='********' # 容器名稱 containerId='sqlserver' # 循環(huán)獲取數(shù)據(jù)庫名稱 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ù)庫名稱 if [[ $line =~ ^[a-zA-Z0-9_]+$ && $line != 'name' && $line != 'rows' ]]; then echo "數(shù)據(jù)庫 $line 開始備份" 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添加定時任務(wù)
添加定時任務(wù)需要使用到Linux的crontab服務(wù)。我們可以通過下列命令來檢測并安裝這個服務(wù)。
# 檢查crontab工具是否安裝 crontab -l # 檢查crond服務(wù)是否啟動 service crond status # 如果未安裝服務(wù)我們需要進行安裝 yum install vixie-cron yum install crontabs
再確認安裝完成后我們使用命令 crontab -e
打開crontab的編輯功能,添加如下示例:
# 定時任務(wù) 每日0點備份 # 注意別忘記 sh 命令 0 0 * * * sh /root/databack/sqlServerBackup.sh
添加完成后可以使用命令(systemctl restart crond
),重啟下crond服務(wù)確保服務(wù)能正常運行。
crontab格式介紹
參考生成工具 https://tool.lu/crontab/
格式: * * * * * comand
(*以空格或tab隔開)
- 第一個* : 分鐘(0--59)
- 第二個* : 小時(0--23)
- 第三個* : 日期(0--31)
- 第四個* : 月份(1--12)
- 第五個* : 星期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點到早上7點間,每隔1小時重啟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下定時自動備份Docker中所有SqlServer數(shù)據(jù)庫 的文章就介紹到這了,更多相關(guān)Docker SqlServer定時自動備份內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker基礎(chǔ) :網(wǎng)絡(luò)配置詳解
本篇文章將講述 Docker 的網(wǎng)絡(luò)功能,包括使用端口映射機制來將容器內(nèi)應(yīng)用服務(wù)提供給外部網(wǎng)絡(luò),以及通過容器互聯(lián)系統(tǒng)讓多個容器之間進行快捷的網(wǎng)絡(luò)通信,有興趣的可以了解下。2017-02-02Docker數(shù)據(jù)卷掛載命令volume(-v)與mount的使用總結(jié)
本文主要介紹了Docker數(shù)據(jù)卷掛載命令volume(-v)與mount的使用總結(jié),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-08-08Intellij IDEA快速實現(xiàn)Docker鏡像部署的方法步驟
本文主要介紹了Intellij IDEA快速實現(xiàn)Docker鏡像部署的方法步驟,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09Docker 搭建 Tomcat 運行環(huán)境的方法
這篇文章主要介紹了Docker 搭建 Tomcat 運行環(huán)境的方法,Docker與虛擬機及搭建過程,介紹的非常詳細,需要的朋友可以參考下2016-10-10使用docker build kit構(gòu)建樹莓派上可用的Docker鏡像
這篇文章主要介紹了使用docker build kit構(gòu)建樹莓派上可用的Docker鏡像,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-02-02