使用脚本定时备份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
相关推荐
Bdygsl4 分钟前
MySQL(8)—— 事务
数据库·mysql
IvorySQL6 分钟前
直播回顾| PostgreSQL 18.3 x IvorySQL 5.3:开启 AI 数据库新纪元
数据库·postgresql·开源
编程之升级打怪10 分钟前
数据库的实时同步和异步同步
数据库
captain37626 分钟前
MySQL增删改查
数据库·mysql
IvorySQL36 分钟前
PostgreSQL 技术日报 (3月27日)|当 AI 开始自动创建数据库
数据库·postgresql·开源
芒果披萨40 分钟前
sql实操
数据库·sql·mysql
不剪发的Tony老师41 分钟前
FlowScope:一款注重隐私的SQL数据血缘分析工具
数据库·sql·数据血缘
风吹落叶325742 分钟前
redis 部署方式(分布式)
数据库·redis·分布式
机器学习之心1 小时前
风电预测数据集说明文档
数据库
夕除1 小时前
Mysql--09
数据库·mysql