linux自动备份mysql数据库

备份脚本记录一下–(单个数据库)

2021-11-15

1.新建shell脚本:vim **.sh

#!/bin/bashCKUP=/data/backup/db

#获取当前时间
DATETIME=$(date +%Y_%m_%d_%H%M%S)
#可以输出变量调试
echo $DATETIME

echo "========开始备份========="
echo "========备份路径 $BACKUP/$DATETIME.tar.gz========="

#主机
HOST=localhost

#用户名
DB_USER=root

#密码
DB_PASSWOLD=123456

#备份数据库名
DATABASE=aeaicrm

#创建备份路径,如果存在就使用,否则就创建
[ ! -d "$BACKUP/$DATETIME" ] && mkdir -p "$BACKUP/$DATETIME"

#执行MySQL的备份数据库指令
mysqldump $DATABASE | gzip > $BACKUP/$DATETIME/$DATETIME.sql.gz

#打包备份文件
cd $BACKUP
tar -zcvf $DATETIME.tar.gz $DATETIME

#删除临时文件
rm -rf $BACKUP/$DATETIME

#删除十天前的备份文件/【-exec rm -rf {} \;】--删除找到的文件
find $BACKUP -mtime +7 -name "*.tar.gz" -exec rm -rf {} \;

echo "=========备份文件成功========="
  1. 创建任务计划:

crontab -e

linux自动备份mysql数据库

3.问题记录

我的报错信息:

linux自动备份mysql数据库

解决:

修改配置文件my.cnf

添加:

[mysqldump]

User=root

Password=mypassword

保存退出.

Shell脚本不指定用户名跟密码:

linux自动备份mysql数据库

可能有更好的解决办法….

更新shell脚本—————(多个数据库)

2022-03-16

#!/bin/bash
#MySQL用户
user=test
#MySQL密码
userPWD=youpassword
需要定期备份的数据表的列表<details><summary>*<font color='gray'>[En]</font>*</summary>*<font color='gray'>List of data tables that need to be backed up regularly</font>*</details>
dbNames=(aeaicrm activiti chronicdisease lis oa)
每个备份数据都存储在该日期创建的文件夹中,同时删除过期的备份。<details><summary>*<font color='gray'>[En]</font>*</summary>*<font color='gray'>Each backup data is stored in a folder created on the date, while the expired backup is deleted.</font>*</details>
此处以保留1个月的备份数据为例
DATE=date -d "now" +%Y%m%d%H
ODATE=date -d "-1 month" +%Y%m%d%H
newdir=/home/backup_mysql/$DATE
olddir=/home/backup_mysql/$ODATE
删除过期备份数据
if [ -d $olddir ];
  then
    rm -rf $olddir
fi
创建新备份文件夹
mkdir $newdir
备份备份数据库列表中的所有数据库<details><summary>*<font color='gray'>[En]</font>*</summary>*<font color='gray'>Back up all databases in the backup database list</font>*</details>
for dbName in ${dbNames[*]}
do
  dumpFile=$dbName-$DATE.sql.gz
  mysqldump -u$user -p$userPWD $dbName | gzip > $newdir/$dumpFile
done

==============================分割线==========================================

mysqldump相关:

Mysqldump 命令只导出表结构或数据或数据和结构的方法

1. 备份数据库

mysqldump –opt -d 数据库名 -u root -p > xxx.sql

mysqldump DB_NAME >数据库备份名

mysqldump -A -uUSER_NAME -pPASSWORD DB_NAME>数据库备份名

mysqldump -d -A –add-drop-table -uroot -p >xxx.sql

2. 导出结构不导出数据

mysqldump –opt -d 数据库名 -u root -p > xxx.sql

3. 导出数据不导出结构

mysqldump -t 数据库名 -uroot -p > xxx.sql

4. 导出数据和表结构

mysqldump -uroot -p 数据库名 > xxx.sql

5. 导出特定表的结构

mysqldump -uroot -p -B 数据库名 –table 表名 > xxx.sql

6. 导入数据

mysqldump导出的是完整的SQL语句,所以用mysql客户程序就能把数据导入.

mysql 数据库名 < 文件名

或者

source /tmp/xxx.sql

