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备份(适合初学者)的主要内容,如果未能解决你的问题,请参考以下文章