2011-01-21 107 views
1

我有这个简单的bash脚本,从我开发服务器获取副本:bash脚本停止脚本的执行中没有任何错误

#!/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数据登录并启动脚本时,它按预期完成,没有错误。

+0

“如果我评论ssh行,”...? – Cam 2011-01-21 16:59:33

+0

修复了缺失的结局。 – Henno 2011-01-21 17:00:50

回答

1

没有时间检查手册页,但看起来像你的焦油输入是- * - 所有文件+标准输入?你的意思是--暂停进一步的参数处理(如果tar支持的话)