Linux下定时自动备份Docker中所有SqlServer数据库

给出一个备份的范例

#!/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的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服务确保服务能正常运行。

  • 第一个* : 分钟(0–59)
  • 第二个* : 小时(0–23)
  • 第三个* : 日期(0–31)
  • 第四个* : 月份(1–12)
  • 第五个* : 星期0–7(0或者7表示星期天)
  • comand : 要执行的操作

举例:

Original: https://www.cnblogs.com/ykbb/p/16734907.html
Author: 一块白板
Title: Linux下定时自动备份Docker中所有SqlServer数据库

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/609703/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 我的2021年总结

    前言 这一年把整个重心都放到考研上,对工作并没有那么上心,但也做个年终总结吧。相应的立一个flag,明年来看看工作上的flag完成了没有?2022年在技术上要成长啊。 22岁很迷茫…

    Linux 2023年6月8日
    0113
  • MIT6.828——Lab1 partB(麻省理工操作系统课程实验)

    Lab1 历时2天,完成了LAB1,完整代码仓库可点击:https://github.com/Elio-yang/MIT6.828 partA 练习 *exercise3 gdb指…

    Linux 2023年5月27日
    0133
  • Linux常用磁盘管理命令详解

    du du命令用于查看文件和目录磁盘的使用空间。 命令语法: du [参数] [文件&amp…

    Linux 2023年5月27日
    0113
  • 【网络安全篇】常见的HTTP状态码小结(3位5类)

    HTTP 状态码(HTTP Status Code)用以表示网页服务器传输协议的响应状态;状态码为 三位数,响应分为 五种;状态码的第1位数字表示状态类型,第2、3位数字表示具体的…

    Linux 2023年6月13日
    092
  • .NET 20 周年

    更多请移步:https://dotnet.microsoft.com/zh-cn/ 作者:猫叔Vincent 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,…

    Linux 2023年6月13日
    0145
  • find 查询命令 & 正则表达式

    今日内容 find 正则表达式 Linux 三剑客之 grep 内容详细 一、find 按名称或属性查询文件 按名称查询 find [查找目录] [参数] [] 通配符 : * 表…

    Linux 2023年5月27日
    0106
  • Kubernetes 容器平台实战

    一、什么是Kubernetes? Kubernetes是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署,自动扩缩容,维护等功能. 通过Kubernetes可以做到…

    Linux 2023年6月14日
    0104
  • Linux at命令详解

    大家好,我是良许。 在生活中,我们有太多的场景需要使用闹钟,比如早上7点起床,下午4点开会,晚上8点购物,等等。 [En] In life, we have too many sc…

    Linux 2023年5月27日
    0111
  • linux配置密钥登录

    一、前言: ssh远程登录密码认证的方式有三种,password、Keyboard Interactive、Public Key前面两种方式就是密码认证,含义都是一样大同小异。第三…

    Linux 2023年6月8日
    095
  • 关于飞书事件订阅功能的应用

    此项目源码我也是站在巨人的肩膀上进行一个二次应用,感谢这位大神的共享 附上源码链接–Feishu-Event-Subscribe: 【实验】飞书的事件订阅 主要是通讯录…

    Linux 2023年6月14日
    089
  • 博客园装饰——(二)滚动到页面顶部或底部

    功能描述: 1. 当页面向下滚动一定距离时,向下滚动到底部的按钮以淡入的效果出现,并以固定定位显示。且滚动到一定距离(快接近所设置的底部)时,该按钮又会以淡出效果消失。 2. 当页…

    Linux 2023年6月14日
    094
  • [python] boss直聘自动搜索简历聊天HR机器人

    前言 1、首先进行几个关键位置的标定 2、拖拽鼠标复制简历的文字,并进行字符串匹配,对候选人进行人物画像和打分 3、筛选、聊天、下一个全流程状态机 附录 前言 该机器人完全仿照人是…

    Linux 2023年6月8日
    0229
  • Linux 配置Git

    前言:请各大网友尊重本人原创知识分享,谨记本人博客: 南国以南i 一、用git –version命令检查是否已经安装 二、下载git源码并解压 wget https:/…

    Linux 2023年6月14日
    096
  • Docker容器网络配置

    Docker容器网络配置 1、Linux内核实现名称空间的创建 1.1 ip netns命令 可以借助 ip netns命令来完成对 Network Namespace 的各种操作…

    Linux 2023年6月7日
    098
  • 爱前端公开课学习笔记——JS01 认识js 变量

    认识js 在谷歌浏览器的控制台中右键单击空白处,选择检查可以打开控制台 查看console.log输出的内容。 JS的注释 是”//”或者”/ …

    Linux 2023年6月14日
    0103
  • 面试题:Java中为什么只有值传递?

    作者:小牛呼噜噜 | https://xiaoniuhululu.com计算机内功、JAVA底层、面试相关资料等更多精彩文章在公众号「小牛呼噜噜 」 经典的问题 形参&实参…

    Linux 2023年6月6日
    0135
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球