#!/bin/bash

# 定义备份文件保存路径
BACKUP_DIR="/path/to/backup/directory"
# 定义数据库名称
DATABASE_NAME="your_database_name"
# 定义备份文件名称格式
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="$BACKUP_DIR/$DATABASE_NAME-backup-$DATE.bak"
# 定义SQL Server的用户名和密码
USERNAME="your_username"
PASSWORD="your_password"

# 创建备份目录(如果不存在)
mkdir -p $BACKUP_DIR

# 执行备份命令
/opt/mssql-tools/bin/sqlcmd -S localhost -U $USERNAME -P $PASSWORD -Q "BACKUP DATABASE [$DATABASE_NAME] TO DISK = N'$BACKUP_FILE' WITH NOFORMAT, NOINIT, NAME = '$DATABASE_NAME-full-backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10"

# 检查备份是否成功
if [ $? -eq 0 ]; then
    echo "备份成功: $BACKUP_FILE"
else
    echo "备份失败" >&2
fi

路径和变量设置:根据实际情况修改BACKUP_DIR、DATABASE_NAME、USERNAME和PASSWORD。
SQL Server 命令行工具:确保已安装sqlcmd,通常位于/opt/mssql-tools/bin/。
权限:确保脚本具有执行权限,运行

chmod +x backup_script.sh

自动化:使用crontab定时执行备份。可以编辑crontab文件:

crontab -e

添加如下条目,每天凌晨2点执行备份:

0 2 * * * /path/to/backup_script.sh >> /path/to/backup/log.txt 2>&1

这个脚本会备份指定的SQL Server数据库,并保存在BACKUP_DIR中。可以根据实际情况调整备份时间和路径等配置。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