FTP 로그인을 반복해서 입력할 필요가 없도록 스크립트를 작성하는 방법이 있습니까?

FTP 로그인을 반복해서 입력할 필요가 없도록 스크립트를 작성하는 방법이 있습니까?

나는 최근에 FTP 연결을 통해 원격 시스템으로 광범위하게 작업해 왔으며 세션이 너무 짧기 때문에 로컬 컴퓨터에서 작업을 완료할 때 자주 다시 로그인해야 하므로 사용자 정의 명령/ 쉘 스크립트 FTP 서버에 로그인하려면 한 단어가 필요하지만 문제는 이를 어떻게 수행하느냐입니다.

예를 들어

~$ ftp domainname.com
 ...
 Name (domainname.com): MyName
 ...
 Password: xxxx
 ...
 ftp>

답변1

일반적으로 ftp명령줄 클라이언트는 ~/.netrc원격 시스템의 자격 증명을 구성하는 구성 파일을 지원합니다. 예를 들면 다음과 같습니다.

machine legacy.system.example.org
login juser
password keins

이렇게 하면 ftp legacy.system.example.org이 정보를 다시 입력할 필요가 없습니다.

더 많은 자동화가 필요한 경우 ftp파이프된 명령을 통해 스크립트를 작성할 수 있습니다. 예를 들면 다음과 같습니다.

$ cat pushit.sh
# complex logic to set
# EXAMPLE_FILE=
ftp <<EOF
prompt
mput $EXAMPLE_FILE
quit
EOF

물론, 시스템이 이를 지원하지 않는다면 ssh아마도 FTP도 지원하지 않을 것입니다. 하지만 시도해 볼 수는 있습니다(예: 다음을 통해).FTP-SSL) 연결을 보호해야 하는 경우.

원격 FTP

일반 명령 중 하나에 대한 대안은 다음 ftp을 사용하는 것입니다.lftp, 자동 로그인 및 명령 실행 등 다양한 기능을 제공하기 때문입니다.

예:

$ lftp -e 'source ~/login.lftp'
$ cat login.lftp
open sftp://juser:[email protected]
cd /path/to/favorite/dir

이 예에서는SFTP표준 지원되지 않는 서버OpenSSH SFTP 클라이언트.

이 옵션은 -elftp가 시작 ​​시 명령을 실행하고 대화형을 유지하도록 지시합니다.

이러한 lftp 스크립트는 다른 스크립트를 얻을 수도 있고 서버에서 자동으로 연결을 끊을 수도 있습니다.

대조적으로, with -c또는 -flftp는 인수로 지정된 명령을 실행하거나 지정된 파일에서 읽은 직후에 종료됩니다.

답변2

모든 것을 스크립팅하려면 다음을 수행하십시오.

#!/bin/sh
HOST='ftp.example.com'
USER='yourid'
PASSWD='yourpw'
FILE='file.txt'

ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
put $FILE
quit
END_SCRIPT
exit 0

당신은 또한 볼 수 있습니다이 페이지.

답변3

자동으로 로그인하려면 파일을 사용하면 됩니다 .netrc. 사용자 이름과 비밀번호를 안전하지 않은 일반 텍스트로 저장해야 하기 때문에 이 방법은 권장하지 않습니다. SSH에 액세스할 수 있는 경우 SSH와 인증 키를 사용하여 로그인을 자동화하는 것이 좋습니다.

키를 사용하여 SSH와 같은 보안 방법을 사용할 수 없는 경우 다음을 통해 FTP 정보를 구성할 수 있습니다.이 가이드.

관련 정보