Как выполнить команды FTP в одной строке?

Это то, что я делаю, когда я вхожу в 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 

Нечто подобное ... как часть сценария, который я пытаюсь создать. Ничего не передается, мне просто нужно повторить некоторые инструкции, и это самый простой способ сделать это между двумя моими системами.

18
задан 14 September 2011 в 23:52

5 ответов

В дополнение к ответу @charlesbridge, включите в ваш файл ~ / .bashrc следующее:

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

Источник файла:

source ~/.bashrc

Теперь используйте псевдоним «yoursite» для входа в систему. и выполните столько команд, сколько захотите.

0
ответ дан 14 September 2011 в 23:52

Я нашел этот поток, когда искал способ, чтобы одна команда ftp выполнила передачу файла с этого компьютера на сервер ftp. Вот как:

Создайте файл с командами ftp: (назовите его «ftpcommands.txt»)

 open YourFtpServer.com
 user YourUserName YourPassword
 put localfilename remotefilename
 bye

Затем запустите команду ftp и введите в нее файл:

 ftp -n < ftpcommands.txt

Опция -n не позволяет ftp пытаться войти в систему автоматически, когда она получает команду «открыть».

Надеюсь, это поможет кому-то. Я не смог найти в Интернете ничего подобного, поэтому мне пришлось самому в этом разобраться.

0
ответ дан 14 September 2011 в 23:52

Вы не можете использовать FTP для удаленного выполнения команд. Он обозначает протокол передачи файлов. Что вам действительно нужно, так это SSH.

Все, что вам нужно сделать, это установить пакет ssh на обеих машинах, а затем следовать этому руководству для настройки входа без пароля.

А теперь как это назвать:

ssh username@host echo "Hello World\!"

Например, это я делаю это для себя:

nick@AccessDenied:~$ ssh nick@localhost echo "Hello World\!"
Hello World!
0
ответ дан 14 September 2011 в 23:52

Это действительно больше для SSH (как уже отмечали другие), но если вы решили использовать ftp, попробуйте lftp . Он свободно доступен для всех поддерживаемых в настоящее время версий Ubuntu. Вы можете установить его с помощью команды sudo apt install lftp

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

lftp документирует переключатель -c, который запускает команду, а затем завершает работу, но в большинстве дистрибутивов он кажется неисправным. -e будет держать вас на связи, пока вы не выдадите quit.

0
ответ дан 14 September 2011 в 23:52

Установка 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
0
ответ дан 23 November 2019 в 02:06

Другие вопросы по тегам:

Похожие вопросы: