‌在 Fedora 系统下备份远程 Windows SQL Server 数据库的完整方案

一、环境准备与工具安装

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"

相关新闻

GitLab CVE-2025-2255 漏洞解决方案

GitLab CVE-2025-2255 漏洞解决方案

极狐GitLab 正式发布最新的安全补丁版本 17.10.1、17.9.3、17.8.6 ,共计修复 6 个安全漏洞(3 个高位、2 个中等以及 1 个低级别)。CVE-2025-2255 是其中一个漏洞。 GitLab 免费版用户,可以查看GitLab 升级指导服务 漏洞详情 标题…

2026/7/18 17:03:12 阅读更多 →
您需要了解的有关 Go、Rust 和 Zig 的信息

您需要了解的有关 Go、Rust 和 Zig 的信息

Go、Rust和Zig是过去十年中最受欢迎的三种新编程语言。以下是您需要了解的有关它们的最佳用途、功能以及发展方向的信息。 每种语言都有其生命周期。有时,它从一个相对狭窄的用例开始,然后脱离其范围;有时,它原本打算成为一种通用…

2026/7/15 18:54:14 阅读更多 →
c++ primer 阅读手记 第七章

c++ primer 阅读手记 第七章

1、定义在类内部的函数式隐式的inline函数; 2、常量成员函数 //使用const在类内部声明定义常量成员函数,bookNo:成员变量 std::string isbn() const { return bookNo; }常量成员函数不会修改类的成员变量,也不能调用任何非常量成员函数&…

2026/7/17 9:17:38 阅读更多 →
【langgraph 从入门到精通graphApi 篇】LangGraph 多 Schema 状态(MultiSchema)详解:一张图讲清「输入 / 输出 / 全局 / 私有」

【langgraph 从入门到精通graphApi 篇】LangGraph 多 Schema 状态(MultiSchema)详解:一张图讲清「输入 / 输出 / 全局 / 私有」

文章目录LangGraph 多 Schema 状态(MultiSchema)详解:一张图讲清「输入 / 输出 / 全局 / 私有」代码一、这个 Demo 解决什么问题二、四态全景(先建立直觉)三、核心代码逐段解析1) 输入状态:调用方只给 ques…

2026/7/19 21:05:50 阅读更多 →
基于YOLO算法的吸烟行为检测系统设计与优化

基于YOLO算法的吸烟行为检测系统设计与优化

1. 项目背景与核心价值在公共场所禁烟已成为全球共识的今天,如何高效识别违规吸烟行为一直是管理难点。传统人工巡查方式存在覆盖范围有限、响应滞后等问题。我们开发的这套基于YOLO系列算法的吸烟行为检测系统,通过计算机视觉技术实现了724小时无人值守…

2026/7/19 21:05:50 阅读更多 →
Android Handler与Thread原理及实战应用详解

Android Handler与Thread原理及实战应用详解

1. Handler与Thread基础概念解析在Android开发中,Handler和Thread是两个最基础却又最容易混淆的核心组件。很多开发者虽然能够使用它们完成基本功能,但对底层机制的理解往往停留在表面。让我们从系统架构的角度重新认识这对黄金搭档。Thread是Java中线程…

2026/7/19 21:05:50 阅读更多 →
74HC595芯片驱动数码管:原理与RT-Thread实现

74HC595芯片驱动数码管:原理与RT-Thread实现

1. 74HC595芯片深度解析与数码管驱动原理 在嵌入式开发中,74HC595是一款经典的串行输入/并行输出移位寄存器芯片,它通过3线串行接口(数据、时钟、锁存)控制8位并行输出,极大节省了MCU的GPIO资源。这款芯片在数码管驱动…

2026/7/19 21:05:50 阅读更多 →
Spring事件机制详解:原理、实现与实战应用

Spring事件机制详解:原理、实现与实战应用

1. Spring事件机制概述Spring事件机制是Spring框架基于观察者模式实现的核心功能之一,它通过事件发布与监听的方式实现组件间的解耦。在实际开发中,我们经常会遇到这样的场景:某个业务操作完成后需要触发多个后续处理,比如用户注册…

2026/7/19 21:04:48 阅读更多 →
C++与C语言核心差异解析:从编程范式到现代特性

C++与C语言核心差异解析:从编程范式到现代特性

1. 从C到C:不仅仅是“”那么简单很多刚接触编程的朋友,或者从C语言转向C的开发者,常常会有一个疑问:C不就是C语言的“升级版”或者“增强版”吗?毕竟名字里就带了个“”,看起来就像是C的增量更新。在实际工…

2026/7/19 21:03:33 阅读更多 →
鸿蒙 ArkTS 实战:Emoji Idiom Guess 从表情成语猜谜到交互闭环完整解析

