nics 发表于 2018-8-26 11:53:14

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

#!/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


页: [1]
查看完整版本: linux下shell编程之mysql备份(适合初学者)