新闻中心

Linux 写一个自动备份数据库的脚本

2025-12-04
浏览次数:
返回列表
首先创建Shell脚本配置数据库备份参数,然后设置执行权限并测试备份功能,接着通过cron定时任务实现每日自动备份,最后建议使用.my.cnf加密存储密码以提升安全性。

linux 写一个自动备份数据库的脚本

数据库自动备份是运维中非常基础且重要的任务。下面是一个使用 Shell 编写的 Linux 脚本,用于自动备份 MySQL/MariaDB 数据库,并按日期命名备份文件,同时支持清理过期备份。

1. 创建备份脚本

将以下内容保存为 /backup/db_backup.sh(可自定义路径):

!/bin/bash

# 配置项 DB_USER="root" DB_PASS="your_password" # 建议使用 mysql_config_editor 加密存储密码 DB_NAME="your_database_name" # 指定要备份的数据库名,多个库可用空格分隔 BACKUPDIR="/backup/db" # 备份文件存储目录 DATE=$(date +"%Y%m%d%H%M%S") EXPIRE_DAYS=7 # 自动删除超过 N 天的备份

# 创建备份目录(如果不存在) mkdir -p $BACKUP_DIR

# 生成备份文件名 BACKUP_FILE="$BACKUP_DIR/${DB_NAME}backup$DATE.sql.gz"

# 执行备份并压缩 mysqldump -u$DB_USER -p$DB_PASS $DB_NAME | gzip > $BACKUP_FILE

# 检查备份是否成功 if [ $? -eq 0 ]; then echo "✅ 数据库 '$DB_NAME' 备份成功: $BACKUP_FILE" else echo "❌ 数据库 '$DB_NAME' 备份失败" exit 1 fi

# 删除过期的备份文件 find $BACKUP_DIR -name "${DB_NAME}backup*.sql.gz" -mtime +$EXPIRE_DAYS -delete echo "? 已清理 ${EXPIRE_DAYS} 天前的旧备份"

2. 设置权限与测试

赋予脚本执行权限:

chmod +x /backup/db_backup.sh

手动运行测试:

/backup/db_backup.sh

确认在 /backup/db 目录下生成了类似 your_database_name_backup_20250405_103000.sql.gz 的压缩文件。

3. 配置定时任务(cron)

编辑 root 用户的 crontab:

NT80 购物系统 NT80 购物系统

功能说明:1 会员可申请开店功能2 购买在线扣除金额3 冲值卡自动生成4 支持2级分类5 数据库压缩和备份6 会员分5个级别7 商品带讨论8 自带融合论坛,可关闭打开9 密码找回功能10 新闻``滚动新闻``帮助中心11 后台设置前台会员的上传权限12 可关闭/打开商店13 会员自助发布商品功能14 用户问题咨询管理

NT80 购物系统 0 查看详情 NT80 购物系统 crontab -e

添加一行,例如每天凌晨 2 点执行备份:

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

这样每次运行日志会记录到 /backup/db_backup.log,便于排查问题。

4. 安全建议

  • 不要在脚本中明文写密码:可使用 ~/.my.cnf 文件存储凭证
  • 设置 .my.cnf 权限为 600:
[client] user = root password = your_password

然后修改脚本中的 mysqldump 命令为:

mysqldump $DB_NAME | gzip > $BACKUP_FILE

更安全且简洁。

基本上就这些。脚本简单可靠,适合中小项目使用。

以上就是Linux 写一个自动备份数据库的脚本的详细内容,更多请关注其它相关文章!


