当前位置:首页 > Mysql教程 > 列表

mysql定时备份数据库的shell脚本详解

发布:smiling 来源: PHP粉丝网  添加日期:2014-09-29 13:14:23 浏览: 评论:0 

本文章来给大家介绍关于mysql定时备份数据库的shell脚本详解,希望对大家会有所帮助呀.

  1.  vi /home/zhangy/database_bak.sh 
  2.  
  3.  #!/bin/sh 
  4.  # File: /home/zhangy/database_bak.sh 
  5.  # Database info bakupmysql TANK 2009/11/04 
  6.  DB_USER="root" #用户名 
  7.  DB_PASS="********" #密码 
  8.  DB_NAME="myblog" #要备份的数据名 
  9.  
  10.  # Others vars 
  11.  DATE=`date +%Y_%m_%d` #要备份的日期 
  12.  YESTERDAY=`date -d yesterday +%Y_%m_%d` #删除昨天的备份 
  13.  
  14.  BIN_DIR="/usr/local/mysql/bin" 
  15.  BCK_DIR="/home/zhangy/database_bak" #备份路径 
  16.  
  17.  cd $BCK_DIR 
  18.  
  19.  #删除以前该数据库的备份,因为我的linux下面还有2G硬盘空间,郁闷。 
  20.  if [ -f $YESTERDAY$DB_NAME".sql" ] 
  21.  then 
  22.  rm -f $YESTERDAY$DB_NAME".sql" 
  23.  fi 
  24.  
  25.  # 备份 
  26.  ${BIN_DIR}/mysqldump --opt -u${DB_USER} -p${DB_PASS} ${DB_NAME} > ${BCK_DIR}/${DATE}${DB_NAME}.sql 
  27. vi /home/zhangy/database_bak.sh 
  28. #!/bin/sh 
  29. # File: /home/zhangy/database_bak.sh 
  30. Database info bakupmysql TANK 2009/11/04 
  31. DB_USER="root" #用户名 
  32. DB_PASS="********" #密码 
  33. DB_NAME="myblog" #要备份的数据名 
  34. # Others vars 
  35. DATE=`date +%Y_%m_%d` #要备份的日期 
  36. YESTERDAY=`date -d yesterday +%Y_%m_%d` #删除昨天的备份 
  37. BIN_DIR="/usr/local/mysql/bin" 
  38. BCK_DIR="/home/zhangy/database_bak" #备份路径 
  39. cd $BCK_DIR 
  40. #删除以前该数据库的备份,因为我的linux下面还有2G硬盘空间,郁闷。 
  41. if [ -f $YESTERDAY$DB_NAME".sql" ] 
  42. then 
  43. rm -f $YESTERDAY$DB_NAME".sql" 
  44. fi 
  45. # 备份 
  46. ${BIN_DIR}/mysqldump --opt -u${DB_USER} -p${DB_PASS} ${DB_NAME} > ${BCK_DIR}/${DATE}${DB_NAME}.sql 

二,定期执行,把shell放到crontab里面,代码如下:

  1. #查看crond是否已启动 
  2. [root@BlackGhost cron]# ps -e|grep crond 
  3. 21519 ? 00:00:00 crond 
  4. #打开crontab 
  5. [root@BlackGhost cron]# crontab -e 
  6. #在里面加上一行 
  7. 00 18 * * * /home/zhangy/database_bak.sh 
  8. #查看一下是否已加上 
  9. [root@BlackGhost cron]# crontab -l 
  10. # DO NOT EDIT THIS FILE MANUALLY!! USE crontab -e INSTEAD
  11. # //phpfensi.com
  12. 01 * * * * /usr/sbin/run-cron /etc/cron.hourly 
  13. 02 00 * * * /usr/sbin/run-cron /etc/cron.daily 
  14. 22 00 * * 0 /usr/sbin/run-cron /etc/cron.weekly 
  15. 42 00 1 * * /usr/sbin/run-cron /etc/cron.monthly 
  16. 56 06 * * * /home/zhangy/www/bb.php 
  17. 51 23 * * * /sbin/shutdown -h now 
  18. 00 18 * * * /home/zhangy/database_bak.sh 

然后退出.

Tags: mysql定时备份 mysql脚本shell

分享到: