使用脚本定时备份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
相关推荐
飞翔的佩奇1 小时前
Java项目: 基于SpringBoot+mybatis+maven+mysql实现的疾病防控综合管理系统(含源码+数据库+毕业论文)
java·数据库·spring boot·mysql·spring·毕业设计·疾病防控
Anna_Tong1 小时前
DataWorks 与传统数据治理方案相比有哪些优势?
大数据·数据库·阿里云·云计算·数据安全·dataworks
摸鱼仙人~3 小时前
快速上手mybatis教程
数据库·oracle·tomcat
aiweker3 小时前
Python处理数据库:MySQL与SQLite详解
数据库·python
翎野君6 小时前
在业务高峰期更新 PostgreSQL 表结构(DDL)导致性能问题
数据库·postgresql
想做富婆6 小时前
oracle:索引(B树索引,位图索引,分区索引,主键索引,唯一索引,联合索引/组合索引,函数索引)
数据库·oracle·索引
yours_Gabriel7 小时前
【Redis_1】初识Redis
数据库·redis·缓存
萝卜青今天也要开心8 小时前
读书笔记-《Redis设计与实现》(二)单机数据库实现(上)
java·数据库·redis·学习·缓存
@Java小牛马9 小时前
Redis真的是单线程的吗?
数据库·redis·缓存·reactor·单线程·多线程
biubiubiu07069 小时前
Redis缓存穿透,雪崩,击穿
数据库·redis·缓存