# linux  # 宝鸡微信营销推广  # 意面营销推广方案怎么写  # 雅安网站推广性价比高  # 体育网站什么优化  # 怎么做市场营销和推广  # 如何seo优化 卢松松  # 宴席的推广营销策略  # 濮阳外包推广招聘网站  # 不存在  # 中文网  # 相关文章  # 多个  # 成了  # 远程访问  # 是一个  # 备份文件  # 购物系统  # 自动备份  # 2025  # shell脚本  # 数据库备份  # word  # mysql  # 微博推广营销方法  # 海曙网站建设哪家好 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 在FastAPI中利用lifespan与依赖注入高效管理Redis连接池  Composer中的^和~符号代表什么_精通Composer版本号语义化约束  Tabulator表格中精确实现日期时间排序的指南  打开就能玩的植物大战僵尸 植物大战僵尸网页版传送门  Basecamp怎样用留言钉固定重点_Basecamp用留言钉固定重点【重点标记】  C#使用XPath查询节点时出错? 常见语法错误与调试技巧  J*aScript中赋值与自增运算符的复杂交互与执行机制  Golang如何实现简单的Web表单_Golang表单提交与验证处理方法  虚幻5科幻题材ARPG大作遭取消!本是《奇异人生》厂商新作  Excel如何用迷你图显趋势_Excel用迷你图显趋势【趋势小图】  Angular中单选按钮的正确使用与常见陷阱解析  J*aScript中向JSON对象添加新属性的正确姿势  顺丰快递查询系统 官方正版查询入口  实现分段式页面滚动导航:CSS与J*aScript教程  c++如何实现单例设计模式_c++线程安全的单例模式写法  狙击外星人小游戏开始_狙击外星人小游戏立即开始  uc手机浏览器网页版入口 uc浏览器手机版便捷登录首页  c++ 命名空间怎么用 c++ namespace使用指南  抖音小游戏合成大西瓜免费秒玩入口链接 抖音小游戏热门合集秒玩网站  Golang如何优化内存分配与垃圾回收_Golang内存管理与GC优化实践  顺丰国际快递查询 国际件官方查询入口  高德地图家和公司地址在哪设置 高德地图通勤路线设置方法【超详细】  b站怎么取消点赞_b站点赞取消操作方法  C++的std::mdspan是什么_C++23中用于操作多维数组的非拥有视图  Win11网速慢怎么解决 Win11网络设置优化解除限速  “在文档元素之后找到了标记”是什么错误? 检查并修复XML中多个根元素的3个方法  sublime怎么设置启动时打开的窗口_sublime会话管理与热退出  win11专注助手在哪 Win11免打扰模式设置与自动化规则【指南】  微信语音通话掉线如何解决 微信语音通话稳定优化方法  高德地图总提示网络异常怎么办 高德地图离线导航设置与网络排查方法  PHP中获取MongoDB服务器运行时间(Uptime)的专业指南  荣耀Play7TPro怎样在信息App置顶客服对话_iPhone荣耀Play7TPro信息App置顶客服对话【优先查看】  如何将HTML表格多行数据保存到Google Sheet  在J*a中如何开发简易博客标签推荐系统_博客标签推荐项目实战解析  MAC的“快捷指令”怎么同步到iPhone_MAC利用iCloud同步所有设备的自动化指令  163邮箱登录密码 163邮箱忘记密码找回  荒野行动PC版怎么注册_荒野行动PC版账号注册详细流程图文教程  58动漫网在线官方网 58动漫网正版动漫入口网址  PHP表单数据传递:如何通过隐藏输入字段获取动态ID  J*a里如何实现订单支付与库存同步功能_支付库存同步项目开发方法说明  生成rdflib自定义SPARQL函数:参数匹配与实践指南  Composer的 "conflict" 字段有什么用_如何声明不兼容的包以避免依赖冲突  谷歌学术网站直达地址 谷歌学术搜索网页版一键进入  TypeScript/J*aScript:高效查找数组中首个唯一ID对象  使用 Pandas 高效处理 .dat 文件:字符清理与数据计算  谷歌浏览器如何快速清除某个网站的数据_Chrome网站缓存清理方法  “音游” × “怪文书” 题材的节奏冒险游戏 《晕晕电波症候群》确定于2026年4月发售!  优化MinIO list_objects_v2 操作的性能瓶颈与最佳实践  steam官方入口大全 steam账号注册及操作指南  QQ邮箱电脑版登录入口_QQ邮箱官方网站登录平台 

搜索