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迁移到服务器数据库

    将本地MySQL数据库迁移到服务器数据库可以通过以下步骤实现: 1. 备份本地MySQL数据库 使用以下命令将本地MySQL数据库备份到本地计算机上: mysqldump -u 用户名 -p 密码 数据库名称 > 导出文件名.sql 2. 将备份的文件上传到服务器 使用以下命令将备份的文件上传到服务器: scp /本地备份文件的路径/导出文件名.sql…

    database 2023年5月22日
    00
  • Linux中无法远程连接数据库问题的解决方法

    当在Linux服务器上运行数据库时,在其他计算机上远程访问这个数据库时,可能会出现无法连接到数据库的问题。本文将介绍如何解决这个问题。 步骤一:修改数据库的配置文件 默认情况下,数据库只允许来自本地的连接请求。为了允许远程连接请求,需要修改数据库的配置文件。具体地说,需要修改数据库的配置文件,打开bind-address选项,并将其设置为0.0.0.0。这将…

    database 2023年5月22日
    00
  • SQL 查询未来的行

    要查询未来的行,我们需要在SQL语句中使用一些日期和时间的函数和运算符,以便能够在数据表中按时间进行筛选。下面是针对这个问题的攻略: 1. 使用 NOW() 函数 我们可以使用 NOW() 函数来获取当前的日期和时间。然后,我们可以在 SQL 查询语句中使用时间运算符 (>, >=, <, <=) 来查找未来的行。例如,我们可以使用以…

    database 2023年3月27日
    00
  • Asp.Net使用Bulk实现批量插入数据

    首先,在Asp.Net中使用Bulk实现批量插入数据的步骤如下: 创建一个DataTable对象,然后用Add方法添加字段。如下所示: csharp DataTable dt = new DataTable(); dt.Columns.Add(“ID”,typeof(int)); dt.Columns.Add(“Name”, typeof(string));…

    database 2023年5月21日
    00
  • PHP PDO函数库详解

    文章标题: PHP PDO函数库详解 PDO介绍 PDO是PHP官方推荐的关系型数据库访问抽象层,全称为PHP Data Object。它为PHP开发者提供了一种简单的、一致的接口连接各种不同的数据库,并且可以使用相同的函数进行数据库操作。 PDO支持多种常见的数据库(如MySQL、PostgreSQL、Oracle、SQL Server等),并且支持预处理…

    database 2023年5月21日
    00
  • MySQL explain根据查询计划去优化SQL语句

    当我们执行 MySQL 数据库中一条SELECT语句时,MySQL 根据查询语句的结构和条件,生成一个查询计划,然后根据该计划来执行查询操作。通过执行 explain 命令,我们可以获取这个查询计划,通过这个查询计划,我们可以比较容易地找出 SQL 查询语句存在的性能瓶颈,从而进一步优化 SQL 语句,提高查询效率。 下面是根据查询计划优化SQL语句的完整攻…

    database 2023年5月19日
    00
  • Ubuntu安装MySQL-python方法

    以下是Ubuntu安装MySQL-python的完整攻略。 安装MySQL-python 在Ubuntu上安装MySQL-python,需要首先安装pip和MySQL开发包。 安装pip Ubuntu 18.04及以上版本,pip已经默认安装。可以通过以下命令确认pip是否已安装: pip –version 如果提示“Command ‘pip’ not f…

    database 2023年5月22日
    00
  • MySQL的时间差函数(TIMESTAMPDIFF、DATEDIFF)、日期转换计算函数(date_add、day、date_format、str_to_date)

    MySQL是一种常用的关系型数据库管理系统,它提供了很多日期和时间相关的函数以便对数据库中时间数据进行处理和计算。本文将详细探讨MySQL的时间差函数(TIMESTAMPDIFF、DATEDIFF)、日期转换计算函数(date_add、day、date_format、str_to_date)的使用方法和示例说明。 时间差函数 TIMESTAMPDIFF TI…

    database 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部