lftp 사용자 자격 증명은 -e 또는 -c와 함께 사용할 수 없습니다.

lftp 사용자 자격 증명은 -e 또는 -c와 함께 사용할 수 없습니다.

lftp하나의 명령을 사용하여 파일을 원격 디렉터리에 넣고 종료하고 싶습니다 . 상위 답변 팔로우이 문제이 작업과 관련하여 다음을 시도했습니다.

lftp -c "open -u user,pass ftpsite.com; put -O remote/dir/ /local/file.txt"

다음 오류가 발생합니다.

넣기: 로그인 실패: 530 상자: 잘못된 사용자 자격 증명.

나는 두 번째 대답을 시도했다

lftp -e "put -O remote/dir/ /local/file.txt; bye" -u user,pass ftpsite.com

같은 오류가 발생했습니다.

단계별로 완료하면 모든 것이 완벽합니다.

lftp ftpsite.com -u user,pass
put -O remote/dir/ /local/file.txt
bye

하지만 많은 파일에 대해 이 작업을 수행해야 합니다. 명령을 사용하여 스크립트의 일부로 실행하고 싶습니다. 이 오류를 해결하는 방법이나 검색/시작 위치에 대한 팁이 있습니까?

답변1

대부분의 스크립트에서 자동 업로드/다운로드를 사용 lftp하며 HEREDOC 구문을 사용하면 항상 작동합니다.

 lftp -u user,pass ftpsite.com << EOF
 cd remote/dir/ 
 put /local/file.txt
 bye
 EOF

'비밀번호에는 쉘에서 해석된(그리고 올바르게 전달되지 않은 lftp) 예약 문자가 포함될 수 있으므로 다음 범위 내에서 비밀번호를 보호하십시오 lftp -u user,'password'.

관련 정보