Original: https://www.cnblogs.com/yaodun55/p/15555435.html
Author: 少年Dev
Title: linux自动备份mysql数据库

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/524363/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 【XML】学习笔记第四章-schema

    Schema 概述 作用 与DTD相比Schema的优势 基础命名空间: 模式 引用方法 通过xsi:noNamespaceSchemaLocation引入 通过xsi:shema…

    Linux 2023年6月14日
    0118
  • 回顾乐信集团工作经历

    2019年入职乐信用户增长部门,负责开发开放平台的需求和合作方技术支持。乐信金融开放平台提供了金融业务API以及配套SDK等组件,为合作商户的产品赋予分期支付和小额贷款能力,子系统…

    Linux 2023年6月6日
    0108
  • Golang 实现 Redis(9): 使用GeoHash 搜索附近的人

    本文是使用 golang 实现 redis 系列的第九篇,主要介绍如何使用 GeoHash 实现搜索附近的人。 搜索附近的POI是一个非常常见的功能,它的技术难点在于地理位置是二维…

    Linux 2023年5月28日
    0130
  • Windows10公钥远程连接Linux服务器

    前言 一、环境准备 二、使用步骤 – 1.服务器安装并配置OpenSSH 2. 本地生成密钥 3. 服务器ssh添加密钥 三 总结 前言 使用公钥远程登陆Linux十分…

    Linux 2023年6月7日
    0115
  • shell 同时执行多任务下载视频

    本文为博主原创,转载请注明出处: shell 脚本不支持多线程,但我们需要用shell 脚本同时跑多个任务时怎么让这些任务并发同时进行,可以采用在每个任务 后面 添加一个 &amp…

    Linux 2023年6月14日
    0126
  • Java基础 | Stream流原理与用法总结

    Stream简化元素计算; 一、接口设计 从Java1.8开始提出了Stream流的概念,侧重对于源数据计算能力的封装,并且支持序列与并行两种操作方式;依旧先看核心接口的设计: B…

    Linux 2023年6月13日
    0128
  • 使用ssh连接到centos7中docker容器

    任务: 使用ssh连接到centos7中docker容器 实验步骤: 如图,首先用真机ping容器(容器事先安装了常用的软件,具体步骤请看上一篇) 然后用容器ping真机以及外网,…

    Linux 2023年5月27日
    0105
  • linux系统(centos)下su和sudo命令的区别

    linux系统(centos)下su和sudo命令的区别 su命令:switch user缩写,切换用户。用于 切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码…

    Linux 2023年5月27日
    0125
  • Linux 用户密码不能设置问题

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月7日
    0144
  • 通过示例学习PYTORCH

    核心是:PyTorch提供了两个主要的特性: 一个n维的Tensor,与Numpy相似但可以在GPU上运行 构建和训练神经网络的自动微分 我们将使用一个三阶多项式拟合 (y=sin…

    Linux 2023年6月14日
    0122
  • Python3中datetime不同时区转换介绍与踩坑

    最近的项目需要根据用户所属时区制定一些特定策略,学习、应用了若干python3的时区转换相关知识,这里整理一部分记录下来。 下面涉及的几个概念及知识点: GMT时间:Greenwi…

    Linux 2023年6月6日
    0109
  • redis

    redis 慢 开启 AOF 1、多加服务器 2、增加写的能力 +ssdb Original: https://www.cnblogs.com/y896926473/p/96929…

    Linux 2023年5月28日
    0101
  • C语言之初认识

    1.低级语言可以简明说:非常接近底层语言 2.可移值性:可以嵌入各大系统中 3.简单性:语法简单,语法规则没有太大限制,c语言的代码要求比较随意,一行可以写入多行语句,每条语句写完…

    Linux 2023年6月8日
    0101
  • bash初始化文件详解

    本文使用的环境: Bash 4.2.46 bash启动时会执行一系列脚本, 具体要执行哪些启动文件, 这和bash的类型有关: 是否为交互式(interactive)的shell,…

    Linux 2023年6月7日
    090
  • ffmpeg 格式转换

    1.学前知识 1.1视频码率值 码率公式: 码率(kbps)=文件大小(KB)*8/时间(秒) 所以码率和视频文件大小成正比的,不过码率超过一定值后,人眼是看不出效果的. 接下来,…

    Linux 2023年6月7日
    0146
  • 附031.Kubernetes_v1.20.4高可用部署架构二

    kubeadm介绍 kubeadm概述 参考附003.Kubeadm部署Kubernetes。 kubeadm功能 参考附003.Kubeadm部署Kubernetes。 本方案描…

    Linux 2023年6月13日
    095
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球