Ansible에서 FTP 서버에 파일을 추가하고 싶었습니다 ...
3323 단어 Ansibleftpansible-playbook
curl
두드리는 것이 베스트일까라고 생각한 대로입니다.curl
의 --ftp-create-dirs
옵션 굉장히 편리하다고 생각했다.curl - How To Use
환경
$ docker inspect --format="{{.Config.Image}}" pure-ftpd
stilliard/pure-ftpd:hardened
$ curl --version
curl 7.54.0 (x86_64-apple-darwin17.0) libcurl/7.54.0 LibreSSL/2.0.20 zlib/1.2.11 nghttp2/1.24.0
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz HTTP2 UnixSockets HTTPS-proxy
curl에서 다양한
$ curl -I ftp://foo:bar@localhost/1/; echo $?
0
$ curl -I ftp://foo:bar@localhost/404; echo $?
curl: (19) Given file does not exist
19
$ curl --silent ftp://foo:bar@localhost/newdir/newfile --ftp-create-dirs --upload-file /path/to/test.txt; echo $?
0
$ curl -I ftp://foo:bar@localhost/newdir/newfile; echo $?
Last-Modified: Wed, 22 Aug 2018 05:51:55 GMT
Content-Length: 143
Accept-ranges: bytes
0
예상대로 디렉토리를 만들지 않는 경우
curl
의 사양인가 Pure-FTPd
의 사양인가는 또한 RFC 로 정의되고 있는지, 거기까지 미조사입니다만 작성하는 디렉토리의 명칭에 반각 스페이스 (0x20) を含む場合、半角スペースが _
로 치환된 명칭의 디렉토리 작성되었음을 확인했습니다.
そもそもそこまで考慮するなら FTPサーバーとの通信に curl
사용하지 않는 것이 좋다고 개인적으로는 생각하기 때문에 더 이상은 추구하고 있지 않습니다
$ curl --silent --ftp-create-dirs "ftp://foo:[email protected]/x/ z/xz.log" --upload-file "x/ z/xz.log" -vvvvvvvvvvv
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to 127.0.0.1 (127.0.0.1) port 21 (#0)
< 220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
< 220-You are user number 1 of 5 allowed.
< 220-Local time is now 09:34. Server port: 21.
< 220-This is a private system - No anonymous login
< 220 You will be disconnected after 15 minutes of inactivity.
> USER foo
< 331 User foo OK. Password required
> PASS bar
< 230 OK. Current directory is /
> PWD
< 257 "/" is your current location
* Entry path is '/'
> CWD x
* ftp_perform ends with SECONDARY: 0
< 250 OK. Current directory is /x
> CWD z
< 550 Can't change directory to z: No such file or directory
> MKD z
< 257 "_z" : The directory was successfully created
> CWD z
< 550 Can't change directory to z: No such file or directory
* Server denied you to change to the given directory
* Uploaded unaligned file size (0 out of 18 bytes)
* Connection #0 to host 127.0.0.1 left intact
참고
curl Pure-FTPd - About
Reference
이 문제에 관하여(Ansible에서 FTP 서버에 파일을 추가하고 싶었습니다 ...), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/8800/items/004bd4021b34ef480ffc
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ docker inspect --format="{{.Config.Image}}" pure-ftpd
stilliard/pure-ftpd:hardened
$ curl --version
curl 7.54.0 (x86_64-apple-darwin17.0) libcurl/7.54.0 LibreSSL/2.0.20 zlib/1.2.11 nghttp2/1.24.0
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz HTTP2 UnixSockets HTTPS-proxy
$ curl -I ftp://foo:bar@localhost/1/; echo $?
0
$ curl -I ftp://foo:bar@localhost/404; echo $?
curl: (19) Given file does not exist
19
$ curl --silent ftp://foo:bar@localhost/newdir/newfile --ftp-create-dirs --upload-file /path/to/test.txt; echo $?
0
$ curl -I ftp://foo:bar@localhost/newdir/newfile; echo $?
Last-Modified: Wed, 22 Aug 2018 05:51:55 GMT
Content-Length: 143
Accept-ranges: bytes
0
예상대로 디렉토리를 만들지 않는 경우
curl
의 사양인가 Pure-FTPd
의 사양인가는 또한 RFC 로 정의되고 있는지, 거기까지 미조사입니다만 작성하는 디렉토리의 명칭에 반각 스페이스 (0x20) を含む場合、半角スペースが _
로 치환된 명칭의 디렉토리 작성되었음을 확인했습니다.
そもそもそこまで考慮するなら FTPサーバーとの通信に curl
사용하지 않는 것이 좋다고 개인적으로는 생각하기 때문에 더 이상은 추구하고 있지 않습니다
$ curl --silent --ftp-create-dirs "ftp://foo:[email protected]/x/ z/xz.log" --upload-file "x/ z/xz.log" -vvvvvvvvvvv
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to 127.0.0.1 (127.0.0.1) port 21 (#0)
< 220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
< 220-You are user number 1 of 5 allowed.
< 220-Local time is now 09:34. Server port: 21.
< 220-This is a private system - No anonymous login
< 220 You will be disconnected after 15 minutes of inactivity.
> USER foo
< 331 User foo OK. Password required
> PASS bar
< 230 OK. Current directory is /
> PWD
< 257 "/" is your current location
* Entry path is '/'
> CWD x
* ftp_perform ends with SECONDARY: 0
< 250 OK. Current directory is /x
> CWD z
< 550 Can't change directory to z: No such file or directory
> MKD z
< 257 "_z" : The directory was successfully created
> CWD z
< 550 Can't change directory to z: No such file or directory
* Server denied you to change to the given directory
* Uploaded unaligned file size (0 out of 18 bytes)
* Connection #0 to host 127.0.0.1 left intact
참고
curl Pure-FTPd - About
Reference
이 문제에 관하여(Ansible에서 FTP 서버에 파일을 추가하고 싶었습니다 ...), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/8800/items/004bd4021b34ef480ffc
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
_
로 치환된 명칭의 디렉토리 작성되었음을 확인했습니다.
そもそもそこまで考慮するなら FTPサーバーとの通信に curl
사용하지 않는 것이 좋다고 개인적으로는 생각하기 때문에 더 이상은 추구하고 있지 않습니다
$ curl --silent --ftp-create-dirs "ftp://foo:[email protected]/x/ z/xz.log" --upload-file "x/ z/xz.log" -vvvvvvvvvvv
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to 127.0.0.1 (127.0.0.1) port 21 (#0)
< 220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
< 220-You are user number 1 of 5 allowed.
< 220-Local time is now 09:34. Server port: 21.
< 220-This is a private system - No anonymous login
< 220 You will be disconnected after 15 minutes of inactivity.
> USER foo
< 331 User foo OK. Password required
> PASS bar
< 230 OK. Current directory is /
> PWD
< 257 "/" is your current location
* Entry path is '/'
> CWD x
* ftp_perform ends with SECONDARY: 0
< 250 OK. Current directory is /x
> CWD z
< 550 Can't change directory to z: No such file or directory
> MKD z
< 257 "_z" : The directory was successfully created
> CWD z
< 550 Can't change directory to z: No such file or directory
* Server denied you to change to the given directory
* Uploaded unaligned file size (0 out of 18 bytes)
* Connection #0 to host 127.0.0.1 left intact
참고
curl Pure-FTPd - About
Reference
이 문제에 관하여(Ansible에서 FTP 서버에 파일을 추가하고 싶었습니다 ...), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/8800/items/004bd4021b34ef480ffc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)