linux定时备份MySQL数据库并删除以前的备份文件(推荐)

yizhihongxing

下面是详细的攻略:

1. 安装crontab

Crontab是Linux自带的定时任务工具。首先我们要确认系统中是否已经安装了Crontab。

在终端输入命令:

crontab -l

如果出现“no crontab for 用户名”这样的提示,就意味着Crontab还没有被安装。这个时候我们需要用命令安装:

sudo apt-get install cron

安装完成后,再次输入 crontab -l 命令就能看到系统中已有的定时任务。

2. 编写备份脚本

在终端中输入以下命令创建备份脚本:

sudo nano ~/backup.sh

在打开的编辑器中编写以下脚本:

#!/bin/bash

# 定义需要备份的数据库名称、备份后的文件名和备份目录
DB_USER="用户名"
DB_PASSWORD="密码"
DB_NAME="数据库名"
BACKUP_NAME="${DB_NAME}_backup_$(date +%Y%m%d_%H%M%S).sql"
BACKUP_DIR="/mnt/backup/"

# 备份数据库
mysqldump -u ${DB_USER} -p${DB_PASSWORD} ${DB_NAME} > ${BACKUP_DIR}${BACKUP_NAME}

# 删除超过14天的备份文件
find ${BACKUP_DIR} -mtime +14 -type f -name "${DB_NAME}_backup_*" -delete

其中,需要替换用户名、密码和数据库名。

脚本中先定义了需要备份的数据库信息,包括用户名、密码和数据库名,然后定义了备份后的文件名和备份目录。备份时使用mysqldump命令将数据库内容备份到指定目录,并将备份文件名命名为 数据库名_backup_年月日_小时分钟秒.sql。备份完成后,通过find命令查找超过14天的备份文件并删除掉。

如果脚本编写完成,按下 Ctrl+X 保存并退出编辑器。

3. 赋予脚本执行权限

在终端中输入以下命令赋予脚本执行权限:

sudo chmod +x ~/backup.sh

4. 设置定时任务

在终端中输入以下命令创建新的定时任务:

crontab -e

在打开的编辑器中添加以下内容:

0 2 * * * ~/backup.sh

上面的内容表示,在每天凌晨2点执行备份任务。如果需要调整备份时间,请根据Crontab的语法格式自行调整。例如,如果需要在每周一的晚上7点备份,可以写成:

0 19 * * 1 ~/backup.sh

添加完成后,按下 Ctrl+X 保存并退出编辑器。

5. 示例说明

示例一

假设我们需要定时备份MySQL中的MyBlog数据库,我们可以这样编写备份脚本:

#!/bin/bash

# 定义需要备份的数据库名称、备份后的文件名和备份目录
DB_USER="root"
DB_PASSWORD="password"
DB_NAME="MyBlog"
BACKUP_NAME="${DB_NAME}_backup_$(date +%Y%m%d_%H%M%S).sql"
BACKUP_DIR="/mnt/backup/"

# 备份数据库
mysqldump -u ${DB_USER} -p${DB_PASSWORD} ${DB_NAME} > ${BACKUP_DIR}${BACKUP_NAME}

# 删除超过14天的备份文件
find ${BACKUP_DIR} -mtime +14 -type f -name "${DB_NAME}_backup_*" -delete

然后将这个脚本保存为 ~/backup.sh

接下来设置定时任务,在每天凌晨2点备份MyBlog数据库:

0 2 * * * ~/backup.sh

这样,在每天凌晨2点,系统就会自动备份MyBlog数据库并删除超过14天的历史备份文件。

示例二

假设我们有一个名为MyShop的MySQL数据库,需要在每周一的晚上7点备份,我们可以这样编写备份脚本:

#!/bin/bash

# 定义需要备份的数据库名称、备份后的文件名和备份目录
DB_USER="root"
DB_PASSWORD="password"
DB_NAME="MyShop"
BACKUP_NAME="${DB_NAME}_backup_$(date +%Y%m%d_%H%M%S).sql"
BACKUP_DIR="/mnt/backup/"

