애플리케이션 서버와 데이터베이스 서버 간에 파일을 전송하기 위한 ksh 스크립트를 생성해야 합니다.

애플리케이션 서버와 데이터베이스 서버 간에 파일을 전송하기 위한 ksh 스크립트를 생성해야 합니다.

애플리케이션 서버의 한 위치에서 데이터베이스 서버로 특정 파일을 자동으로 전송해야 하는 요구 사항이 있습니다.

이 단계를 사용하여 수동으로 수행할 수 있지만 스크립트에서 사용해야 합니다.

#! /bin/ksh

directory path where the file need to be

ftp (hostname of the application server)

 username

 password

file location in the apps server

get filename

quit

답변1

일부 FTP 클라이언트에서는 명령줄에서 사용자 이름과 비밀번호를 지정할 수 있습니다. 제가 아는 두 가지는 ncftp입니다 lftp. 그런 다음 단일 비대화형 명령을 사용하여 스크립트 내의 파일을 검색할 수 있습니다.

답변2

나는 다음을 사용하여 그것을 얻었다:

ftp -inv <<EOF
open app.server.address
user username password
cd some/location
get filename
bye
EOF

ftp -i옵션은 대화형 프롬프트를 끄고 -n자동 로그인과 사용자 이름 및 비밀번호 프롬프트를 비활성화합니다.

답변3

스크립트 자체에 사용자 이름과 비밀번호를 저장하지 않으려면 ~/.netrc다음 형식을 사용하여 대상 호스트에 대한 항목을 생성할 수 있습니다.

machine <address>
login <username>
password <password>

<address>그중 및 는 각각 호스트 주소, 사용자 이름 및 비밀번호로 <login>대체됩니다 . 또한 적절한 권한(예: 소유자만 읽고 쓰기)이 있는지 <password>확인해야 합니다 . ~/.netrc이 접근 방식의 장점은 자격 증명이 한 위치에 저장되고 여러 스크립트에서 액세스할 수 있다는 것입니다. 적절한 권한이 있는지 확인하는 것이 ~/.netrc관리하는 것보다 쉽습니다.모두자격 증명이 필요할 수 있는 스크립트.

ftp그런 다음 계속 해서 명령을 전달할 수 있습니다 .여기 문서또는 사용lftp-c선택적으로 명령을 명령줄 인수로 전달할 수 있습니다 . 전자를 선택했다면 주의하세요.아니요에 저장된 자격 증명을 사용한 자동 로그인이 비활성화되므로 이 -n옵션을 지정하십시오 .ftp~/.netrc

관련 정보