我想编写一个从 Linux 到 Windows FTP 服务器的文件传输的复杂场景(检测新的/更改的文件然后传输),但我找不到支持持久发送文件的命令行 ftp 客户端(一次login) 非交互模式下的会话。
ssh/scp
无密码身份验证不是一个选项,因为我无法访问 Windows FTP 服务器。
例如使用lftp
`lftp -u user,pass -p 21 -e "mput newfile.txt;"` 10.0.0.100
会将我的文件上传到服务器,但需要对每个请求进行身份验证/握手,这需要很长时间并严重减慢传输速度。
我想知道是否有一种方法可以验证一次,建立一个持久连接,然后通过这个连接发送文件。lftp
并且其他客户端能够在交互模式下执行此操作(连接然后执行多个命令直到退出)。
所以:
- Linux 上是否有可以在非交互模式下像这样运行的 FTP 客户端?
- 或者,有没有办法模拟这种行为,通过交互模式编写脚本?也许使用
expect
和netcat/telnet
/或命名管道的东西?