但是我驚奇的發現,備份居然沒有執行。
備份腳本如下
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}