나는 한 번에 전체 세션을 수행하고 싶고 lftp -c
(나중에 스크립트에서 이 세션을 시작할 것이기 때문에) 관리했지만 -e
그로 인해 원하지 않는 대화형 세션이 남게 되었습니다.
수동 상태
-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"
그냥 나한테 소리지르거나 실제로 내가 시도한 인용문 조합( ||
또는 &&
상관없이)
답변1
$ 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
lftp -e "put -O remote/dir/ /local/file.txt; bye" -u user,pass ftpsite.com
답변3
lftp -e "put -O remote/dir/ /local/file.txt; bye" ftp.yourhost.com
다음과 같이 ~/.netrc 아래에 자격 증명을 입력하세요.
machine ftp.yourhost.com login your_username password your_password
업로드 중에 ps -aux를 사용할 때에도 읽을 수 있기 때문에 cli에 비밀번호를 입력하는 것은 절대 불가능합니다. bash 기록 옆에도 있습니다.