Advertisement
Guest User

Untitled

a guest
Aug 9th, 2016
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.68 KB | None | 0 0
  1. #!/bin/bash
  2. #Shell Command For Backup MySQL Database Everyday Automatically By Crontab
  3.  
  4. USER=root
  5. PASSWORD="password"
  6. HOSTNAME="10.70.49.47"
  7. KEEPDATE="15"
  8.  
  9. BACKUP_DIR=/root/dbbackup/db/ #备份文件存储路径
  10. LOGFILE=${BACKUP_DIR}test.log #日记文件路径
  11. DATE=`date '+%Y%m%d-%H%M'` #日期格式(作为文件名)
  12. DUMPFILE=$DATE.sql #备份文件名
  13. ARCHIVE=$DATE.sql.tgz #压缩文件名
  14. OPTIONS="-h$HOSTNAME -u$USER -p$PASSWORD --all-databases"
  15. #mysqldump -help
  16.  
  17. #判断备份文件存储目录是否存在,否则创建该目录
  18. if [ ! -d $BACKUP_DIR ] ;
  19. then
  20. mkdir -p "$BACKUP_DIR"
  21. fi
  22.  
  23. #开始备份之前,将备份信息头写入日记文件
  24. echo " " >> $LOGFILE
  25. echo " " >> $LOGFILE
  26. echo "———————————————–" >> $LOGFILE
  27. echo "BACKUP DATE:" $(date +"%y-%m-%d %H:%M:%S") >> $LOGFILE
  28. echo "———————————————– " >> $LOGFILE
  29.  
  30. #切换至备份目录
  31. cd $BACKUP_DIR
  32. #使用mysqldump 命令备份制定数据库,并以格式化的时间戳命名备份文件
  33. mysqldump $OPTIONS > $DUMPFILE
  34. #判断数据库备份是否成功
  35. if [[ $? == 0 ]]; then
  36. #创建备份文件的压缩包
  37. tar czvf $ARCHIVE $DUMPFILE >> $LOGFILE 2>&1
  38. #输入备份成功的消息到日记文件
  39. echo "[$ARCHIVE] Backup Successful!" >> $LOGFILE
  40. #删除原始备份文件,只需保 留数据库备份文件的压缩包即可
  41. rm -f $DUMPFILE
  42. else
  43. echo "Database Backup Fail!" >> $LOGFILE
  44. fi
  45.  
  46. # 判断删除指定天数的备份
  47. find $BACKUP_DIR* -mtime +$KEEPDATE -exec rm {} \;
  48.  
  49. #输出备份过程结束的提醒消息
  50. echo "Backup Process Done"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement