| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
gxfw
10年前发布

每天自动备份mysql脚本

1、执行  crontab -e  00 00 * * * /bin/bash yourpath/mysqlbak.sh  2、打开自动执行文件  vi /etc/crontab  在etc中加入如下内容,让其自动执行任务。  00 00 * * * root /mysqlbak.sh  以上两个 00    00    *    *    *  为每天的凌晨自动执行脚本    分 时 日 月 周 命令    M: 分钟(0-59)。每分钟用*或者 */1表示  H:小时(0-23)。(0表示0点)  D:天(1-31)。  m: 月(1-12)。  d: 一星期内的天(0~6,0为星期天)。  每五分钟执行    */5 * * * *  每小时执行      0 * * * *  每天执行        0 0 * * *  每周执行        0 0 * * 0  每月执行        0 0 1 * *  每年执行        0 0 1 1 *  重启cron  /etc/rc.d/init.d/crond restart  or  service crond restart  详细请看crond的wiki  http://zh.wikipedia.org/wiki/Cron  mysqlback.sh  #!/bin/bash  #功能说明:本功能用于备份数据库  #编写日期:2010/12/06  PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin  export PATH  #数据库用户名  dbuser=’root’  #数据库密码  dbpasswd=’123456′  #数据库名,可以定义多个数据库,中间以空格隔开,如:test test1 test2  dbname=’test1 test2′  #备份时间  backtime=`date +%Y%m%d%H%M%S`  #日志备份路径  logpath=’/second/backup’  #数据备份路径  datapath=’/second/backup’  #日志记录头部  echo ‘”备份时间为${backtime},备份数据库表 ${dbname} 开始” >> ${logpath}/mysqllog.log  #正式备份数据库  for table in $dbname; do  source=`mysqldump -u ${dbuser} -p${dbpasswd} ${table}> ${logpath}/${backtime}.sql` 2>> ${logpath}/mysqllog.log;  #备份成功以下操作  if [ "$?" == 0 ];then  cd $datapath  #为节约硬盘空间,将数据库压缩  tar jcf ${table}${backtime}.tar.bz2 ${backtime}.sql > /dev/null  #删除原始文件,只留压缩后文件  rm -f ${datapath}/${backtime}.sql  echo “数据库表 ${dbname} 备份成功!!” >> ${logpath}/mysqllog.log  else  #备份失败则进行以下操作  echo “数据库表 ${dbname} 备份失败!!” >> ${logpath}/mysqllog.log  fi  done