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)

大家都在看

  • 路由黑洞和黑洞路由

    路由黑洞: 路由黑洞一般是在网络边界做汇总回程路由的时候产生的一种不太愿意出现的现象,就是汇总的时候有时会有一些网段并不在内网中存在,但是又包含在汇总后的网段中,如果在这个汇总的边…

    Linux 2023年6月14日
    0127
  • LVS+KeepAlived高可用部署架构

    1 构建高可用集群 1.1 什么是高可用集群 高可用集群(High Availability Cluster,简称HA Cluster),是指以减少服务中断时间为目的得服务器集群技…

    Linux 2023年6月13日
    098
  • [云原生]Kubernetes-实战入门(第4章)

    一、Namespace 二、Pod 三、Label 四、Deployment 五、Service 参考: Kubernetes(K8S) 入门进阶实战完整教程,黑马程序员K8S全套…

    Linux 2023年6月13日
    0132
  • win10安装redis

    下载地址:https://github.com/MicrosoftArchive/redis/releases 这个太慢了 https://github.com/ServiceSt…

    Linux 2023年5月28日
    0136
  • Docker安装及配置镜像加速

    Docker 支持 Mac Windows Linux 的三种安装 1、系统要求 官网提示如果要安装 Docker Engine, 需要一个CentOS 7 以及以上的稳定版本。 …

    Linux 2023年5月27日
    0123
  • kafka能做什么?kafka集群配置 (卡夫卡 大数据)

    什么是Kafka 官网介绍: 几个概念: 详细介绍 : 操作kafka: kafka集群 消息测试 问题检测 什么是Kafka 官网介绍: ApacheKafka®是一个分布式流媒…

    Linux 2023年6月7日
    0149
  • Linux基础学习(一)

    Linux发行版 以软件包格式:rpm:Red Hat Enterprise LinuxCentOSopenSUSEFedoradeb:DebianUbuntulinux mint…

    Linux 2023年5月27日
    096
  • CentOS 7安装jdk-mysql-nginx

    安装jdk 设置开机自启 重启systemctl Original: https://www.cnblogs.com/nianxue/p/16618805.htmlAuthor: …

    Linux 2023年6月6日
    089
  • ubuntu redis 集群配置

    1.下载并编译redis 去http://download.redis.io/releases/查看自己想要下载的redis,右键复制一下链接我的原始目录:/root wget h…

    Linux 2023年6月7日
    0121
  • 前端开发:如何正确地跨端

    导读:面对多种多样的跨端诉求,有哪些跨端方案?跨端的本质是什么?作为业务技术开发者,应该怎么做?本文分享阿里巴巴ICBU技术部在跨端开发上的一些思考,介绍了当前主流的跨端方案,以及…

    Linux 2023年6月8日
    086
  • BootstrapTreeView 实现懒加载和点击事件。

    BootstrapTreeView的js下载位置:https://github.com/patternfly/patternfly-bootstrap-treeview。(注意不是…

    Linux 2023年6月7日
    0122
  • linx命令之ln 软连接 硬链接

    ln(全称:link files)命令是一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。 当需要在不同的目录,用到相同的文件时;不需要在每一个需要的目录下…

    Linux 2023年5月27日
    0114
  • Cisco 7200 路由 PPPOE 拨号详解

    R1(config)#vpdn enable #启用vpdn虚拟专用拨号网络 R1(config)#interface dialer 1 #定义拨号器1 R1(config-if)…

    Linux 2023年6月6日
    0104
  • /dev/null文件的作用以及使用方法

    关于/dev/null,以及如何使用它 今天在看MIT的一个课程时,老师给的程序实例中有一个地方没弄明白: #!/bin/bash echo "Starting prog…

    Linux 2023年6月6日
    0120
  • redis的GEO实战 (RedisTemplate)

    geoadd 时间复杂度为O(log(N)) geoadd cityGeo 116.405285 39.904989 “北京”geoadd cityGeo …

    Linux 2023年5月28日
    0112
  • 幸运的袋子 附加动图演示!

    幸运的袋子_牛客题霸_牛客网 (nowcoder.com) 厄运的袋子 用到了深度遍历 递归回溯法 这里假设一个例子: 1 1 1 2 2 3 4 5 7 8 因为要确认是否辛运,…

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