这是我登录 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
类似的东西...作为我尝试创建的脚本的一部分。没有任何东西被传输,我只需要回应一些指令,这是我发现在两个系统之间执行此操作的最简单的方法。
答案1
这确实更像是 SSH 的工作(正如其他人指出的那样),但如果你决心使用 ftp,请尝试lftp。它可免费用于所有当前支持的 Ubuntu 版本。您可以使用以下命令安装它 sudo apt install lftp
lftp -u username,password -e "your command;quit" ftp.site.com
lftp 记录了一个-c
运行命令然后退出的开关,但它似乎在大多数发行版中都被破坏了。 -e
将使您保持连接,除非您发出quit
。
答案2
我在寻找一种方法来让单个 ftp 命令执行从此计算机到 ftp 服务器的文件传输时发现了此线程。方法如下:
创建一个包含 ftp 命令的文件:(称之为“ftpcommands.txt”)
open YourFtpServer.com
user YourUserName YourPassword
put localfilename remotefilename
bye
然后运行 ftp 命令并将文件输入其中:
ftp -n < ftpcommands.txt
-n 选项可防止 ftp 在收到您的“打开”命令时自动尝试登录。
希望这能对某人有所帮助。我在网上找不到任何解决方案,所以我不得不自己想办法。
答案3
您不能使用 FTP 远程执行命令。它代表文件传输协议。您真正需要的是 SSH。
您需要做的就是ssh
在两台机器上安装该软件包,然后按照本指南设置无密码登录。
现在如何调用它:
ssh username@host echo "Hello World\!"
例如,这是我对自己做的:
nick@AccessDenied:~$ ssh nick@localhost echo "Hello World\!"
Hello World!
答案4
使用以下方式安装 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