免费资源网 – https://freexyz.cn/
目录准备工作编写Shell文件在Linux添加定时任务crontab格式介绍
准备工作
一台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://freexyz.cn/
© 版权声明
THE END
暂无评论内容