前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >每天自动备份mysql脚本

每天自动备份mysql脚本

作者头像
wangxl
发布2018-03-07 17:12:55
2.1K0
发布2018-03-07 17:12:55
举报
文章被收录于专栏:PHP在线PHP在线

定时执行脚本:

  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

  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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-09-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 php 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档