# 备份数据库
mysqldump -u ${DB_USER} -p${DB_PASSWORD} ${DB_NAME} > ${BACKUP_DIR}${BACKUP_NAME}

# 删除超过14天的备份文件
find ${BACKUP_DIR} -mtime +14 -type f -name "${DB_NAME}_backup_*" -delete

然后将这个脚本保存为 ~/backup.sh

接下来设置定时任务,在每周一的晚上7点备份MyShop数据库:

0 19 * * 1 ~/backup.sh

这样,在每周一的晚上7点,系统就会自动备份MyShop数据库并删除超过14天的历史备份文件。

综上所述,以上就是在Linux系统中定时备份MySQL数据库并删除以前的备份文件的攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:linux定时备份MySQL数据库并删除以前的备份文件(推荐) - Python技术站

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

相关文章

  • 推荐一款神仙颜值的 Redis 客户端工具(速收藏)

    推荐一款神仙颜值的 Redis 客户端工具(速收藏) Redis 是一个高性能的 in-memory 数据库,被广泛应用于缓存、队列、计数器等应用场景中。随着 Redis 的广泛使用,可视化的 Redis 客户端工具也越来越多,其中一个比较不错的工具是 RedisInsight。 1. RedisInsight RedisInsight 是一个由 Redis…

    database 2023年5月22日
    00
  • MariaDB中1045权限错误导致拒绝用户访问的错误解决方法

    下面我将详细讲解“MariaDB中1045权限错误导致拒绝用户访问的错误解决方法”的完整攻略: 问题描述 在使用MariaDB时,有可能会遇到如下报错 ERROR 1045 (28000): Access denied for user ‘user_name’@’localhost’ (using password: YES) 该错误通常原因是用户的登录名或…

    database 2023年5月18日
    00
  • Php中使用Select 查询语句的实例

    下面是关于在PHP中使用Select查询语句的攻略: 1. 准备工作 在使用Select查询语句前,需要进行以下准备工作: 1.1 连接数据库 在PHP中连接数据库需要使用mysqli扩展或PDO扩展,这里以mysqli扩展为例,代码如下: // 创建连接 $conn = new mysqli($servername, $username, $passwor…

    database 2023年5月21日
    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 优化常用方法 MYSQL 是一种开源的关系型数据库管理系统,被广泛应用于各种规模的网站和应用程序。优化 MYSQL 数据库的性能是每个 MYSQL 数据库管理员所必需的技能之一。下面是 MYSQL 优化常用方法的完整攻略: 1. 使用索引 索引是常用的 MYSQL 优化方法之一。合理使用索引可以加快数据查询和数据检索的速度,提高数据查询的效率。通…

    database 2023年5月19日
    00
  • 处理Oracle监听程序当前无法识别连接描述符中请求的服务异常(ORA-12514)

    处理Oracle监听程序当前无法识别连接描述符中请求的服务异常(ORA-12514)通常是由于监听程序未能识别连接描述符中的服务名称。如果用户通过有效的服务名称连接到Oracle数据库,就会出现ORA-12514错误。以下是解决ORA-12514错误问题的方法: 1.检查连接描述符 首先,检查连接描述符是否包含正确的服务名称。服务名称是一个标识符,用于标识正…

    database 2023年5月21日
    00
  • Java实战之实现物流配送系统示例详解

    Java实战之实现物流配送系统示例详解是一个非常实用的项目实战体验,让我们可以用实际的场景来学习Java技术,对于Java初学者和中级开发者,都有一定的参考价值。以下是详细的攻略: 项目概述 Java实战之实现物流配送系统是一个综合性的项目,主要用于演示如何使用Java技术来完成一个物流配送系统。该项目集成了多个技术领域,包括Java Web、Spring …

    database 2023年5月22日
    00
  • SQL 创建预定数目的桶

    创建预定数目的桶是数据仓库中经常使用的操作,以下是SQL创建预定数目的桶的完整攻略。 1.创建预定数目的桶 创建一个预定数目的桶,首先要知道数据的分布情况,需要用到SQL中的数据聚合函数,如COUNT()和SUM()等。创建语句如下: CREATE TABLE bucketed_table ( id INT, value INT ) CLUSTERED BY…

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