linux sqlserver数据定时备份 sh脚本

22 阅读1分钟

格式这种转换命令 dos2unix /var/opt/mysql_backup.sh

#!/bin/bash

MySQL 数据库配置

DB_USER="sa" # 修正为 MySQL 用户名 DB_PASSWORD="123qwe..." DB_NAME="DXFB_GZ"

备份目录

BACKUP_DIR="/var/opt"

检查 mysqldump 是否存在

if ! command -v mysqldump &> /dev/null; then echo "错误:未找到 mysqldump 工具,请先安装 MySQL 客户端。" exit 1 fi

创建备份目录(如果不存在)

mkdir -p "BACKUP_DIR" || { echo "错误:无法创建备份目录 BACKUP_DIR"; exit 1; }

获取当前日期时间

TIMESTAMP=(date+BACKUPFILE="(date +%Y%m%d%H%M%S) BACKUP_FILE="DB_NAME-TIMESTAMP.bak"FULLPATH="TIMESTAMP.bak" FULL_PATH="BACKUP_DIR/$BACKUP_FILE"

执行备份

echo "开始备份数据库 DBNAME..."sqlcmdSlocalhostU"DB_NAME..." sqlcmd -S localhost -U "DB_USER" -P "DBPASSWORD"d"DB_PASSWORD" -d "DB_NAME" | gzip > "$FULL_PATH"

检查备份是否成功

if [ ? -eq 0 ] && [ -f "FULL_PATH" ] && [ -s "FULLPATH"];thenecho"备份成功:FULL_PATH" ]; then echo "备份成功:FULL_PATH" else echo "备份失败!请检查账号密码、数据库名或权限。" # 清理可能生成的空文件 rm -f "$FULL_PATH" exit 1 fi