linux批处理mysql数据库_Linux下mysql数据库的自动备份批处理文件,哪位高人帮我看看...

展开全部

你贴上来的代码有以下几个问题:

1、一些地方该换行的没有换行,引号变成了中文的,网上复制的代码通32313133353236313431303231363533e59b9ee7ad9431333332623330常都有此问题。

2、日期时间格式化的用法不正确

3、长参数前缀应该是两个-号,而不是一个

4、--delete-master-logs 选项如果只有一个主库,则什么都备份不到。我移除了。

以下是我修改的文件,经过测试已经可以执行。# encoding: utf-8

#配置参数

USER=root #数据库用户名

PASSWORD=root #数据库用户密码

DATABASE=EmailSystemDB #数据库名称

WEBMASTER="123456789@qq.com" #管理员邮箱地址,用以发送备份失败消息提醒

BACKUP_DIR=backup #备份文件存储路径

LOGFILE=backup.log  #日记文件路径

DATE=`date +"%Y%m%d-%H%M"` #日期格式(作为文件名)

DUMPFILE=$DATE.sql #备份文件名

ARCHIVE=$DATE.sql.tgz #压缩文件名

OPTIONS="-u$USER  -p$PASSWORD --opt --extended-insert=false --triggers=false -R --hex-blob  --flush-logs -B $DATABASE"

#mysqldump 参数 详情见帮助  mysqldump -help

#判断备份文件存储目录是否存在,否则创建该目录

if [ ! -d $BACKUP_DIR ]; then

mkdir -p "$BACKUP_DIR"

fi

#开始备份之前,将备份信息头写入日记文件

echo " " >> $LOGFILE echo " " >> $LOGFILE

echo "———————————————–" >> $LOGFILE

echo "BACKUP DATE:" $(date +"%y-%m-%d %H:%M:%S") >> $LOGFILE

echo "———————————————–" >> $LOGFILE

#切换至备份目录

cd $BACKUP_DIR

#使用mysqldump 命令备份制定数据库,并以格式化的时间戳命名备份文件

mysqldump $OPTIONS > $DUMPFILE

#判断数据库备份是否成功

if [[ $? == 0 ]]; then

#创建备份文件的压缩包

tar czvf $ARCHIVE $DUMPFILE >> $LOGFILE 2>&1

#输入备份成功的消息到日记文件

echo "[$ARCHIVE] Backup Successful!" >> $LOGFILE

#删除原始备份文件,只需保 留数据库备份文件的压缩包即可

rm -f $DUMPFILE

else

echo "Database Backup Fail!" >> $LOGFILE

#备份失败后向网站管理者发送邮件提醒,需要mailutils或者类似终端下发送邮件工具的支持

#如果需要发邮件,且mail配置好了,就去掉下面的注释

#mail -s “Database DATABASE Daily Backup Fail” $WEBMASTER

fi

#输出备份过程结束的提醒消息

echo "Backup Process Done"

希望能给个采纳。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值