当前位置: 代码网 > it编程>前端脚本>Powershell > MySQL备份Shell脚本的实现

MySQL备份Shell脚本的实现

2025年03月25日 Powershell 我要评论
你可以编写一个 shell 脚本来自动备份 mysql 数据库。下面是一个示例脚本,它会:备份指定数据库(或所有数据库)。按日期命名备份文件,防止覆盖。自动删除 n 天前的旧备份,节省空间。示例:my

你可以编写一个 shell 脚本来自动备份 mysql 数据库。下面是一个示例脚本,它会:

  • 备份指定数据库(或所有数据库)。
  • 按日期命名备份文件,防止覆盖。
  • 自动删除 n 天前的旧备份,节省空间。

示例:mysql 备份 shell 脚本

#!/bin/bash

# 配置部分
backup_dir="/backup/mysql"  # 备份存放目录
mysql_user="root"           # mysql 用户名
mysql_password="yourpassword" # mysql 密码
mysql_host="localhost"      # mysql 服务器地址
database_name="your_database"  # 备份的数据库名,若要备份所有数据库,改为 --all-databases
retention_days=7            # 保留的天数,自动删除旧备份

# 获取当前日期
date=$(date +"%y-%m-%d_%h-%m-%s")

# 备份文件名
backup_file="$backup_dir/${database_name}_$date.sql.gz"

# 确保备份目录存在
mkdir -p "$backup_dir"

# 执行备份
mysqldump -h "$mysql_host" -u "$mysql_user" -p"$mysql_password" "$database_name" | gzip > "$backup_file"

# 检查备份是否成功
if [ $? -eq 0 ]; then
    echo "mysql 备份成功: $backup_file"
else
    echo "mysql 备份失败!"
    exit 1
fi

# 删除 n 天前的旧备份
find "$backup_dir" -type f -name "${database_name}_*.sql.gz" -mtime +$retention_days -exec rm {} \;

echo "已清理 $retention_days 天前的旧备份"

使用方式

复制脚本到 linux 服务器,如 /backup/mysql_backup.sh

修改脚本参数(数据库名、用户名、密码等)。

赋予执行权限

chmod +x /backup/mysql_backup.sh

手动运行测试

/backup/mysql_backup.sh

设置定时任务,每天凌晨 2 点自动备份:

crontab -e

添加:

0 2 * * * /backup/mysql_backup.sh >> /backup/backup.log 2>&1

这样,你的 mysql 数据库就能每天自动备份并清理旧备份,确保数据安全!

到此这篇关于mysql备份shell脚本的实现的文章就介绍到这了,更多相关mysql备份shell脚本内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com