Linux实现定时备份MySQL数据库并删除30天前的备份文件

下面我就为您讲解如何在Linux系统中实现定时备份MySQL数据库并删除30天前的备份文件的完整攻略。

环境准备

  • 系统:Ubuntu 18.04
  • MySQL版本:5.7.25
  • 备份工具:mysqldump

备份MySQL数据库

  1. 安装mysqldump

首先需要安装mysqldump,mysqldump可用于备份MySQL数据库

sudo apt-get install mysql-client
  1. 编写备份脚本

进入备份存放目录并创建备份脚本

cd /home/user/backups
touch backup.sh

使用编辑器编辑备份脚本,添加以下内容:

#!/bin/bash

# MySQL数据库配置
DB_user="root"
DB_password="password"
DB_name="database_name"

# 备份时间
backup_time=$(date +%Y%m%d%H%M%S)

# 备份文件名
backup_file="${DB_name}_backup_${backup_time}.sql"

# 备份MySQL
mysqldump -u${DB_user} -p${DB_password} ${DB_name} > ${backup_file}
  1. 运行备份脚本

在运行备份脚本之前,需要确保该脚本具有可执行权限。

使用以下命令赋予备份脚本权限:

chmod +x backup.sh

运行脚本进行备份:

./backup.sh

运行成功后备份文件将会保存到指定目录下。

删除30天前的备份文件

  1. 安装定时任务管理工具cron

在Ubuntu中,可使用以下命令进行安装:

sudo apt-get install cron
  1. 创建定时任务

使用以下命令编辑定时任务:

crontab -e

如果是第一次编辑,系统会提示选择编辑器,默认选择vi,敲击回车进入编辑模式。在编辑器中添加以下内容来设置定时任务:

0 0 */3 * * find /home/user/backups -type f -mtime +30 -name "*.sql" -exec rm -rf {} \;

这个定时任务的含义是每隔3天在0点0分执行一次查找备份文件并删除30天前备份的操作。这个时间可以根据需求自定义。

说明:
- 0 0 */3 * *表示每隔三天的0时整执行。
- find命令表示查找备份文件。
- /home/user/backups表示查找目录。
- -type f表示查找的是文件。
- -mtime +30表示30天前的文件,-mtime可以指定几天前的文件,+表示几天前以前的文件,-表示几天前到现在之间的文件。
- -name "*.sql"表示查找后缀为.sql的文件。
- -exec rm -rf {} \;表示执行删除操作。

示例:
假设现在是2022年12月01日,运行备份脚本之后备份的文件名为:database_name_20221201012520.sql,

那么执行定时任务的时候,它会查找/home/user/backups目录下*.sql文件,找到之前30天以前的备份文件database_name_20220131152420.sql,并删除之。

以上就是“Linux实现定时备份MySQL数据库并删除30天前的备份文件”的完整攻略,希望能对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Linux实现定时备份MySQL数据库并删除30天前的备份文件 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • MySQL数据库分组查询group by语句详解

    MySQL数据库分组查询是一种非常重要的查询手段,它可以根据指定的一个或多个列的值对结果进行分组,通常与聚合函数一起使用。 1. GROUP BY语句的基本用法 GROUP BY语句用于对结果集根据指定的字段进行分组。基本语法如下: SELECT column1, column2, … FROM table_name GROUP BY column1, …

    database 2023年5月22日
    00
  • mysql中explain用法详解

    Mysql中Explain用法详解 简介 MySQL中的Explain是一个非常有用的工具,它可以帮助我们定位查询语句的性能问题。使用Explain能够分析查询语句的执行计划,帮助开发者发现潜在的性能瓶颈和优化方案。本文将详细讲解MySQL中Explain的用法。 Explain语法 Explain语法类似于SQL语句,常见的如下所示: EXPLAIN SE…

    database 2023年5月22日
    00
  • vue如何将对象中所有的key赋为空值

    下面是详细讲解“Vue如何将对象中所有的key赋为空值”的攻略: 一、使用Object.keys()和forEach或reduce 首先,使用Object.keys()获取该对象所有的key,返回一个数组。 然后,使用forEach或reduce(根据实际需求而定)遍历该数组,将对象中每个key的值赋为null或空字符串。 代码示例(使用forEach): …

    database 2023年5月18日
    00
  • laravel中redis队列的使用

    一、配置文件 首先我们需要在配置文件中配置默认队列驱动为Redis,: 修改.env中的QUEUE_CONNECTION=redis 二、编写队列任务 首先我们通过如下Artisan命令创建任务类: php artisan make:job SendReminderEmail   运行成功后会在app/Jobs目录下生成一个SendReminderEmail…

    Redis 2023年4月13日
    00
  • Linux系统下安装phpmyadmin方法

    以下是在Linux系统下安装phpMyAdmin的完整攻略。 安装Apache、MySQL及PHP 在安装phpMyAdmin之前,需要先安装Apache、MySQL及PHP。其中,Apache是Web服务器,MySQL是数据库管理系统,而PHP则是用于动态生成Web页面的脚本语言。这里给出安装命令: sudo apt update sudo apt ins…

    database 2023年5月22日
    00
  • 一步步教你用python连接oracle数据库

    下面我来为您详细讲解“一步步教你用Python连接Oracle数据库”的完整攻略。 1. 安装必要的软件 在进行Python连接Oracle数据库之前,我们需要安装一些必要的软件。这些软件包括: Python环境:我们需要安装Python 3.x版本的环境,可以到Python官网下载对应版本:https://www.python.org/downloads/…

    database 2023年5月21日
    00
  • MYSQL读写性能测试的简单记录

    那我就详细讲解一下如何进行MYSQL读写性能测试,包括测试工具、测试步骤、结果输出和分析等。 工具准备 测试工具:sysbench sysbench 是一款常用的开源的基准测试工具,它支持多种测试,包括 MySQL 的 OLTP 压力测试。 数据库:MySQL 测试步骤 安装 sysbench 可以通过以下命令进行安装: bashsudo apt-get i…

    database 2023年5月22日
    00
  • Redis–集群Cluster(槽指派、重新分片)

    转自https://www.cnblogs.com/xiang9286/p/10948614.html   集群通过分片(sharding)来进行数据共享,并提供复制和故障转移功能。   1.节点 一个节点就是一个运行在集群模式下的Redis服务器。启动Redis服务器时,通过判断cluster-enabled选项,选择是否开启集群模式。(Yes开启集群,N…

    Redis 2023年4月12日
    00
合作推广
合作推广
分享本页
返回顶部