使用脚本定时备份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
相关推荐
JQLvopkk14 分钟前
C# 轻量级工业温湿度监控系统(含数据库与源码)
开发语言·数据库·c#
devmoon1 小时前
在 Polkadot Runtime 中添加多个 Pallet 实例实战指南
java·开发语言·数据库·web3·区块链·波卡
认真的薛薛2 小时前
数据库-sql语句
数据库·sql·oracle
爱学英语的程序员2 小时前
面试官:你了解过哪些数据库?
java·数据库·spring boot·sql·mysql·mybatis
·云扬·3 小时前
MySQL Redo Log落盘机制深度解析
数据库·mysql
用户982863025683 小时前
pg内核实现细节
数据库
飞升不如收破烂~3 小时前
Redis 分布式锁+接口幂等性使用+当下流行的限流方案「落地实操」+用户连续点击两下按钮的解决方案自用总结
数据库·redis·分布式
workflower3 小时前
业务需求-假设场景
java·数据库·测试用例·集成测试·需求分析·模块测试·软件需求
亓才孓3 小时前
[JDBC]基于三层架构和MVC架构的JDBCTools
数据库
IT邦德4 小时前
RPM包快速安装Oracle26ai
数据库·oracle