lftp
다음과 유사한 명령이 제공됩니다 .
lftp -vv -d -c set ssl:ca-file /path/to/cert/ftps_cron-bundle.crt; set ssl:check-hostname no; set ftp:ssl-protect-data true; set sftp:connect-program "ssh -a -x -o PubkeyAuthentication=no"; set net:max-retries 2; open -e 'put /path/to/data/upload.txt;' -u username:password ftps://server.example.net/
명령 템플릿은 다양한 서버에서 작동하지만 한 서버에서는 업로드에 성공하더라도 오류 메시지가 표시됩니다.
---- CWD path to be sent is `/'
<--- 200 Command OPTS succeed
---> CWD /
<--- 550 Permission denied
cd: Access failed: 550 Permission denied (/)
이 서버로 lftp
보내는 것을 어떻게 방지합니까 ?CWD /
<--- 230 User logged in
---> FEAT
<--- 211-Extensions supported
<--- SIZE
<--- XMD5
<--- XSHA1
<--- XSHA256
<--- XSHA512
<--- XQUOTA
<--- LANG EN, ES, FR, GE
<--- MDTM
<--- MLST size*;type*;perm*;create*;modify*;
<--- REST STREAM
<--- TVFS
<--- UTF8
<--- AUTH SSL;TLS-P;
<--- PBSZ
<--- PROT C;P;
<--- 211 end
---> PWD
<--- 257 "/username/folder" is current directory
---> PBSZ 0
<--- 200 PBSZ=0
---> PROT P
<--- 200 PRIVATE data channel protection level set
---> LANG
<--- 200 Default languages set to EN
---> OPTS UTF8 ON
<--- 200 Command OPTS succeed
---> OPTS MLST size;type;perm;modify;
---- CWD path to be sent is `/'
서버는 사용자 이름을 기반으로 기본 업로드 디렉터리를 자동으로 설정합니다. 즉/username/folder
업로드는 오류 메시지를 생성하지 않고 이 기본 업로드 디렉터리로 이동해야 합니다. 업로드되었지만 로그에 오류 메시지가 표시됩니다.
cd: Access failed: 550 Permission denied (/)
---> TYPE I
<--- 200 Transfer mode set to BINARY
---> PASV
<--- 227 Entering Passive Mode (10,10,35,21,195,225).
---- Address returned by PASV seemed to be incorrect and has been fixed
---- Connecting data socket to (nnn.nnn.nnn.nnn) port 50145
---- Data connection established
---> ALLO 148891
<--- 200 Command ALLO succeed
---> STOR upload.txt
<--- 150 Uploading in BINARY file upload.txt
Certificate: ...
Issued by: ...
Trusted
WARNING: Certificate verification: hostname checking disabled
---- Closing data socket
<--- 226 Transfer completed
---> SITE UTIME 20190819100016 upload.txt
<--- 550 Command SITE failed
---> QUIT
---- Closing control socket
여러 가지가 시도되었습니다. 예를 들어, put 명령으로 다양한 경로를 사용합니다.
put -O . /path/to/data/upload.txt
put -O /username/folder /path/to/data/upload.txt
명시적으로 명령을 내리는 cd /username/folder
것도 시도되었습니다.
제거해 -vv
도 -d
효과가 없습니다.
실제로 실패를 의미하지 않는 원치 않고 혼란스러운 오류 메시지를 유발하는 lftp
자동 발행을 방지하려면 어떻게 해야 합니까 ?CWD /
$ lftp --version
LFTP | Version 4.4.8 | Copyright (c) 1996-2013 Alexander V. Lukyanov
...
Libraries used: Readline 6.2
답변1
URL 끝에 물결표(~)를 추가하십시오.
ftps://server.example.net/~
또는 간단히 후행 슬래시를 삭제하세요.
ftps://server.example.net