Microsoft 社는 2022년 6월 15일 Internet Explorer 11의 지원을 종료했습니다.

<scp> 와 <sshexec> Task

제목

<scp><sshexec> Task

<scp><sshexec> Task 를 이용하면 자동화의 수준을 높일 수 있다.

1. JSch 라이브러리 추가

JSch 홈페이지에서 jsch-0.1.55.jar 파일을 다운로드 한 후에, ANT_HOME 아래의 lib 디렉토리에 복사한다.

Apache Ant의 추가적인 라이브러리에 대해서는 Library Dependencies를 참조한다.

2. <scp>

sftp 로 파일을 보내거나 받아온다.

2.1. 파일 보내기

2.1.1. 기본적인 형태

<scp file="myfile.txt" todir="user:password@somehost:/home/chuck" trust="true" />

2.1.2. file 속성 대신 fileset 요소 사용

<scp todir="user:password@somehost:/home/chuck" trust="true">
<fileset dir="src_dir">
<include name="**/*.java"/>
</fileset>
</scp>

2.1.3. password 속성

<scp file="myfile.txt" todir="user@somehost:/home/chuck" password="password" trust="true" />

2.1.4. 실무에서

여러 개의 서로 다른 remote 디렉토리에 파일을 업로드하는 경우 <scp> Task 를 여러 번 사용해야 하기 때문에, 먼저 다음과 같이 <property> 로 정의하고,

<property name="remote.host" value="somehost" />
<property name="remote.username" value="user" />
<property name="remote.password" value="password" />

다음과 같이 <property> 를 가져다 쓴다.

<scp todir="${remote.username}@${remote.host}:/home/chuck" password="${remote.password}" trust="true">
<fileset dir="src_dir">
<include name="**/*.java"/>
</fileset>
</scp>

<property> 정의하는 대신, ant 명령어를 실행할 때 다음과 같이 해도 된다.

ant -Dremote.username=user -Dremote.password=password target1 target2

2.2. 파일 받기

파일 받기는 remote 쪽에서 fileset 을 사용할 수 없다.

<scp file="${remote.username}@${remote.host}:/home/chuck/*" todir="/home/sara" password="${remote.password}" trust="true" />

3. <sshexec>

다음과 같이 remote 서버에서 shell 명령어를 실행할 수 있다.

<sshexec host="${remote.host}" trust="yes"
username="${remote.username}"
password="${remote.password}"
command="ls"
/>

여러 개의 명령어를 실행하려는 경우,

  • 명령어를 ";" 로 나누거나,
  • 서버쪽에서 shell script 를 작성한다.

4. 참고자료

제목

첨부파일