내가 하고 싶은건 


1. 서버에 있는 www.war  파일을 www.war.back 으로 옮긴다.

2. 로컬에 있는 www.war 파일을 서버로 업로드


이거였다.


그런데, 이상하게 건건히 실행할때는 잘 되는 ant 스크립트가 두건을 연결해서 하니 안되는 현상이 발견되었다.


<target name="ssh.mv.war">

<sshexec host="server"

username="user"

password="password"

command="mv www.war www.war_bk;" 

trust="true" failonerror="false"

/>

</target>

<target name="ftp.put.war">

<ftp action="put" userid="user" password="password" server="server" remotedir="./" >

<fileset file="${dist}/www.war" />

</ftp>

</target>


왜그럴까를 한참 생각하다가

첫번째 드는 생각은 sleep 이었다.

뭔가 연속으로 파일을 인서트 할때

www.war 파일 백업이 끝나기도 전에 ftp 로 새로운 파일을 보내는 것 처럼 보여

서버에 sleep 명령어를 줘 보았다.


<sshexec host="server"

username="user"

password="password"

command="mv www.war www.war_bk;sleep 1;" 

trust="true" failonerror="false"

/>



 그래도 효과가 없다.


아 생각해보니 ant의 sshexec 은 한번 시행하는 역할만 할 뿐 끝날때까지 기다려 주는 역할을 하지 못하는 걸로 보인다.


그렇다면 sleep 명령어를 서버에서 주는게 아닌 ant 스크립트 자체에서 줘보기로 했다.




<target name="ssh.mv.war">

<sshexec host="server"

username="user"

password="password"

command="mv www.war www.war_bk;" 

trust="true" failonerror="false"

/>

<sleep seconds="1"/>

</target>

<target name="ftp.put.war">

<ftp action="put" userid="user" password="password" server="server" remotedir="./" >

<fileset file="${dist}/www.war" />

</ftp>

</target>



키야 ~ 보기좋게 성공~!


ant 에서 서버로 바로 수행시켜준 명령어에 대해서 종료 인증을 받은 후 작업을 수행하도록 하고 싶었지만


일단 mv 명령어가 1초이상 걸릴일은 없을테니 그 부분은 나중에 하기로 하고 


이 이슈는 이렇게 마무리 해두자.



Posted by JHoon Jung

댓글을 달아 주세요

  1. jackpot93 2014.07.20 15:30 신고 Address Modify/Delete Reply

    азартные игры слоты играть бесплатно без регистрации шарики, игровые автоматы ultra hot.

  2. jackpot64 2014.08.07 13:01 신고 Address Modify/Delete Reply

    интернет казино бесплатное, игровые автоматы бесплатно россия банк.

  3. blackjack65 2014.08.20 17:05 신고 Address Modify/Delete Reply

    играть бесплатно казино европа еще игровые автоматы бесплатно гараж.