- 论坛徽章:
- 0
|
本帖最后由 spluto 于 2013-02-24 13:18 编辑
大家好,我在我的VPS上写了一个导出数据库的批处理文件,是Bash的,然后用crontab设置在每天凌晨1点整执行,脚本写好之后,手工测试无任何问题,可以得到完整的数据库备份文件,但是如果把这个批处理放到crontab中执行,每次得到的都是一个空文件,我查了一些资料,但也没有得到什么好的结果,请大家赐教,帮我看看问题出在哪里,谢谢!
附1: 批处理内容:- #!/usr/local/bin/bash
- #VARIABLES DEFINITION
- YEAR=`date|cut -c 25-28`
- MONTH=`date +%m`
- DAY=`date +%d`
- HOUR=`date|cut -c 12-13`
- MINUTE=`date|cut -c 15-16`
- SECOND=`date|cut -c 18-19`
- LOG_DATE_FORMAT=$YEAR-$MONTH-$DAY
- LOG_TIME_FORMAT=$HOUR:$MINUTE:$SECOND
- # DATABASE PARAMETERS DEFINITION
- DB_NAME=***
- DB_USER=***
- DB_PASS=***
- DB_FILE=$DB_NAME.$YEAR$MONTH$DAY.sql
- DB_PATH=/home/backup/mysql/
- DB_LOG=/home/backup/mysql/backup.log
- # Starting process database
- echo " " >> $DB_LOG
- echo "============================================= Log file created on $LOG_DATE_FORMAT =========================================" >> $DB_LOG
- echo " " >> $DB_LOG
- echo "[$LOG_TIME_FORMAT]-[Database backup - By Server]: System variables were set, date format: YYYY-MM-DD, time format: HH:MM:SS." >> $DB_LOG
- echo "[$LOG_TIME_FORMAT]-[Database backup - By Server]: Database parameters were set." >> $DB_LOG
- mysqldump -u$DB_USER -p$DB_PASS --database $DB_NAME > $DB_PATH$DB_FILE
- echo "[$LOG_TIME_FORMAT]-[Database backup - By Server]: Database \"$DB_NAME\" was dumped successfully!" >> $DB_LOG
- tar -czf $DB_PATH$DB_FILE.tar.gz $DB_PATH$DB_FILE
- chmod 777 $DB_PATH$DB_FILE.tar.gz
- chown backup $DB_PATH$DB_FILE.tar.gz
- chgrp backup $DB_PATH$DB_FILE.tar.gz
- echo "[$LOG_TIME_FORMAT]-[Database backup - By Server]: Dump file was compressed successfully!(.sql -> .tar.gz)" >> $DB_LOG
- rm $DB_PATH$DB_FILE
- echo "[$LOG_TIME_FORMAT]-[Database backup - By Server]: Original file(.sql) was deleted successfully!" >> $DB_LOG
- exit 0
复制代码 附2:crontab设置:- [root@BSD:/]#crontab -l
- */30 * * * * /usr/sbin/ntpdate 3.freebsd.pool.ntp.org
- 0 1 * * * /root/scripts/mysql_dump.sh
复制代码 |
|