liunx 数据库备份shell脚本

本文档介绍了一个bash脚本,用于自动化备份MySQL数据库,包括备份文件创建、压缩并发送到指定邮箱,同时记录日志。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/bin/bash
# This is mysql mysqlfullbak scripts	   
user=(你的数据库账号)	   
passwd=(你的数据库密码)格式如下
#passwd=1232313
databak_dir=/home/usr/share/DBBAK  #你的备份目录,文件所在位置
eMailFile=$databak_dir/email.log
eMail=test@qq.com  #你的邮箱
DATE=`date +%Y%m%d%H%M` 
logFile=$databak_dir/logs/mysql$DATE.log
database=test   #需要备份的数据库名称
echo "     " > $eMailFile
echo "---------------------------------" >> $eMailFile
echo $(date +"%y-%m-%d %H:%M:%S") >> $eMailFile
cd $databak_dir
dumpFile=$database$DATE.sql
GZDumpFile=$database$DATE.tar.gz
#下面参数中的-h是你当前备份的服务器ip,或者其他ip上的库
options="-u$user -p$passwd -h127.0.0.1 --opt --extended-insert=false --triggers=false -R --hex-blob --flush-logs --delete-master-logs -B $database"
mysqldump $options > $dumpFile  #导出数据文件
if [[ $? == 0 ]]; then
  tar cvzf $GZDumpFile $dumpFile >> $eMailFile 2>&1
  echo "BackupFileName:$GZDumpFile" >> $eMailFile
  echo "DataBase Backup Success" >> $eMailFile
  mail -s " DataBase Backup Success" $eMail < $eMailFile""  
else
  echo "DataBase Backup Fail!" >> $eMailFile
  mail -s " DataBase Backup Fail " $eMail < $eMailFile  #如果备份不成功发送邮件通知
fi
cd $databak_dir/logs
touch $logFile
echo "--------------------------------------------------------" >> $logFile
cat $eMailFile >> $logFile
find /home/usr/share/DBBAK -mtime +15 -type f -exec rm -rf {} \; #删除该目录下N天以上的文件

上面代码中还需要在DBBAK目录下面建立一个logs文件夹目录,不然输出日志时,cd $databak_dir/logs  无法找到这个目录存放

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值