如何在一行上执行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”来登录并执行任意数量的命令。