linux定时备份数据库sql文件(表格、视图、存储过程,已保存的查询语句不会被备份)

创建一个脚本文件xxx.sh

为其设置全部权限chmod +777 xxx.sh

bash 复制代码
#!/bin/bash  

# 设置备份目录和文件名 
current_time=$(date "+%Y%m%d_%H%M%S")
backup_dir="/root/db_back/db"
backup_file="$backup_dir/db_ship_backup_$current_time.sql"
log_file="/usr/local/software/ship/dbbak/dblog.log"


# MySQL数据库连接参数  
db_host="xx.xx.xx.xx"
db_port="3306"
db_user="root"
db_password="xxxxxx"
db_name="xxxx"

# 创建备份目录(如果不存在)  
mkdir -p "$backup_dir"
# 提取文件的父目录
dir_path=$(dirname "$log_file")
# 使用mkdir -p创建父目录
mkdir -p "$dir_path"
# 使用touch创建文件
touch "$log_file"
#判断数据库是否在正常运行
mysqladmin -h "$db_host" -P "$db_port" -u $db_user -p$db_password ping
# 根据mysqladmin命令的退出状态判断MySQL服务器是否正常运行
if [ $? -eq 0 ]; then
    echo "MySQL服务器正在运行" >> $log_file
    # 使用mysqldump命令备份数据库
    mysqldump -u "$db_user" -p$db_password --routines --triggers "$db_name" > "$backup_file"
    # 检查备份是否成功  
    if [ $? -eq 0 ]; then
      echo "【$current_time】数据库备份成功!备份文件:$backup_file"  >> $log_file
    else
      echo "【$current_time】数据库备份失败!"  >> $log_file
    fi
else
    echo "【$current_time】MySQL服务器未运行或无法访问" >> $log_file

在定时文件中添加该定时任务(每天0点定时执行,执行结果打印在log文件中)
cretab -e
0 0 * * * /xxx.sh

使用crontab -l查看定时任务

相关推荐
吴声子夜歌2 分钟前
Linux命令——查找文件
linux·运维·学习
mounter6252 分钟前
Linux 内核 binfmt_misc 深度全景解析:历史、架构、安全
linux·安全·linux kernel·kernel
Aime_Perfect15 分钟前
sqlserver AlwaysOn(一)
数据库·sqlserver
HAYDENR17 分钟前
毛利率波动大可能是什么原因?毛利率变动怎么判断是否合理?
数据库
吴声子夜歌31 分钟前
Linux命令——归档与备份
linux·运维·备份·归档
fangjianj33 分钟前
Dell PowerEdge R930 物理服务器重装 Ubuntu Server 22.04 全流程实战记录
linux·服务器
fpcc34 分钟前
计算机原理—程序的具体执行流程
linux
HackTwoHub36 分钟前
BurpSuite2026.8专业(稳定版)下载Windows/Linux/Mac支持Java21以上(新增Burp AT智能体)
linux·运维·服务器·安全·macos·网络安全·自动化
晴天1639 分钟前
systemd 核心原理与实战-Day39
linux
大牧师1 小时前
MySQL 学习教程
数据库·sql·mysql·docker·node·全栈·后端数据