我有一个ant目标,我成功使用sshexec-task在OpenSuse 11上使用tomcat安装服务器。
当我尝试运行启动新安装的服务器的脚本时出现问题。 我需要以root身份执行此操作,因此我使用了一个任务:
<sshexec host="${tss.hostname}"
username="${username}"
password="${password}"
trust="true"
Command="/usr/local/bin/foo/bar/tomcat/bin/startup.sh"
failonerror="false"/>
这个问题是我需要从它所在的文件夹运行脚本,因为它从该位置找到CATALINA_HOME和JAVA_HOME。路径“foo / bar”会随着时间的推移而改变,所以我不想永久地设置它。 我只想将我的跑步路径改为正确的路径。
由于我未能像这样启动服务器,我想调查一下并更改脚本,因此我使用“CommandResource =”cmd.txt“而不是直接命令。我以为我可以使用它来设置CATALINA_HOME之前我启动了服务器并解决了这个问题。
这是使用cmd.txt时的结果:
[sshexec] Connecting to foo-bar:22
[sshexec] cmd :
[sshexec] cmd : cd /usr/local/bin/foo/bar/tomcat/bin
[sshexec] cmd : pwd
[sshexec] /root
[sshexec] cmd : echo $PATH
[sshexec] /usr/java/jdk1.6.0_27/bin:/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/opt/kde3/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin
[sshexec] cmd : export CATALINA_HOME=$PATH:/usr/local/bin/tibco/tss/4.5.0/tomcat
[sshexec] cmd : echo $PATH
[sshexec] /usr/java/jdk1.6.0_27/bin:/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/opt/kde3/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin
这表明cd和export命令都没有任何效果。
我怀疑我需要更改ssh的权限。我已经读过,我可能需要更改.ssh / config。但我不知道如何或在哪里...
所以,总结这个长问题:
如果能够使用在Jenkins中运行的ant脚本从正确的tomcat / bin文件夹中以root身份运行我的startup.sh,我需要做什么?
答案 0 :(得分:8)
我发现“cd”在同一行上完成时有效......
<sshexec host="${tss.hostname}"
username="${username}"
password="${password}"
trust="true"
Command="(cd /usr/local/bin/foo/bar/tomcat/bin; startup.sh)"
failonerror="false"/>
我实际上并没有使用它来运行shell脚本,但我经常会有ant更改目录,然后运行GIT命令。
答案 1 :(得分:0)