以下是一个可能的MySQL脚本,可以实现每个小时自动备份marketing_product数据库表到/home/db目录下并压缩,最后只保留压缩文件:

#!/bin/bash

# 定义备份目录和文件名
backup_dir="/home/db"
backup_file="marketing_product_$(date +%Y%m%d%H%M%S).sql"
gzip_file="$backup_file.gz"

# 备份数据库表到指定目录
mysqldump -u root -pPASSWORD marketing_product > "$backup_dir/$backup_file"

# 压缩备份文件
gzip "$backup_dir/$backup_file"

# 删除旧的备份文件,只保留最新的压缩文件
find "$backup_dir" -name "marketing_product_*.gz" -type f -mmin +60 -delete

解释一下脚本的逻辑:

  1. 定义备份目录和文件名,其中文件名包含当前时间戳,以便每个小时生成不同的备份文件。
  2. 使用mysqldump命令备份marketing_product数据库表到指定目录。
  3. 使用gzip命令压缩备份文件,生成.gz文件。
  4. 使用find命令删除旧的备份文件,只保留最新的压缩文件。这里的-mmin选项表示按照修改时间来查找文件,并且只保留修改时间在60分钟内的文件,也就是最新的备份文件。

接下来,将以上脚本保存为一个可执行文件,例如backup.sh,并添加到crontab中,以便每个小时自动触发备份:

$ chmod +x backup.sh
$ crontab -e

在crontab文件中添加以下行:

0 * * * * /path/to/backup.sh

这表示每个小时的0分钟时执行backup.sh脚本。修改完毕后保存并退出crontab即可

mysql帮我写一个脚本centos里每隔一个小时备份一下marketing_product数据库表到homedb目录下并压缩最后只保留压缩文件。记住要每个一个小时自动触发这个备份

原文地址: https://www.cveoy.top/t/topic/ePUc 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录