1、新建备份脚本

vi /home/mysqlbak/mysql_bak.sh填入以下内容:

mysql_user="USER" #MySQL备份用户
mysql_password="PASSWORD" #MySQL备份用户的密码
mysql_host="localhost"
mysql_port="3306"
mysql_charset="utf8" #MySQL编码
backup_db_arr=("db1" "db2") #要备份的数据库名称,多个用空格分开隔开 如("db1" "db2" "db3")
backup_location=/home/mysqlbak  #备份数据存放位置,末尾请不要带"/",此项可以保持默认,程序会自动创建文件夹
expire_backup_delete="ON" #是否开启过期备份删除 ON为开启 OFF为关闭
expire_days=3 #过期时间天数 默认为三天,此项只有在expire_backup_delete开启时有效
backup_time=`date +%Y%m%d%H%M`  #定义备份详细时间
backup_Ymd=`date +%Y-%m-%d` #定义备份目录中的年月日时间
backup_3ago=`date -d '3 days ago' +%Y-%m-%d` #3天之前的日期
backup_dir=$backup_location/$backup_Ymd  #备份文件夹全路径
welcome_msg="Welcome to use MySQL backup tools!" #欢迎语
mysql_ps=`ps -ef |grep mysql |wc -l`
mysql_listen=`netstat -an |grep LISTEN |grep $mysql_port|wc -l`
if [ [$mysql_ps == 0] -o [$mysql_listen == 0] ]; thenecho "ERROR:MySQL is not running! backup stop!"exit
elseecho $welcome_msg
fi
mysql -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password <<end
use mysql;
select host,user from user where user='root' and host='localhost';
exit
end
flag=`echo $?`
if [ $flag != "0" ]; thenecho "ERROR:Can't connect mysql server! backup stop!"exit
elseecho "MySQL connect ok! Please wait......"# 判断有没有定义备份的数据库,如果定义则开始备份,否则退出备份if [ "$backup_db_arr" != "" ];then#dbnames=$(cut -d ',' -f1-5 $backup_database)#echo "arr is (${backup_db_arr[@]})"for dbname in ${backup_db_arr[@]}doecho "database $dbname backup start..."`mkdir -p $backup_dir``mysqldump -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password $dbname --default-character-set=$mysql_charset | gzip > $backup_dir/$dbname-$backup_time.sql.gz`flag=`echo $?`if [ $flag == "0" ];thenecho "database $dbname success backup to $backup_dir/$dbname-$backup_time.sql.gz"elseecho "database $dbname backup fail!"fidoneelseecho "ERROR:No database to backup! backup stop"exitfi# 如果开启了删除过期备份,则进行删除操作if [ "$expire_backup_delete" == "ON" -a  "$backup_location" != "" ];then#`find $backup_location/ -type d -o -type f -ctime +$expire_days -exec rm -rf {} \;``find $backup_location/ -type d -mtime +$expire_days | xargs rm -rf`echo "Expired backup data delete complete!"fiecho "All database backup success! Thank you!"exit
fi

2、修改mysql_bak.sh脚本属性,赋予执行权限

chmod 755 /home/mysqlbak/mysql_bak.sh
chmod +x /home/mysqlbak/mysql_bak.sh

3、定时执行备份脚本

crontab -e加入如下内容:
*/5 * * * * /home/mysqlbak/mysql_bak.sh(每五分钟执行一次备份)
启动定时任务:
/bin/systemctl start crond.service

4、查看备份结果

5、定时任务操作举例

列出用户的定时任务列表:crontab -u 用户名 -l
启动定时任务:/bin/systemctl start crond.service
停止定时任务:/bin/systemctl stop crond.service
重启定时任务:/bin/systemctl restart crond.service
查看定时任务状态:/bin/systemctl status crond.service

*  *  *  *  *  command
分  时  日  月  周      命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
crontab文件的一些例子:
30 21 * * * /home/mysqlbak/mysql_bak.sh
上面的例子表示每晚的21:30执行备份脚本。
45 4 1,10,22 * * /home/mysqlbak/mysql_bak.sh
上面的例子表示每月1、10、22日的4 : 45执行备份脚本。
10 1 * * 6,0 /home/mysqlbak/mysql_bak.sh
上面的例子表示每周六、周日的1 : 10执行备份脚本。

