编写 FTP 传输脚本

编写 FTP 传输脚本

有没有办法 shebang-ify ftp 并编写小型 FTP 脚本?

例如:

#!/usr/bin/ftp
open 192.168.1.1
put *.gz
quit

有什么想法吗?

答案1

不是ftp我遇到的程序,因为它们期望在标准输入上有一个脚本,但 shebang 会在命令行上传递脚本名称。

您可以使用这里的文档ftp通过 shell 包装器传递脚本。

#!/bin/sh
ftp <<EOF
open 192.168.1.1
put *.gz
EOF

左脚接受作为参数传递的脚本名称。

#!/usr/bin/lftp -f
open 192.168.1.1
put *.gz

网络文件传输协议附带两个工具ncftpgetncftpput用于简单的批量获取或放置。

兹什包括一个FTP模块。使用正确的 shell 而不是直接的 FTP 脚本的优点是可以对故障做出反应。

#!/bin/zsh
zmodload zsh/zftp
open 192.168.1.1
put *.gz

当然,您还可以使用许多其他语言:Perl、Python、Ruby 等。

另一种方法是将FTP服务器挂载为目录,然后使用cp(或rsync或其他工具)复制文件。有许多保险丝主要用于 FTP 访问的文件系统卷曲FTPFSLftpFS

请注意,如果您计划使用身份验证(可能是在上传),并且您可以控制服务器,那么最好使用 SSH 访问。它更安全、更灵活。要通过 SSH 复制文件,您可以使用scpsftp、或同步为了高效同步(如果某些文件可能已经存在),或者齐奏(用于双向同步),或安装SSHFS

相关内容