한 줄에서 FTP 명령을 어떻게 실행합니까? Unknown host ftp> echo

이것은 FTP에 로그인 할 때 수행하는 작업입니다.

ftp user:password@server
ftp: user:password@server: Unknown host
ftp> echo HELLO WORLD!
ftp> quit

한 줄 FTP 명령을 수행하고 싶습니다 …

ftp user:password@server -command "echo HELLO WORLD"

또는

"echo HELLO WORLD" | ftp user:password@server

내가 만들려고하는 스크립트의 일부와 비슷한 것. 아무것도 전송되지 않습니다. 몇 가지 지침 만 에코하면됩니다. 이것이 두 시스템간에 가장 쉬운 방법입니다.



답변

그것은 실제로 SSH에 대한 더 많은 일이지만 (다른 사람들이 지적했듯이) ftp를 사용하기로 결정했다면 lftp를 사용해보십시오 . 현재 지원되는 모든 Ubuntu 버전에서 무료로 사용할 수 있습니다. 다음 명령으로 설치할 수 있습니다 sudo apt install lftp

lftp -u username,password -e "your command;quit" ftp.site.com

lftp -c는 명령을 실행 한 다음 종료 되는 스위치를 문서화 하지만 대부분의 배포판에서 손상된 것으로 보입니다. -e를 발행하지 않으면 연결 상태를 유지합니다 quit.


답변

단일 ftp 명령 으로이 컴퓨터에서 ftp 서버로 파일 전송을 실행하는 방법을 검색 할 때이 스레드를 찾았습니다. 방법은 다음과 같습니다.

ftp 명령으로 파일을 작성하십시오 ( ‘ftpcommands.txt’라고 함).

 open YourFtpServer.com
 user YourUserName YourPassword
 put localfilename remotefilename
 bye

그런 다음 ftp 명령을 실행하고 파일을 공급하십시오.

 ftp -n < ftpcommands.txt

-n 옵션은 ‘open’명령을받을 때 ftp가 자동으로 로그인을 시도하지 않도록합니다.

누군가에게 도움이 되길 바랍니다. 이 솔루션에 대한 온라인 내용을 찾을 수 없었으므로 직접 해결해야했습니다.


답변

원격으로 명령을 실행하기 위해 FTP를 사용할 수 없습니다. 파일 전송 프로토콜을 나타냅니다. 실제로 필요한 것은 SSH입니다.

ssh두 시스템에 패키지 를 설치 한 후이 안내서 에 따라 비밀번호없이 로그인을 설정하기 만하면됩니다.

그리고 지금 그것을 부르는 방법 :

ssh username@host echo "Hello World\!"

예를 들어, 이것은 나 자신에게하는 일입니다.

nick@AccessDenied:~$ ssh nick@localhost echo "Hello World\!"
Hello World!


답변

@charlesbridge 답변을 보완하려면 ~ / .bashrc 파일에 다음을 포함하십시오.

alias yoursite="lftp -u <username> -e \"<commandA;commandB>\" yoursite.com"

파일을 소싱하십시오.

source ~/.bashrc

이제 “yoursite”라는 별칭을 사용하여 원하는만큼 명령을 로그온하고 실행하십시오.


답변

다음을 사용하여 busybox를 설치하십시오.

apt-get install busybox

busybox는 Linux 또는 임베디드 시스템에서 모두 작동 한 다음 ftpget 및 ftpput을 사용할 수 있습니다

busybox ftpput -u USER -p PASSWD URL_FTPSERVER FILE_U_WANT

busybox ftpget -u USER -p PASSWD URL_FTPSERVER FILE_U_WANT


답변