首先登陆mysql:

mysql -u root -p注意:不是系统root的密码,mysql安装好后默认root密码为空

>set password for 'root'@'localhost' = password('*****');--修改root用户的本地密码

>grant all on zabbix.* to backup@'localhost' identified by "123456";---创建备份zabbix数据库的用户和密码,授权了对zabbix数据库的所有权限

退出数据库,我们编辑/etc/my.cnf,在[client]模块下添加用户名和密码如下:

host=localhost

user=backup

password='123456'

准备工作做好后来写脚本:

------------------------mysql_backup.sh--------------------------------------

#!/bin/bash

#auto backup mysql db --说明信息

#from net video 2017  --说明信息

#define backup path  --第一步做好参数定义准备工作,有利于后面代码的简洁

BAK_DIR=/data/backup/`date +%Y%m%d`

MYSQLDB=zabbix

MYSQLCMD=/usr/bin/mysqldump

#以上的参数第一个是指定备份路径,第二个是备份的数据库名,第三个是备份的执行程序

#Juge the exec user author

if [ $UID -ne 0 ];then

echo "Must to be use root for exec shell."

exit

fi

#以上的语句主要是用于判断是否用root用户执行

#Juge if backup exists

if [ ! -d $BAK_DIR ];then

mkdir -p $BAK_DIR

echo -e "\033[32mThe $BAK_DIR Creat Successfully!\033[0m"

else

echo "This $BAK_DIR is exists..."

fi

#以上的语句是判断备份的目录是否存在,如果不存在则创建并提示创建成功

#Mysql backup command

$MYSQLCMD --defaults-extra-file=/etc/my.cnf -d $MYSQLDB >$BAK_DIR/$MYSQLDB.sql

#这条语句就是执行备份的,--defaults-extra-file应用文件中的mysql用户和密码,-d参数,只导出表结构

#Juge Success or Failed

if [ $? -eq 0 ];then

echo -e "\033[32mThe Mysql Backup $MYSQLDB Successfully!\033[0m"

else

echo -e "\033[32mThe Mysql Backup $MYSQLDB Failed,Please check.\033[0m"

fi

#以上的语句只是一个提示备份成功与否的信息if [ $? -eq 0 ]判断以上的代码是否执行有误

在执行脚本前先用命令检测脚本:sh -n auto_mysql_backup.sh

为了测试效果,我们先来查看一下备份目录下是否有该文件,可以看到没有出现20170405这样的目录

sh auto_mysql_backup.sh执行脚本

可以看到提示说创建20170405的目录成功并备份成,我们去目录下看看呢?

以上可以看到备份zabbix数据库成功。

备注:在以上的脚本中我们可以修改MYSQLDB为一个手动输入的参数,这样使得我们的脚本更智能

crontab -e

0  0 * * * /bin/bash /data/sh/auto_mysql_backup.sh >>/tmp/mysql_back.log

将该脚本写入crontab中每天都去执行,在以后的文章中再写一个增量备份的,更智能化。

在数据库中授权MYDB数据库给backup用户 grant all on MYDB.* to backup@'localhost' identified by "123456";

对以上文档稍作修改如下:

-------------------------auto_mysql_backup02.sh---------------------------------------

#!/bin/bash

#auto backup database

#from net video 2017

BAK_DIR=/data/backup/`date +%Y%m%d`

MYSQLDB=$1

MYSQLCMD=/usr/bin/mysqldump

if [ $UID -ne 0 ];then

echo "Must to be use root for exec shell."

exit

fi

#增加的代码如下

if [ -z "$1" ];then

echo -e "\033[32mUsage:\nPlease Enter DataBase that you will backup \n-------------------------------\n\nUsage: { $0 mysql } \033[0m"

exit

fi

if [ ! -d $BAK_DIR ];then

mkdir -p $BAK_DIR

echo -e "\033[32mThe $BAK_DIR Creat Successfully!\033[0m"

else

echo "This $BAK_DIR is exists..."

fi

#Mysql BACKUP COMMAND

$MYSQLCMD --defaults-extra-file=/etc/my.cnf -d $MYSQLDB >$BAK_DIR/$MYSQLDB.sql

if [ $? -eq 0 ];then

echo -e "\033[32mThe Mysql Backup $MYSQLDB Successfully!\033[0m"

else

echo -e "\033[32mThe Mysql Backup $MYSQLDB Failed,Please check.\033[0m"

fi

---------------------------------------------------------------------------------------------------sh auto_mysql_backup02.sh MYDB--这样就可以备份指定的数据库了,只要授权给了backup用户,这里的授权用户我们也可以做成输入参数$2来处理。

