shell脚本运行出错
时间:2011-07-07
来源:互联网
我做mysql数据库备份,发现了一个很诡异的事情,写了脚本,手动运行可以的,但是假如crontab之后运行,发现到压缩(tar)的时候就出错了,这是为什么呢?以下附脚本:
test -d $BACKUP/$NOW || mkdir $BACKUP/$NOW
DBS="spp_vbb"
for db in $DBS
do
### Create dir for each databases, backup tables in individual files ###
test -d $BACKUP/$db-$NOW && rm -fr $BACKUP/$db-$NOW
mkdir $BACKUP/$db-$NOW
echo "####################$db####################" >> $LOGFILE
for i in `echo "show tables" | $MYSQL -u $MUSER -h $MHOST -p$MPASS $db | grep -v Tables_in_`
do
# FILE=$BACKUP/$NOW/$db/$i.sql.gz
echo $i
$BACKSCRIPT $db $i --result-file=$BACKUP/$db-$NOW/$i.sql 2>> $LOGFILE
#MDATE=`date +%m`
done
cd $BACKUP/
$TAR -zvcf $db-$NOW.tar.gz $db-$NOW 2>> $LOGFILE #此处就会出错,我在目录下找不到tar包,可以找到spp_vbb-20110707的目录
$CHMOD 0777 $db-$NOW.tar.gz
if [ $? -eq 0 ]; then
rm -fr $db-$NOW
fi
echo "$DATENOW DATABASE $db AS $db-$NOW.tar.gz" >> $LOGFILE
mv $db-$NOW.tar.gz $NOW/
done
echo "$DATENOW DATABASE AS $NOW.tar.gz ok" >> $LOGFILE
exit 0
test -d $BACKUP/$NOW || mkdir $BACKUP/$NOW
DBS="spp_vbb"
for db in $DBS
do
### Create dir for each databases, backup tables in individual files ###
test -d $BACKUP/$db-$NOW && rm -fr $BACKUP/$db-$NOW
mkdir $BACKUP/$db-$NOW
echo "####################$db####################" >> $LOGFILE
for i in `echo "show tables" | $MYSQL -u $MUSER -h $MHOST -p$MPASS $db | grep -v Tables_in_`
do
# FILE=$BACKUP/$NOW/$db/$i.sql.gz
echo $i
$BACKSCRIPT $db $i --result-file=$BACKUP/$db-$NOW/$i.sql 2>> $LOGFILE
#MDATE=`date +%m`
done
cd $BACKUP/
$TAR -zvcf $db-$NOW.tar.gz $db-$NOW 2>> $LOGFILE #此处就会出错,我在目录下找不到tar包,可以找到spp_vbb-20110707的目录
$CHMOD 0777 $db-$NOW.tar.gz
if [ $? -eq 0 ]; then
rm -fr $db-$NOW
fi
echo "$DATENOW DATABASE $db AS $db-$NOW.tar.gz" >> $LOGFILE
mv $db-$NOW.tar.gz $NOW/
done
echo "$DATENOW DATABASE AS $NOW.tar.gz ok" >> $LOGFILE
exit 0
作者: salley_2010 发布时间: 2011-07-07
执行的时候把输出信息定向一下,看看
your.sh 1>/tmp/1.out 2>/tmp/2.out
your.sh 1>/tmp/1.out 2>/tmp/2.out
作者: justkk 发布时间: 2011-07-07
引用楼主 salley_2010 的回复:
我做mysql数据库备份,发现了一个很诡异的事情,写了脚本,手动运行可以的,但是假如crontab之后运行,发现到压缩(tar)的时候就出错了,这是为什么呢?以下附脚本:
test -d $BACKUP/$NOW || mkdir $BACKUP/$NOW
DBS="spp_vbb"
for db in $DBS
do
### Create dir for each databases……
我做mysql数据库备份,发现了一个很诡异的事情,写了脚本,手动运行可以的,但是假如crontab之后运行,发现到压缩(tar)的时候就出错了,这是为什么呢?以下附脚本:
test -d $BACKUP/$NOW || mkdir $BACKUP/$NOW
DBS="spp_vbb"
for db in $DBS
do
### Create dir for each databases……
我手动执行是正确的。可以得到结果,就是加入到crontab中了之后会不执行tar
作者: salley_2010 发布时间: 2011-07-07
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28