怎么用shell脚本进行MySQL数据库定时备份
本篇内容介绍了“怎么用shell脚本进行MySQL数据库定时备份”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
#!/bin/bash#ShellCommandForBackupMySQLDatabaseEverydayAutomaticallyByCrontab#Author:CarlosWong#Date:2012-03-17#配置参数USER=root#数据库用户名">用户名PASSWORD=×××××#数据库用户密码DATABASE=TIENIUZAI#数据库名称WEBMASTER=tieniuzai@qq.com#管理员邮箱地址,用以发送备份失败消息提醒BACKUP_DIR=/var/www/Data_Backup/topons/#备份文件存储路径LOGFILE=/var/www/Data_Backup/topons/data_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–delete-master-logs-B$DATABASE”#mysqldump参数详情见帮助mysqldump-help#判断备份文件存储目录是否存在,否则创建该目录if[!-d$BACKUP_DIR];thenmkdir-p“$BACKUP_DIR”fi#开始备份之前,将备份信息头写入日记文件echo””>>$LOGFILEecho””>>$LOGFILEecho“———————————————–”>>$LOGFILEecho“BACKUPDATE:”$(date+”%y-%m-%d%H:%M:%S”)>>$LOGFILEecho“———————————————–”>>$LOGFILE#切换至备份目录cd$BACKUP_DIR#使用mysqldump命令备份制定数据库,并以格式化的时间戳命名备份文件mysqldump$OPTIONS>$DUMPFILE#判断数据库备份是否成功if[[$?==0]];then#创建备份文件的压缩包tarczvf$ARCHIVE$DUMPFILE>>$LOGFILE2>&1#输入备份成功的消息到日记文件echo“[$ARCHIVE]BackupSuccessful!”>>$LOGFILE#删除原始备份文件,只需保留数据库备份文件的压缩包即可rm-f$DUMPFILEelseecho“DatabaseBackupFail!”>>$LOGFILE#备份失败后向网站管理者发送邮件提醒,需要mailutils或者类似终端下发送邮件工具的支持#mail-s“Database:$DATABASEDailyBackupFail”$WEBMASTERfi#输出备份过程结束的提醒消息echo“BackupProcessDone”
使用:
将以上代码保存到: /usr/sbin/DataBackup (文件名随意,只要不跟系统原有的命令同名即可;代码可以放到任何地方,放在sbin目录下只是为了方便执行,sbin目录下的文件/目录可在终端直接调 用,类似于下PATH变量指定的目录)
为脚本添加可执行权限: sudo chmod +x /usr/sbin/DataBackup
执行脚本: sudo DataBackup
如果需要定时执行备份命令的,只需将下面这段代码放到crontab 文件(sudo vim /etc/crontab)中去就可以了:
01 3 * * * root /usr/sbin/DataBackup #它代表着将于每天3点执行DataBackup脚本
“怎么用shell脚本进行MySQL数据库定时备份”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。