使用脚本定时备份MySql数据库文件

如果mysql不在环境变量中,请先将mysql放入环境变量

bash 复制代码
#将mysql添加进环境变量中
export PATH=$PATH:/usr/local/mysql/bin/

#重新加载配置文件
source /etc/profile

新建一个脚本

bash 复制代码
touch backup_all_databases.sh

脚本内容:

bash 复制代码
#!/bin/bash  
  
# MySQL登录信息  
USER="root"  
PASSWORD="123456"  
  
# 备份目录  
BACKUP_DIR="/home/mysqlbak/$(date +%Y%m%d)"  
  
# 创建备份目录  
mkdir -p "$BACKUP_DIR"  
  
# 获取所有数据库名  
DATABASES=$(mysql -u"$USER" -p"$PASSWORD" -Nse 'show databases')  
  
# 遍历所有数据库进行备份  
for DB in $DATABASES; do  
    # 跳过系统数据库  
    if [[ "$DB" == "information_schema" || "$DB" == "mysql" || "$DB" == "performance_schema" || "$DB" == "sys" ]]; then  
        continue  
    fi  
      
    # 生成备份文件名  
    BACKUP_FILE="$BACKUP_DIR/${DB}_$(date +%Y%m%d%H%M%S).sql"  
      
    # 执行mysqldump命令进行备份  
    mysqldump -u"$USER" -p"$PASSWORD" "$DB" > "$BACKUP_FILE"  
      
    # 检查备份是否成功  
    if [ $? -eq 0 ]; then  
        echo "Database $DB backed up to $BACKUP_FILE"  
    else  
        echo "Error backing up database $DB"  
    fi  
done  
  
echo "All databases backed up to $BACKUP_DIR"

需要给这个脚本文件执行权限:

bash 复制代码
chmod +x backup_all_databases.sh
复制代码
需要给这个脚本文件执行权限:
bash 复制代码
./backup_all_databases.sh

自动执行

bash 复制代码
vi /etc/crontab

#每天凌晨1点执行
0 1 * * * bash /home/backup_all_databases.sh

查看crontab服务状态:

bash 复制代码
service crond status

手动启动crontab服务:

bash 复制代码
service crond start

查看crontab服务是否已设置为开机启动,执行命令:

bash 复制代码
ntsysv

加入开机自动启动:

bash 复制代码
chkconfig --level 35 crond on
相关推荐
BTU_YC41 分钟前
Neo4j查询计划完全指南:读懂数据库的“执行蓝图“
数据库·neo4j
非极限码农1 小时前
Neo4j图数据库上手指南
大数据·数据库·数据分析·neo4j
mit6.8241 小时前
[C# starter-kit] 命令/查询职责分离CQRS | MediatR |
java·数据库·c#
苏打水com2 小时前
数据库进阶实战:从性能优化到分布式架构的核心突破
数据库·后端
shan~~3 小时前
linux达梦数据库操作
linux·数据库·chrome
武文斌773 小时前
项目学习总结:LVGL图形参数动态变化、开发板的GDB调试、sqlite3移植、MQTT协议、心跳包
linux·开发语言·网络·arm开发·数据库·嵌入式硬件·学习
CoderIsArt3 小时前
SQLite架构
数据库·sqlite
lixora4 小时前
银河麒麟高级服务器操作系统(ADM64 版)V10(SP1)搭建 Oracle 19c RAC
数据库
郝学胜-神的一滴4 小时前
使用Linux的read和write系统函数操作文件
linux·服务器·开发语言·数据库·c++·程序人生·软件工程
哲Zheᗜe༘4 小时前
了解学习MySQL数据库基础
数据库·学习·mysql