当前位置: 首页 > news >正文

Linux上通过mysqldump命令实现自动备份

Linux上通过mysqldump命令实现自动备份

直接上代码

#!/bin/bash
mysql_user="root"
mysql_host="localhost"
mysql_port="3306"
mysql_charset="utf8mb4"backup_location=/home/mysql/mysql_back/sql
# 是否开始自动删除过期文件,过期时间10天
expire_backup_delete="ON"
expire_days=10backup_time=$(date +%Y%m%d%H%M)
backup_dir=$backup_locationwelcome_msg="Welcome to use MySQL backup tools!"
# 数据库密码文件
mysql_defaults_file="/home/mysql/mysql_back/.my.cnf"# 检查MySQL实例是否正常运行
mysql_ps=$(ps -ef | grep mysql | wc -l)
mysql_listen=$(netstat -an | grep LISTEN | grep $mysql_port | wc -l)if [ $mysql_ps -eq 0 ] || [ $mysql_listen -eq 0 ]; thenecho "ERROR: MySQL is not running! Backup stopped!"exit 1
elseecho $welcome_msg
fi# 开始备份
/usr/local/mysql/bin/mysqldump --defaults-extra-file=$mysql_defaults_file --add-drop-table -h $mysql_host -P $mysql_port --default-character-set=$mysql_charset --hex-blob dflow_client --single-transaction --routines --events | gzip > $backup_dir/dflow_client-$backup_time.sql.gz
flag=$?
if [ $flag -eq 0 ]; thenecho "Database backup success. Backup saved to $backup_dir/dflow-$backup_time.sql.gz"
elseecho "Database backup failed!"exit 1
fi# 删除过期数据
if [ "$expire_backup_delete" == "ON" ] && [ "$backup_location" != "" ]; thenexpired_file_prefix="dflow-$(date -d "-$expire_days days" +%Y%m%d)"find $backup_location/ -type f -name "$expired_file_prefix*.sql.gz" -deleteecho "Expired backup data deleted!"
fi

说明:
文件备份输出目录:backup_location=/home/mysql/mysql_back/sql
数据库信息文件: mysql_defaults_file=“/home/mysql/mysql_back/.my.cnf”

my.cnf文件
[client]
user=root
password=1223
设置定时任务
#查看任务
crontab -l
#进入任务编辑
crontab -e
#设置凌晨一点执行,并且输出日志
00 01 * * * sh /home/mysql/mysql_back/dflow_bak.sh >> /home/mysql/mysql_back/crontabLog/info.log 2>>/home/mysql/mysql_back/crontabLog/err.log

在这里插入图片描述
在这里插入图片描述

脚本目录:/home/mysql/mysql_back
日志输出目录:/home/mysql/mysql_back/crontabLog

这个备份一个数据库,备份多个使用这个

/usr/local/mysql/bin/mysqldump --defaults-extra-file=$mysql_defaults_file --add-drop-table -h $mysql_host -P $mysql_port --default-character-set=$mysql_charset --hex-blob --single-transaction --routines --events --databases db1 db2 db3 | gzip > $backup_dir/databases-$backup_time.sql.gz

db1 db2 db3 是数据库名称

相关命令说明: mysqldump指令

http://www.lryc.cn/news/191559.html

相关文章:

  • v-model与.sync的区别
  • Linux---进程(1)
  • C# U2Net Portrait 跨界肖像画
  • 华为云云耀云服务器L实例评测|华为云耀云服务器L实例评测包管理工具安装软件(六)
  • 在PYTHON中用zlib模块对文本进行压缩,写入图片的EXIF中,后在C#中读取EXIF并用SharpZipLib进行解压获取压缩前文本
  • centos / oracle Linux 常用运维命令讲解
  • EMNLP 2023 录用论文公布,速看NLP各领域最新SOTA方案
  • 互联网Java工程师面试题·Java 并发编程篇·第三弹
  • mac jdk的环境变量路径,到底在哪里?
  • PyQt5 PyQt6 Designer 的安装
  • 数据库:Hive转Presto(四)
  • 16基于otsuf方法的图像分割,程序已调通,可更换自己的图片进行分割,程序具有详细的代码注释,可轻松掌握。基于MATLAB平台,需要直接拍下。
  • 2、使用阿里云镜像加速器提升Docker的资源下载速度
  • 贴片电容材质的区别与电容的主要作用
  • flink1.15 savepoint 超时报错 java.util.concurrent.TimeoutException
  • 并发编程——1.java内存图及相关内容
  • Android studio安装详细教程
  • Jetson Orin NX 开发指南(7): EGO-Swarm 的编译与运行
  • nginx的重定向
  • 理解Go中的数组(Array)和切片(Slice)
  • 计算机毕业设计选什么题目好?springboot 高校学生综合测评管理系统
  • 在liunx下读取串口的数据
  • Python中使用IDLE调试程序
  • 发个地区和对应的价格方案
  • 启动Java应用的黑魔法:初始化性能解密@PostConstrut,InitialzingBean,init-method,BeanPostProcessor
  • STM32-C语言结构体地址
  • Go HTTP 调用(下)
  • mysql5.7获取json数组中的某个对象
  • PTE考试解析
  • UE4和C++ 开发-UE4怎么删除C++类