Bash脚本在脚本中间停止执行,没有任何错误

时间:2011-01-21 16:58:12

标签: bash scripting

我有这个简单的bash脚本从我的dev服务器获取副本:

#!/bin/sh
DATE=`date +%Y-%m-%d_%H%M.%S`
BASEDIR="/var/www/db"
RELEASEDIR="$DATE";
RELEASEDIRFULL="$BASEDIR/releases/$RELEASEDIR"
mkdir -p "$RELEASEDIRFULL"
echo "Chdir to \"$RELEASEDIRFULL\""
cd "$RELEASEDIRFULL"
echo "Getting copy from dev"
ssh dev.example.tld "cd /tmp; cd /sites/db; tar -zcvp --exclude data --exclude scripts -f - *" | tar zxvpf -
ln -s /var/www/db/data data
ln -s /var/www/db/scripts scripts
cd $BASEDIR
rm htdocs; ln -s releases/$RELEASEDIR htdocs

最近它没有明显的理由停止了正常工作。它到达ssh行,执行得很好(文件出现在实时服务器上)但不继续使用ln命令。如果我注释掉ssh行,那么行将正确执行。

更新:我注意到当我以www-data登录并启动脚本时,它按预期完成,没有错误。

1 个答案:

答案 0 :(得分:1)

没时间检查手册页,但看起来你的tar输入是- * - 所有文件+ stdin?您是否意味着--暂停进一步的参数处理(如果tar支持)