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日

相关文章

  • redis++怎么编译、安装及使用

    这篇“redis++怎么编译、安装及使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“redis++怎么编译、安装及使用”文章吧。 前言 之前给公司作网关,一直想找个牛逼点的C++ 的 或者 C的 redis连接库。 结果很多都不近人意。 常见…

    2023年4月10日
    00
  • Oracle数据库恢复教程之resetlogs操作

    在这里我会给出关于 “Oracle数据库恢复教程之resetlogs操作” 的完整攻略。 1. 恢复概述 在进行resetlogs操作之前,我们需要对恢复的概念和过程有一个基本的认识。 在Oracle数据库中,恢复是指使用备份和日志文件将数据库恢复到某个时刻的过程。Oracle数据库有两种恢复方式:完全恢复和不完全恢复。完全恢复是指将数据库恢复到某个完整备份…

    database 2023年5月18日
    00
  • oracle if else语句使用介绍

    当使用Oracle PL/SQL编写程序时,经常需要根据条件来判断并执行不同的代码块。可以使用if-else语句来实现这一点。本文将详细介绍Oracle if-else语句及其用法。 1. if-else语句 if-else语句在编程中经常用于根据判断条件执行不同的代码块。在Oracle中,语法如下: IF condition THEN — 如果condi…

    database 2023年5月21日
    00
  • CentOS7.6安装MYSQL8.0的步骤详解

    以下是 CentOS 7.6 安装 MySQL 8.0 的步骤详解。 1. 下载安装MySQL8.0的YUM源 MySQL 8.0 官方提供了 YUM 源,我们可以通过以下命令来下载安装: wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm sudo rpm -i…

    database 2023年5月22日
    00
  • 浅谈数据库事务四大特性

    下面我将为大家详细讲解“浅谈数据库事务四大特性”。 什么是数据库事务 在了解数据库事务的四大特性之前,我们需要了解什么是数据库事务。 数据库事务是一组被视为单个工作单元的数据库操作,这些操作要么全部完成,要么全部回滚。换句话说,如果事务中任意一个操作失败,则整个事务都将撤销或者说回滚,实现数据一致性和可靠性。 四大特性 数据库事务具有四大特性,它们通常缩写为…

    database 2023年5月21日
    00
  • Mysql日期查询的详细介绍

    MySQL日期查询是MySQL数据库中常用的操作之一,一般用来筛选符合条件的日期数据。下面是MySQL日期查询的详细介绍。 日期查询类型 MySQL提供了常用的日期查询类型,包括: YEAR:查询特定年份的数据。 MONTH:查询特定月份的数据。 DAY:查询特定天的数据。 DATE:查询特定日期的数据。 TIME:查询特定时间的数据。 日期查询操作符 My…

    database 2023年5月22日
    00
  • mysql 远程连接数据库的方法集合

    下面是详细讲解 mysql 远程连接数据库的方法集合的完整攻略。 一、设置 MySQL 服务 首先,需要确定 MySQL 服务已经启用并且正在运行。我们可以使用以下命令来检查 MySQL 服务是否正在运行: systemctl status mysql 如果 MySQL 服务没有启动,则需要使用以下命令启动 MySQL 服务: systemctl start…

    database 2023年5月22日
    00
  • MongoDB错误32-bit servers don’t have journaling enabled by default解决方法

    当在64位系统上运行32位MongoDB服务器时,可能会出现”32-bit servers don’t have journaling enabled by default”错误,原因是默认情况下32位MongoDB服务器未启用日志记录。 要解决此问题,可以按照以下步骤操作: 在启动MongoDB服务器时,指定journal选项: mongod –jour…

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