Linux 下自动化之路:达梦数据库定期备份并推送至 GitLab 全攻略

目录

环境准备

[生成SSH 密钥对](#生成SSH 密钥对)

数据库备份并推送到gitlab脚本

设置定时任务


环境准备

服务器要有安装达梦数据库(达梦安装这里就不示例了),git

安装Git

1、首先,确保包列表是最新的,运行以下命令:

bash 复制代码
sudo yum update

2、安装Git包,运行以下命令:

bash 复制代码
sudo yum install git

3、安装完成后,你可以通过运行以下命令来检查Git版本,确认安装成功:

bash 复制代码
git --version

生成SSH 密钥对

详情请看

Linux服务器生成SSH 密钥对与 GitLab 仓库进行交互

这种方式以更安全地进行代码的版本控制和管理操作,可以防止密码泄露风险

数据库备份并推送到gitlab脚本

bash 复制代码
#!/bin/bash

# DM8数据库连接信息
DB_USER="SYSDBA"
DB_PASSWORD="SYSDBA"
DB_HOST="127.0.0.1"
DB_PORT="5236"
# 导出多个模式使用号隔开
DB_SCHEMAS="user"

# dexp 工具路径
DMDBMS_PATH="/home/dmdba/dmdbms/bin"

# 备份文件保存路径和文件名
BACKUP_DIR="/data/dm8_back"
BACKUP_FILE="${BACKUP_DIR}/dm8_backup_$(date +%Y%m%d%H%M%S).dmp"
BACKUP_LOG_FILE="${BACKUP_DIR}/dm8_backup_$(date +%Y%m%d%H%M%S).log"

# GitLab仓库相关信息
GITLAB_REPO_URL="git@127.0.0.1:implcenter/project/test/database.git"
GITLAB_BRANCH="master"

# 执行数据库备份
echo "开始备份DM8数据库..."

# 设置库文件的搜索路径
export LD_LIBRARY_PATH=$DMDBMS_PATH:$LD_LIBRARY_PATH

# 使用 dexp 命令进行逻辑备份,使用变量 $DEXP_PATH
$DMDBMS_PATH/dexp $DB_USER/$DB_PASSWORD@$DB_HOST:$DB_PORT SCHEMAS=$DB_SCHEMAS FILE=$BACKUP_FILE LOG=$BACKUP_LOG_FILE DIRECTORY=Y FULL=Y


# 检查备份命令是否成功
if [ $? -eq 0 ]; then
    echo "数据库备份成功,备份文件:${BACKUP_FILE}"
else
    echo "数据库备份失败,请检查错误信息。"
    exit 1
fi

# 进入备份文件所在目录
cd "${BACKUP_DIR}" || exit 1

git init || echo "git初始化失败"

# 配置 Git 用户信息(如果还未配置)
git config --global user.name "xx"
git config --global user.email "122312@163.com"

# 检查本地是否存在分支,如果不存在则创建并关联远程分支
if [! -z "$(git branch -a | grep remotes/origin/${GITLAB_BRANCH})" ] && [! -z "$(git branch | grep ${GITLAB_BRANCH})" ]; then
    echo "本地已存在与远程对应的分支,继续推送。"
else
    echo "本地不存在与远程对应的分支,创建并关联。"
    git checkout -b "${GITLAB_BRANCH}" "origin/${GITLAB_BRANCH}"
fi

# 添加备份文件到 Git 仓库
echo "将备份文件添加到GitLab仓库..."
git remote add origin "$GITLAB_REPO_URL"
git pull remote "$GITLAB_BRANCH"
git add "${BACKUP_FILE}"

# 提交备份文件到 Git 仓库
git commit -m "备份文件上传:$(date +%Y%m%d%H%M%S)"

# 推送备份文件到 GitLab 仓库
echo "推送备份文件到GitLab仓库..."
git push origin $GITLAB_BRANCH --force

# 检查推送命令是否成功
if [ $? -eq 0 ]; then
    echo "备份文件成功上传到GitLab仓库。"
else
    echo "备份文件上传到GitLab仓库失败,请检查错误信息。"
    exit 1
fi

修改变量信息,将脚本保存到服务器**/data/dm8_back/backDatabase.sh**

设置定时任务

1、编辑crontab文件

bash 复制代码
crontab -e

2、添加crontab任务

文件中添加一行(每个月的 1 号,0 点 0 分执行一次)

bash 复制代码
0 0 1 * * /bin/bash /data/dm8-back/backDatabase.sh

3、查看crontab任务列表

bash 复制代码
crontab -l

完成!!

相关推荐
A小辣椒2 天前
TShark:Wireshark CLI 功能
linux
A小辣椒2 天前
TShark:基础知识
linux
AlfredZhao2 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao3 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334663 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪3 天前
linux 拷贝文件或目录到指定的位置
linux
摇滚侠4 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush44 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5204 天前
Linux 11 动态监控指令top
linux
不会C语言的男孩4 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言