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'
.