linux下使用shell编程实现mysql备份

本文主要给大家简单讲讲linux下使用shell编程实现mysql备份,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望linux下使用shell编程实现MysqL备份这篇文章可以给大家带来一些实际帮助。

1,shell常见变量解析:

    $0 当前脚本的名称

    $n 当前脚本的第n个参数

    $* 当前脚本的所有参数(不包括程序本身)

    $# 当前脚本的参数个数(不包括程序本身)

    $?命令或程序执行完成后的状态,一般返回0表示成功。

    $UID当前用户的ID

    $PWD当前所在的目录

    -ne 不等于

    -eq 等于

2,自动备份MysqL脚本思路

    ①,备份DB的命令

        MysqLdump -h227.0.0.1 -uroot -p123456 du >du_`date +%y%m%d`.sql

    ②,备份的机制

    ③,备份的目标和库

    ④,定期删除多少天以前的数据

  

#!/bin/bash
#auto backup MysqL datebases.
#by 2017
#define DB info PATH

sql_CMD="/usr/bin/MysqLdump"
sql_HOST="127.0.0.1"
sql_USR="root"
sql_PWD="123456"
sql_DB="du"
sql_DIR="/data/backup/`date +%y%m%d`"

#判断是否为root用户
if [ $UID -ne 0 ];then
	echo "only use root to exec."
	exit 
fi

#判断该路径是否存在,不存在就创建一个
if [ ! -d $sql_DIR ];then
	mkdir -p $sql_DIR
fi

#备份数据库
$sql_CMD -h$sql_HOST -u$sql_USR -p$sql_PWD $sql_DB >$sql_DIR/$sql_DB.sql

#判断是否备份成功,成功打印出来路径
if [ $? -eq 0 ];then
	echo "Backup MysqL already successful."
	echo "Backup path:$sql_DIR"
else
	echo "Backup MysqL Failed."
fi

#删除30天以前的备份文件
cd $sql_DIR/../ ; find . -mtime +30 -exec rm -rf {} \;
echo "Done"

#把脚本加到crontab任务计划里
grep "MysqL" /var/spool/cron/root >> /dev/null

if [ $? -ne 0 ];then
	echo "0 0 * * * /bin/bash /root/shell/MysqL.sh > /tmp/MysqL.log 2>&1" >>/var/spool/cron/root
	/etc/init.d/crond restart
fi

linux下使用shell编程实现MysqL备份就先给大家讲到这里,对于其它相关问题大家想要了解的可以持续关注我们的行业资讯。我们的板块内容每天都会捕捉一些行业新闻及专业知识分享给大家的。

相关文章

MySQL 死锁 是指两个或多个事务互相等待对方持有的锁,从而导...
在MySQL中,InnoDB引擎通过Next-Key Locking技术来解决幻读问...
在数据库事务管理中,Undo Log 和 Redo Log 是两种关键日志,...
case when概述 sql语句中的case语句与高级语言中的switch语句...
其实很简单,只是为了忘记,做个记录,用的时候方便。 不管是...
1.进入服务,找到mysql服务,在属性里找到mysql的安装路径 2...