shell,#!/bin/bash,# MySQL数据库备份脚本,DATE=$(date +%Y%m%d),DB_USER="root",DB_PASSWORD="your_password",DB_NAME="your_database_name",BACKUP_DIR="/path/to/backup/directory",MYSQLDUMP_PATH="/usr/bin/mysqldump",,$MYSQLDUMP_PATH u$DB_USER p$DB_PASSWORD $DB_NAME > $BACKUP_DIR/${DB_NAME}_${DATE}.sql,
“MySQL数据库备份Shell脚本详解
需求分析
1、定时执行:每天凌晨两点自动执行。
2、提示信息:备份开始和结束时提供提示信息。
3、文件命名:以当前时间为文件名,并压缩为.tar.gz格式。
4、清理机制:删除超过10天的备份文件。
创建Shell脚本
在Linux系统中,可以使用vim
或其他文本编辑器创建一个名为mysql_backup.sh
的Shell脚本文件,路径可以选择为/mnt
目录。
#! /bin/bash 定义变量 BACKUP=/mnt/backup/db DATETIME=$(date +%Y_%m_%d_%H%M%S) HOST=localhost DB_USER=root DB_PWD=root DATABASE=yuanchangliang 输出开始备份信息 echo "==========开始备份===========" echo "备份的路径是 $BACKUP/$DATETIME.tar.gz" 创建备份目录(如果不存在) [ ! d "$BACKUP/$DATETIME" ] && mkdir p "$BACKUP/$DATETIME" 执行mysqldump命令进行数据库备份并压缩 mysqldump u${DB_USER} p${DB_PWD} host=$HOST $DATABASE | gzip > $BACKUP/$DATETIME/$DATETIME.sql.gz 打包备份文件 cd $BACKUP tar zcvf $DATETIME.tar.gz $DATETIME 删除临时目录 rm rf $BACKUP/$DATETIME 删除10天前的备份文件 find $BACKUP mtime +10 name "*.tar.gz" exec rm rf {} ; 输出完成信息 echo "==========备份完成==========="
自动化执行
为了实现自动化定时备份,可以将上述脚本添加到系统的计划任务(crontab)中,编辑crontab配置文件:
crontab e
添加以下行以设置每天凌晨两点执行备份脚本:
0 2 * * * /bin/bash /mnt/mysql_backup.sh
保存并退出编辑器后,系统将会自动按设定的时间执行备份任务。
注意事项
1、权限问题:确保运行脚本的用户具有对相关目录和文件的读写权限。
2、环境变量:如果需要,可以在脚本开头设置必要的环境变量,如MySQL的路径等。
3、错误处理:在生产环境中,建议增加错误处理逻辑,例如备份失败时发送通知等。
通过编写Shell脚本并结合计划任务,可以高效地实现MySQL数据库的定时备份与管理。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1227182.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复