mysql 备份库的shell_shell学习之自动备份mysql数据库相关推荐

  1. oracle删除库里的所有表,清空mysql指定库里全部表数据-自动删除所有表,有外键约束的表优先删除...

    清空mysql指定库里所有表数据-自动删除所有表,有外键约束的表优先删除 由于要清空数据库数据 ,手动非常麻烦.网上找了一下,有一个Oracle的,参照它,在其上修改一下用于Mysql,把代码奉献如下 ...

  2. 计算机文件自动备份到移动硬盘,电脑文件定时自动备份到移动硬盘,有什么方法?...

    原标题:电脑文件定时自动备份到移动硬盘,有什么方法? 如果你是一名上班族,那么肯定会有备份重要电脑文件的习惯,因为电脑系统崩溃挥着磁盘硬盘损坏将会导致电脑文件的丢失,文件备份可以帮助我们减少这种风险. ...

  3. 文件服务器如何异地备份,实战演示如何进行异地自动备份数据库

    SQL专栏 SQL数据库基础知识汇总 SQL数据库高级知识汇总 有小伙伴提出如何进行异地备份的问题,今天我们就来给大家演示一下. 异地备份 所谓异地备份,就是将服务器端的数据文件,拷贝到本地或者其他地 ...

  4. 设置备份计划后,不能执行自动备份

    1.设置备份计划后,不能执行自动备份: 2.查询知识库中内容,按照知识库提供的方式进行设置和调试,还是无法进行自动备份. 3.软件涉及版本航信10.2基础版.10.2标准版.10.3基础版.10.3标 ...

  5. inotify加rsync备份mysql_centos7 实现inotify-tools + rsync,自动备份mysql数据库

    一. 环境说明 为了实现zabbix备份数据库自动同步,到备份服务器搭建 解决方案是在后端建立一个数据发布服务器,该服务器作为rsync客户端,通过inotify机制实时监控网站数据,当数据发生变化后 ...

  6. 怎么自动备份mysql数据库备份_3步教你一键自动备份mysql数据库的方法

    @echo off color 0D MODE con: COLS=71 LINES=25 title mysql数据库自动备份脚本(任务计划)--脚本作者:https://www.***.com s ...

  7. 手把手教你玩 MySQL 删库不跑路,直接把 MySQL 的 binlog 玩溜

    我们常常听人说,只要你愿意,MySQL 可以恢复至半个月甚至一个月以内的任何一个状态.网上也有很多删库跑路的段子... 那么今天松哥想和大家来聊一聊 MySQL 中的 binlog,来手把手教大家如何 ...

  8. linux oraclerman自动备份,Linux平台下的Oracle自动备份案例(使用RMAN)

    有个童鞋问rman的自动备份脚本程序,我之前有写过exp备份指定方案自动备份案例(Linux平台下的Oracle自动备份案例(使用exp工具)  http://www.linuxidc.com/Lin ...

  9. 自动备份html文件,windows下定期自动备份本地文件(文件夹)

    虽然网上有一些免费的文件自动备份软件,但是没有自己编写一段批处理来完成备份任务来的放心,而且不用占用系统资源. 就给大家讲一下如何利用批处理完成本地文件或者文件夹的备份. 1.批处理脚本 该方法可把某 ...

最新文章

  1. 数学界的隐士:世界上最奇怪的数学天才,被奖励100万却拒领
  2. Java并发编程:Thread类的使用
  3. Eclipse中安装HibernateTools插件
  4. 雷军旗下金山云冲刺IPO:3年营收74亿,小米系贡献23%,CEO王育林仅持股2.1%
  5. Python 2大限来了!113天后自生自灭,官方不再维护更新 | 附升级指南
  6. Python:层次聚类分析——基于基站定位数据商圈分析
  7. python 惰性_Python学习---django惰性机制
  8. 2星|《深度模仿》:陷入锤子模式,案例太少,洞察力欠缺
  9. 如何向.js文件传变量(如session)
  10. [LeetCode]50.Pow(x, n)
  11. python随机出题_什么软件可以自制题库随机出题?怎么操作
  12. IEC61850应用入门读书笔记
  13. BT.709 vs BT.2020
  14. 《惢客创业日记》2019.01.18(周五)想象力害死人呀!
  15. 2016年腾讯实习生校园招聘-电面2
  16. 硬核干货|揭示波士顿动力机器人背后的专利技术(上)
  17. 电脑不小心删除文件如何找回?你还不知道这3个小技巧?
  18. win7的计算机功能在那打开,win7系统照相机功能在哪?win7系统打开照相机功能的方法...
  19. JGG | EVenn: 3分钟在线轻松绘制5种Venn图和Venn网络
  20. 汇编语言里 eax ebx ecx edx esi edi ebp esp这些都是什么意思啊

热门文章

  1. 剑指offer 菲波那切数列
  2. Scala入门到精通——第十四节 Case Class与模式匹配(一)
  3. Spark SQL程序实现RDD转换DataFrame
  4. KVM 虚拟化环境安装
  5. 操作系统概念学习笔记 16 内存管理(二) 段页
  6. Windows系统安全模式妙用全接触
  7. 笔试算法复习——数组去重
  8. shell基本运算符
  9. shell 变量相关的命令
  10. crawler碎碎念5 豆瓣爬取操作之登录练习