CentOS7环境下MySQL定时备份相关推荐

  1. CentOS7下mysql定时备份并发送邮件到指定邮箱脚本

    CentOS7下mysql定时备份并发送邮件到指定邮箱脚本 网上有对应的教程,但是使用的mutt发送的邮件. 我从昨晚九点开始搞,搞到凌晨三点都没弄好,早上又搞了一早上也没弄好.因为网上的教程太老,或 ...

  2. centos7环境下MySQL安装教程

    Linux centos7环境下MySQL安装教程 作者:随缘相识-(志同道合) 字体:[增加 减小] 类型:转载 时间:2017-03-17 我要评论 这篇文章主要为大家详细介绍了Linux cen ...

  3. linux java mysql 备份 runtime_Linux下mysql定时备份脚本以及java实现

    sh脚本介绍 #!/bin/bash ####################################################### # crontab 定时备份########### ...

  4. Windows下Mysql定时备份的实现

    使用mysql的mysqldump命令,结合windows的任务计划程序,可以实现Mysql数据的自动备份. 一.批处理文件bat的创建 @echo off set "Ymd=%date:~ ...

  5. linux下mysql定时备份命令

    linux下,如需对mysql做备份,可以做个shell文件,一劳永逸 [root@iZ2zeavn7cbxg2g9bs5donZ mysqlbackup]# cat mysql_backup.sh ...

  6. linux下mysql定时备份数据库

    一.用命令实现备份 首页进入mysql的bin目录 1.备份数据 #mysqldump -uusername -ppassword discuz > discuz_2010-04-01.sql ...

  7. Windows下 mysql定时备份

    ** 使用mysqldump进行数据库备份 ** mysql数据库自带备份命令mysqldump,可对数据库进行备份操作 最简单的备份是将数据库备份至本地,生成 **.sql文件 编写备份脚本文件 ( ...

  8. CentOS7环境下MySQL踩坑记

    1.启动/配置/编码等问题 安装包放在opt目录下 安装:rpm -ivh rpm 软件名 如果安装时,与某个软件 xxx冲突,则需要将冲突的软件卸载掉: yum -y remove xxx 修改密码 ...

  9. mysql linux centos7_MySQL在Linux centos7环境下安装教程详解(图)

    这篇文章主要为大家详细介绍了Linux centos7环境下MySQL安装教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 Linux centos7环境下安装MySQL步骤的详细介绍 安装My ...

最新文章

  1. C#多线程学习(四) 多线程的自动管理(线程池) (转载系列)——继续搜索引擎研究...
  2. 基于局部均方差相关信息的图像去噪及其在实时磨皮美容算法中的应用
  3. Android短信发送流程之多收件人发送(原)
  4. 叮!快收好这份Android网络性能监控方案
  5. Mybatis的全局配置文件中的标签
  6. 建立一颗二叉排序树,并删除该二叉排序树上的某个节点
  7. 2021辽宁高考成绩查询公布,2021辽宁高考成绩什么时候出
  8. anaconda安装-清华镜像库
  9. VSCode 设置为 Monaco字体
  10. PageHelper分页插件踩坑--最后一页查询效率低下
  11. 排序算法之时间复杂度O(n2)
  12. 查看ASA日志服务器信息,ASA 日志管理
  13. Smartbi大数据在金融业的应用案例
  14. 不要再被误导了,64位X86 CPU是没有64位寻址能力的!
  15. 人工神经网络与神经网络,带反馈的人工神经网络
  16. 磁盘阵列是什么,主要做什么用?
  17. 在灰度图像上进行Mean Shift迭代搜索目标 ,一维加权直方图 + 巴氏系数 + Mean Shift迭代
  18. 【多目标优化】2. 非支配排序遗传算法 —(NSGA、NSGA-II)
  19. 卸载asterisk
  20. 五个“时髦”技术被判死刑

热门文章

  1. c#中的Length和GetLength()的区别
  2. 在Ubuntu上安装hadoop(截图太多,干脆来个大截图)
  3. MVC框架模式技术实例(用到隐藏帧、json、仿Ajax、Dom4j、jstl、el等)
  4. OverTheWire: Bandit通关指引
  5. 服务器页面文件后缀,使用HTML语言开发的WWW页面文件后缀名是什么
  6. 蓝牙耳机打游戏什么牌子好?打游戏超低延迟的蓝牙耳机推荐
  7. php:Notice: Use of undefined constant id - assumed 'xxxx' 解决办法
  8. 当你感到绝望时,可能是最接近成功的时候
  9. 是否同一棵二叉搜索树_如何在同一台计算机上安装Java的多个版本
  10. 电脑C盘清理,你了解吗