您的位置:首页 > 运维架构 > Linux

解决linux crontab备份mysql失败的问题

2016-01-14 14:27 751 查看
数据库采用crontab调用xtrabackup备份。

但是我惊奇的发现,备份居然没有执行。

备份脚本如下



backup.sh 脚本如下

#!/bin/bash

TODAY=`date +%Y%m%d`

BACKUPDIR=/data/dbbak/${TODAY}

mkdir ${BACKUPDIR}

cd ${BACKUPDIR}

innobackupex --user=root --port=3306 ${BACKUPDIR}

DAYSAGO=`date -d \'3 days ago\' +%Y%m%d`

rm -rf /data/dbbak/${DAYSAGO}

看起来似乎没有什么问题。

但是..

crontab不能应用用户的环境变量,也就是说他找不到innobackupex这个命令...



而脚本中的innobackupex则在用户自己定义的PATH中,解决这个问题有三个方法

1.在/etc/crontab中增加PATH变量

2.在脚本中使用绝对路径

3.在脚本中引入用户环境变量。

我感觉第三种方法比较可行。

#!/bin/bash

export PATH=.:$PATH:/home/mysql/mysql-5.6.14/bin:/home/mysqlbackup/percona-xtrabackup-2.1.9-Linux-x86_64/bin;

TODAY=`date +%Y%m%d`

BACKUPDIR=/data/dbbak/${TODAY}

mkdir ${BACKUPDIR}

cd ${BACKUPDIR}

innobackupex --user=root --port=3306 ${BACKUPDIR}

DAYSAGO=`date -d \'3 days ago\' +%Y%m%d`

rm -rf /data/dbbak/${DAYSAGO}

幸亏发现的早..
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: