애플리케이션 서버의 한 위치에서 데이터베이스 서버로 특정 파일을 자동으로 전송해야 하는 요구 사항이 있습니다.
이 단계를 사용하여 수동으로 수행할 수 있지만 스크립트에서 사용해야 합니다.
#! /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