mysql 备份库的shell_shell学习之自动备份mysql数据库
首先登陆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数据库相关推荐
- oracle删除库里的所有表,清空mysql指定库里全部表数据-自动删除所有表,有外键约束的表优先删除...
清空mysql指定库里所有表数据-自动删除所有表,有外键约束的表优先删除 由于要清空数据库数据 ,手动非常麻烦.网上找了一下,有一个Oracle的,参照它,在其上修改一下用于Mysql,把代码奉献如下 ...
- 计算机文件自动备份到移动硬盘,电脑文件定时自动备份到移动硬盘,有什么方法?...
原标题:电脑文件定时自动备份到移动硬盘,有什么方法? 如果你是一名上班族,那么肯定会有备份重要电脑文件的习惯,因为电脑系统崩溃挥着磁盘硬盘损坏将会导致电脑文件的丢失,文件备份可以帮助我们减少这种风险. ...
- 文件服务器如何异地备份,实战演示如何进行异地自动备份数据库
SQL专栏 SQL数据库基础知识汇总 SQL数据库高级知识汇总 有小伙伴提出如何进行异地备份的问题,今天我们就来给大家演示一下. 异地备份 所谓异地备份,就是将服务器端的数据文件,拷贝到本地或者其他地 ...
- 设置备份计划后,不能执行自动备份
1.设置备份计划后,不能执行自动备份: 2.查询知识库中内容,按照知识库提供的方式进行设置和调试,还是无法进行自动备份. 3.软件涉及版本航信10.2基础版.10.2标准版.10.3基础版.10.3标 ...
- inotify加rsync备份mysql_centos7 实现inotify-tools + rsync,自动备份mysql数据库
一. 环境说明 为了实现zabbix备份数据库自动同步,到备份服务器搭建 解决方案是在后端建立一个数据发布服务器,该服务器作为rsync客户端,通过inotify机制实时监控网站数据,当数据发生变化后 ...
- 怎么自动备份mysql数据库备份_3步教你一键自动备份mysql数据库的方法
@echo off color 0D MODE con: COLS=71 LINES=25 title mysql数据库自动备份脚本(任务计划)--脚本作者:https://www.***.com s ...
- 手把手教你玩 MySQL 删库不跑路,直接把 MySQL 的 binlog 玩溜
我们常常听人说,只要你愿意,MySQL 可以恢复至半个月甚至一个月以内的任何一个状态.网上也有很多删库跑路的段子... 那么今天松哥想和大家来聊一聊 MySQL 中的 binlog,来手把手教大家如何 ...
- linux oraclerman自动备份,Linux平台下的Oracle自动备份案例(使用RMAN)
有个童鞋问rman的自动备份脚本程序,我之前有写过exp备份指定方案自动备份案例(Linux平台下的Oracle自动备份案例(使用exp工具) http://www.linuxidc.com/Lin ...
- 自动备份html文件,windows下定期自动备份本地文件(文件夹)
虽然网上有一些免费的文件自动备份软件,但是没有自己编写一段批处理来完成备份任务来的放心,而且不用占用系统资源. 就给大家讲一下如何利用批处理完成本地文件或者文件夹的备份. 1.批处理脚本 该方法可把某 ...
最新文章
- 数学界的隐士:世界上最奇怪的数学天才,被奖励100万却拒领
- Java并发编程:Thread类的使用
- Eclipse中安装HibernateTools插件
- 雷军旗下金山云冲刺IPO:3年营收74亿,小米系贡献23%,CEO王育林仅持股2.1%
- Python 2大限来了!113天后自生自灭,官方不再维护更新 | 附升级指南
- Python:层次聚类分析——基于基站定位数据商圈分析
- python 惰性_Python学习---django惰性机制
- 2星|《深度模仿》:陷入锤子模式,案例太少,洞察力欠缺
- 如何向.js文件传变量(如session)
- [LeetCode]50.Pow(x, n)
- python随机出题_什么软件可以自制题库随机出题?怎么操作
- IEC61850应用入门读书笔记
- BT.709 vs BT.2020
- 《惢客创业日记》2019.01.18(周五)想象力害死人呀!
- 2016年腾讯实习生校园招聘-电面2
- 硬核干货|揭示波士顿动力机器人背后的专利技术(上)
- 电脑不小心删除文件如何找回?你还不知道这3个小技巧?
- win7的计算机功能在那打开,win7系统照相机功能在哪?win7系统打开照相机功能的方法...
- JGG | EVenn: 3分钟在线轻松绘制5种Venn图和Venn网络
- 汇编语言里 eax ebx ecx edx esi edi ebp esp这些都是什么意思啊