一、环境准备与工具安装
1. 安装 Microsoft SQL Server 命令行工具
Fedora 需安装 mssql-tools
和 ODBC 驱动:
# 添加 Microsoft 仓库
sudo curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/8/prod.repo# 安装工具包
sudo dnf install -y mssql-tools unixODBC-devel# 添加工具路径到环境变量
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
2. 验证网络连通性
确保 Fedora 可以访问 SQL Server 的端口:
nc -zv 192.168.1.29 1433
# 若输出 "succeeded!" 表示连接正常
二、备份脚本编写
1. 创建备份脚本 sql_backup.sh
#!/bin/bash# 配置参数
SERVER="192.168.1.29,1433" # SQL Server 地址和端口
USER="sa" # 用户名
PASSWORD="Kl.2024erp" # 密码
DATABASES=("SMDB_001_2024" "SMIS") # 数据库列表
BACKUP_DIR="/opt/sql_backups" # Fedora本地备份目录
DATE=$(date +"%Y%m%d") # 当前日期(格式:20231001)# 创建本地备份目录(如果不存在)
mkdir -p "$BACKUP_DIR"# 循环备份每个数据库
for DB in "${DATABASES[@]}"; do# 定义备份文件名(含日期)BACKUP_FILE="${BACKUP_DIR}/${DB}_${DATE}.bak"# 执行备份命令echo "正在备份数据库: $DB ..."sqlcmd -S "$SERVER" -U "$USER" -P "$PASSWORD" -Q "BACKUP DATABASE [$DB] TO DISK='$BACKUP_FILE' WITH FORMAT, COMPRESSION"# 检查备份结果if [ $? -eq 0 ]; thenecho "成功: 数据库 $DB 已备份到 $BACKUP_FILE"elseecho "错误: 数据库 $DB 备份失败!"exit 1fi
doneecho "所有数据库备份完成!"
2. 赋予脚本执行权限
chmod +x sql_backup.sh
三、执行备份
1. 手动运行脚本
./sql_backup.sh
2. 预期输出
正在备份数据库: SMDB_001_2024 ...
成功: 数据库 SMDB_001_2024 已备份到 /opt/sql_backups/SMDB_001_2024_20231001.bak
正在备份数据库: SMIS ...
成功: 数据库 SMIS 已备份到 /opt/sql_backups/SMIS_20231001.bak
所有数据库备份完成!
2. 修改脚本的备份路径
将 BACKUP_DIR
改为挂载点:
BACKUP_DIR="/mnt/sql_backup"