linux下shell编程之mysql备份(适合初学者)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下shell编程之mysql备份(适合初学者)相关的知识,希望对你有一定的参考价值。


1,shell常见变量解析:

    $0 当前脚本的名称

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

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

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

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

    $UID当前用户的ID

    $PWD当前所在的目录

    -ne 不等于

    -eq 等于


2,自动备份mysql脚本思路

    ①,备份DB的命令

        mysqldump -h127.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




技术分享

本文出自 “天道酬勤” 博客,请务必保留此出处http://taindaochouqin.blog.51cto.com/12995943/1944062

以上是关于linux下shell编程之mysql备份(适合初学者)的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统shell脚本之定期清理备份文件

Linux系统shell脚本之mysql备份

Linux系统shell脚本之mysql的日志备份

Shell脚步之MySql分库分表备份

linux系统下mySQL数据库 备份方法和脚本?

大数据学习初体验:Linux学习+Shell基础编程+hadoop集群部署