鸿蒙 ArkTS 实战:Emoji Idiom Guess 从表情成语猜谜到交互闭环完整解析

鸿蒙 ArkTS 实战:Emoji Idiom Guess 从表情成语猜谜到交互闭环完整解析 前言 Emoji Idiom Guess 是一个基于鸿蒙 ArkTS 编写的单页互动应用,核心围绕 表情线索、答案输入、首字母提示和收藏关卡 展开。项目没有依赖复杂服务端,也没有把逻辑…

2026/7/19 0:00:03 阅读更多 →
Unity与Python本地通信:基于Flask的跨语言数据交换实战

Unity与Python本地通信:基于Flask的跨语言数据交换实战

1. 项目概述:为什么我们需要一个本地通信服务器?在游戏开发、数字孪生、仿真训练等众多领域,Unity作为强大的实时3D内容创作平台,其核心逻辑通常由C#驱动。然而,当我们需要进行复杂的数据分析、机器学习推理、科学计算…

2026/7/19 0:00:04 阅读更多 →
科研课题设计全流程:从选题到成果落地的实战指南

科研课题设计全流程:从选题到成果落地的实战指南

1. 课题设计全流程解析:从选题到成果落地的实战指南课题设计是科研工作者、高校师生以及企业研发人员日常工作中的核心环节。一个优秀的课题设计不仅决定了研究的方向和质量,更直接影响最终成果的学术价值和应用前景。作为在科研一线摸爬滚打多年的从业者…

2026/7/19 0:00:04 阅读更多 →
鸿蒙 ArkTS 实战:Emoji Idiom Guess 从表情成语猜谜到交互闭环完整解析

鸿蒙 ArkTS 实战:Emoji Idiom Guess 从表情成语猜谜到交互闭环完整解析

鸿蒙 ArkTS 实战:Emoji Idiom Guess 从表情成语猜谜到交互闭环完整解析 前言 Emoji Idiom Guess 是一个基于鸿蒙 ArkTS 编写的单页互动应用,核心围绕 表情线索、答案输入、首字母提示和收藏关卡 展开。项目没有依赖复杂服务端,也没有把逻辑…

2026/7/19 0:00:03 阅读更多 →
Unity与Python本地通信:基于Flask的跨语言数据交换实战

Unity与Python本地通信:基于Flask的跨语言数据交换实战

1. 项目概述:为什么我们需要一个本地通信服务器?在游戏开发、数字孪生、仿真训练等众多领域,Unity作为强大的实时3D内容创作平台,其核心逻辑通常由C#驱动。然而,当我们需要进行复杂的数据分析、机器学习推理、科学计算…

2026/7/19 0:00:04 阅读更多 →
科研课题设计全流程:从选题到成果落地的实战指南

科研课题设计全流程:从选题到成果落地的实战指南

1. 课题设计全流程解析:从选题到成果落地的实战指南课题设计是科研工作者、高校师生以及企业研发人员日常工作中的核心环节。一个优秀的课题设计不仅决定了研究的方向和质量,更直接影响最终成果的学术价值和应用前景。作为在科研一线摸爬滚打多年的从业者…

2026/7/19 0:00:04 阅读更多 →
ai agent框架spring ai/alibaba 源码原理分析(六) agent和组件

ai agent框架spring ai/alibaba 源码原理分析(六) agent和组件

简介 saa是java的ai agent框架,本系列将深入剖析 Spring AI Alibaba 的源码实现与核心原理,不仅可以指导agent的开发,更可以改造框架,增加新特性 系列内容: 系列(一) 架构 完成 系列(三) 调用 I 工具 完成 II M…

2026/7/19 0:01:20 阅读更多 →
终极指南:如何用Steam-auto-crack实现Steam游戏自动破解

终极指南:如何用Steam-auto-crack实现Steam游戏自动破解

终极指南:如何用Steam-auto-crack实现Steam游戏自动破解 【免费下载链接】Steam-auto-crack Steam Game Automatic Cracker 项目地址: https://gitcode.com/gh_mirrors/st/Steam-auto-crack Steam-auto-crack是一款功能强大的Steam游戏自动破解工具&#xff…

2026/7/19 9:10:31 阅读更多 →
移动端游戏功耗测试实战:电流、功率、亮度和场景对比

移动端游戏功耗测试实战:电流、功率、亮度和场景对比

移动端游戏功耗测试:先控制变量,再比较优化是否真的省电 摘要:功耗测试最容易犯的错误,是拿两次不同温度、不同亮度、不同场景的平均功率直接比较。本文给出一套可复现的游戏功耗测试方法,覆盖引擎特性验证、版本回归和黑盒体验测试,并说明如何把功耗与帧率、温控、CPU/G…

2026/7/19 19:29:48 阅读更多 →