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

下面是详细的攻略:

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日

相关文章

  • PHP ADODB实现分页功能简单示例

    欢迎来到本站,这里是一份关于“PHP ADODB实现分页功能简单示例”的攻略。 什么是ADODB? ADODB(全称:Active Data Objects DataBase)是 PHP 中广受欢迎的数据库操作类库,封装了多种数据库驱动和多种连接方式,为 PHP 中的数据库操作提供了更良好的封装。它允许使用者进行许多高级操作,比如操作多个数据库,使用事务和更…

    database 2023年5月22日
    00
  • mysql多主双向和级联复制

    MySQL多主双向复制 概念 MySQL多主双向复制是指多个MySQL节点在一个环形拓扑结构内进行主从复制。每个节点既可作为主节点,也可作为从节点,同时在同一时间只能存在一个主节点。 环境要求 MySQL版本需 >= 5.6.0 每个MySQL节点需在不同的服务器上 操作步骤 对于每个MySQL节点,配置my.cnf,打开bin-log并设置serve…

    database 2023年5月22日
    00
  • Oracle查询表空间大小及每个表所占空间的大小语句示例

    针对这个问题,我们可以使用以下两步来查询Oracle表空间大小及每个表所占空间大小: 第一步:查询表空间大小 查询表空间大小,需要使用系统视图dba_data_files。该视图包含了Oracle数据库中所有数据文件的信息,数据文件即为存储表空间数据的物理文件。 下面是查询表空间大小的SQL示例: SELECT fs.tablespace_name AS T…

    database 2023年5月21日
    00
  • UTC时间、GMT时间、本地时间、Unix时间戳的具体使用

    下面我来详细讲解一下UTC时间、GMT时间、本地时间、Unix时间戳的具体使用。 UTC时间 UTC(Coordinated Universal Time)即协调世界时,也称世界统一时间。它是以原子时秒长为基础,在不考虑地球自转及地球固定架构变化的情况下所测定的时间。UTC时间与格林威治标准时间(GMT)不同的是,它不使用夏令时。 在使用UTC时间时,我们可…

    database 2023年5月22日
    00
  • ehcache memcache redis 区别

    之前用过redis 和 memcache ,没有ehcache 的开发经验,最近也查阅不少文档和博客,写一些总结,也有不少内容总结与诸多博客中的博主总结:  Ehcache EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider,所以被用于大型复杂分布式web application的各…

    Redis 2023年4月12日
    00
  • PHP分页类集锦

    下面就来详细讲解一下“PHP分页类集锦”的完整攻略。 1. 背景说明 分页是在Web应用程序中常见的功能之一。在显示大量数据时,分页可以提供更好的用户体验,避免页面加载时间过长,同时也方便用户快速定位到所需内容。虽然PHP本身不具备分页功能,但我们可以借助现成的分页类来实现。本文介绍一些常用的PHP分页类,以及如何在我们的Web应用程序中使用它们。 2. 常…

    database 2023年5月22日
    00
  • 安装SQL server 提示重新启动计算机失败怎么解决?

    安装SQL Server时出现重新启动计算机失败的问题,这通常是由于以下原因之一所致: 已经打开了另一个程序或服务,正在使用文件。 某些Windows更新在安装过程中需要重新启动系统,但它们可能会在后台安装,而没有向用户显示通知。 系统出现故障,因此需要重新启动。 以下是解决这个问题的一些方法: 方法一:关闭所有与SQL Server相关的进程 在安装SQL…

    database 2023年5月21日
    00
  • 如何在Python中使用SQLAlchemy操作Oracle数据库?

    在Python中,我们可以使用SQLAlchemy模块操作Oracle数据库。SQLAlchemy是一个Python SQL工具包和对象关系映射器(ORM),它提供了一种抽象层,使得我们可以在不同的数据库之间切换,而不需要更改代码。以下是如何在Python中使用SQLAlchemy操作Oracle数据库的完整使用攻略,包括连接数据库、创建表、插入数据、查询数…

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