lftp : 로그인, 원격 디렉토리에 파일을 넣고 단일 명령으로 종료 : 적절한 인용 도움말


17

나는 lftp -c한 번에 전체 세션을 수행 하고 싶고 (나중에 스크립트에서 이것을 시작할 것이므로) 관리 -e했지만 그 ofc는 내가 원하지 않는 대화 형 세션을 남겨 둡니다.

수동 상태

-c commands
          Execute the given commands and exit. Commands can be separated with a semicolon,  `&&'
          or  `||'.  Remember to quote the commands argument properly in the shell.  This option
          must be used alone without other arguments.

그러나 명령 / 상호 작용을 올바르게 인용하고 묶는 방법을 이해하지 못합니다.

lftp -e "put -O remote/dir/ /local/file.txt" -u user,pass ftpsite.com 훌륭하게 작동합니다. 그러나 명령을 실행 한 후 종료하고 싶습니다.

lftp -c "open -u user,pass ftpsite.com" || put -O "remote/dir/ /local/file.txt" 나에게 소리 지르거나 실제로 시도한 따옴표 조합 ( ||또는 &&상관없이)


; quit 또는; bye :) 추가
meso_2600

답변:


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

해야합니다.

그래도 문제가 해결되지 않으면 /etc/lftp.conf다음 줄을 추가하십시오 .

set ftp:ssl-protect-data true
set ftp:ssl-force true
set ftp:ssl-auth TLS
set ssl:verify-certificate no

2
비밀번호에 다음과 같은 문자가있는 경우이 작업을 수행 할 수 ' " : ;
Pete

첫 번째 쉼표 뒤에 공백이 있었기 때문에 문제가 발생했습니다. 일단 그것이 훌륭하게 작동한다는 것을 알았습니다
patrick

10

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


1

lftp -e "put -O remote/dir/ /local/file.txt; bye" ftp.yourhost.com

~ / .netrc 아래에 자격 증명을 넣습니다.

machine ftp.yourhost.com login your_username password your_password

bash 기록 옆에 업로드하는 동안 ps -aux를 사용할 때 암호를 읽을 수 있기 때문에 cli에 암호를 넣는 것은 절대로 할 일이 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.