这篇文章主要介绍了Linux下定时自动备份Docker中所有SqlServer数据库 ,编写shell文件给出一个备份的范例,在Linux添加定时任务,通过下列命令来检测并安装这个服务,需要的朋友可以参考下
准备工作
- 一台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
到此这篇关于Linux下定时自动备份Docker中所有SqlServer数据库 的文章就介绍到这了,更多相关Docker SqlServer定时自动备份内容请搜索编程学习网以前的文章希望大家以后多多支持编程学习网!
沃梦达教程
本文标题为:Linux下定时自动备份Docker中所有SqlServer数据库的脚本
基础教程推荐
猜你喜欢
- Apache服务器配置攻略3 2022-09-01
- linux之conda环境安装全过程 2023-07-11
- apache和nginx结合使用 2023-09-10
- IIS 6 的 PHP 最佳配置方法 2022-09-01
- 实战Nginx_取代Apache的高性能Web服务器 2023-09-29
- Apache Hudi数据布局黑科技降低一半查询时间 2022-10-06
- nginx.conf(centos7 1.14)主配置文件修改 2023-09-23
- centos 7 安装及配置zabbix agent 2023-09-24
- 服务器添加git钩子的步骤 2022-12-12
- linux下安装apache与php;Apache+PHP+MySQL配置攻略 2023-08-07