如何在一行上执行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 

类似的东西……作为我正在尝试创建的脚本的一部分。 什么都没有转移,我只需要回应一些指令,这是我发现在我的两个系统之间做的最简单的方法。

这真的是SSH的一项工作(正如其他人所指出的那样),但如果您决定使用ftp,请尝试使用lftp 。 它可以免费用于所有当前支持的Ubuntu版本。 您可以使用命令sudo apt install lftp安装它

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

lftp文件a -c开关运行命令然后退出,但它似乎在大多数发行版中被打破。 -e将保持连接,除非您发出quit

当我在寻找一种方法让一个ftp命令执行从这台机器到ftp服务器的文件传输时,我找到了这个线程。 方法如下:

使用ftp命令创建一个文件:(称之为’ftpcommands.txt’)

  open YourFtpServer.com user YourUserName YourPassword put localfilename remotefilename bye 

然后运行ftp命令并将文件输入其中:

  ftp -n < ftpcommands.txt 

-n选项使ftp在收到“open”命令时不会自动尝试登录。

希望这可以帮助某人。 我在网上找不到任何解决方案,所以我必须自己搞清楚。

您不能使用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  -e \"\" yoursite.com" 

来源文件:

 source ~/.bashrc 

现在使用别名“yoursite”来登录并执行任意数量的命令。