網站首頁 編程語言 正文
準備工作
- 一臺Linux(Centos7為例)服務器。
- 安裝Docker服務。
- 安裝并啟動SqlServer容器服務。
編寫Shell文件
給出一個備份的范例
#!/bin/bash #設置mssql備份目錄 folder=/var/opt/mssql/data/databack/ day=`date +%Y%m%d%H%M%S` #數據庫服務器,一般為localhost host=localhost #用戶名 user=sa #密碼 password='********' # 容器名稱 containerId='sqlserver' # 循環獲取數據庫名稱 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 # 判斷是否是數據庫名稱 if [[ $line =~ ^[a-zA-Z0-9_]+$ && $line != 'name' && $line != 'rows' ]]; then echo "數據庫 $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添加定時任務
添加定時任務需要使用到Linux的crontab服務。我們可以通過下列命令來檢測并安裝這個服務。
# 檢查crontab工具是否安裝 crontab -l # 檢查crond服務是否啟動 service crond status # 如果未安裝服務我們需要進行安裝 yum install vixie-cron yum install crontabs
再確認安裝完成后我們使用命令 crontab -e
打開crontab的編輯功能,添加如下示例:
# 定時任務 每日0點備份 # 注意別忘記 sh 命令 0 0 * * * sh /root/databack/sqlServerBackup.sh
添加完成后可以使用命令(systemctl restart crond
),重啟下crond服務確保服務能正常運行。
crontab格式介紹
參考生成工具 https://tool.lu/crontab/
格式: * * * * * comand
(*以空格或tab隔開)
- 第一個* : 分鐘(0--59)
- 第二個* : 小時(0--23)
- 第三個* : 日期(0--31)
- 第四個* : 月份(1--12)
- 第五個* : 星期0--7(0或者7表示星期天)
- comand : 要執行的操作
舉例:
- 每晚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
原文鏈接:https://www.cnblogs.com/ykbb/archive/2022/09/27/16734907.html
相關推薦
- 2022-09-13 Android?Camera實現旋轉角度_Android
- 2022-08-21 golang中defer的基本使用教程_Golang
- 2022-09-17 python面試題之read、readline和readlines的區別詳解_python
- 2022-01-31 RuntimeError:Given input size:(256x1x1). Calculate
- 2022-04-18 2.* 版本taro引入 taro-ui編譯小程序階段報錯, Module not found: C
- 2022-10-16 Pytorch?linear?多維輸入的參數問題_python
- 2023-10-15 字符串逆序輸出,編譯器優化,循環代碼外提,無效代碼刪除
- 2022-09-27 Kotlin淺析延遲初始化與密封類的實現方法_Android
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支