是否可以使用 FTP 自动将文件从另一台 Linux 机器复制到我的 Linux 机器?“自动”是指 FTP 需要自行处理提交登录名/密码组合以及复制文件。
两台机器都运行 Red Hat 5.1。例如,我想将文件/root/file
从第二台 Linux 机器上移到我的机器上,而/var/tmp
无需手动输入任何登录名/密码。
我的机器上没有expect
,而且我不想使用 SSH 身份验证。
如果 FTP 无法自动完成此操作,请建议替代解决方案,例如 Python 脚本。
答案1
您可以使用lftp
客户端程序并使用 FTP 脚本。
lftp
支持~/.netrc
配置文件,您可以在其中存储您的凭据:
machine <hostname> login <user> password <password>
您可以将一系列 FTP 命令存储在一个文件中并执行lftp
它们,例如:
open <hostname>
cd /var/tmp
put /root/file optional_new_filename
中的路径cd
在远程主机上,第一个参数put
是本地文件。
然后,运行
lftp -f <filename>
答案2
您始终可以将凭据存储在文件中,并将其作为参数传递给调用 FTP 命令的脚本,但我建议使用基于密钥的身份验证的 SFTP(通过 SSH 的 FTP)按照我的回复转到另一篇文章。基于密钥的身份验证更安全,您的数据和登录通道将被加密。