有没有办法 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
网络文件传输协议附带两个工具ncftpget
,ncftpput
用于简单的批量获取或放置。
兹什包括一个FTP模块。使用正确的 shell 而不是直接的 FTP 脚本的优点是可以对故障做出反应。
#!/bin/zsh
zmodload zsh/zftp
open 192.168.1.1
put *.gz
当然,您还可以使用许多其他语言:Perl、Python、Ruby 等。
另一种方法是将FTP服务器挂载为目录,然后使用cp
(或rsync
或其他工具)复制文件。有许多保险丝主要用于 FTP 访问的文件系统卷曲FTPFS和LftpFS。
请注意,如果您计划使用身份验证(可能是在上传),并且您可以控制服务器,那么最好使用 SSH 访问。它更安全、更灵活。要通过 SSH 复制文件,您可以使用scp
或sftp
、或同步为了高效同步(如果某些文件可能已经存在),或者齐奏(用于双向同步),或安装SSHFS。