如何从 Linux 服务器上传多个文件到 FTP?

如何从 Linux 服务器上传多个文件到 FTP?

例如,我的 Linux 服务器上有数据库备份,我想编写一个脚本将其上传到远程 FTP。我尝试了该put命令,但它一次只能传输一个文件。然后我尝试了 mput 命令,但它只显示我想要传输的文件的问号(也许我使用错误了?..)

我尝试了这个:

#!/bin/bash
ftp -n <<EOF
open ftp.server.com
user name password
cd backup
mput /backup/*
EOF

但它不起作用。它输出我想要传输的文件的名称,名称末尾带有问号。我是否遗漏了什么,或者是否有更好更简单的方法?

答案1

看一下ncftp,它附带一个实用程序(ncftpput),可以为此目的编写脚本:

$ ncftpput -R ftp.server.com /remote/path /backup

-R标志表示递归模式。您可以将身份验证详细信息放在单独的文件中。请参阅手册页 (ncftpput(1)) 了解详情。

答案2

另一种选择可能是使用CurlFtpFS,一个 FUSE 文件系统驱动程序,它将 FTP 主机公开为已安装的目录(允许您使用任何常规工具(包括)访问这些文件cp)。我不知道它的效果如何,但从快速的谷歌搜索来看,它看起来非常有前途。CurlFtpFS 实际上比 FUSE 更早,因此应该很稳定。

要使用它,请安装适合您的发行版的软件包(例如,Arch 和 Debian 使用软件包名称curlftpfs),加载fuse模块,然后sudo curlftpfs ftp.example.com /mnt/ftp/ -o user=username:password,allow_other,用适当的值替换服务器名称、挂载点、用户名和密码。

链接页面上有更多详细信息,但这应该可以帮助您入门。

答案3

你可以使用 lftp

lftp ftp://user:[email protected] -e "mirror -e -R /local/folder /remote/folder ; quit"

相关内容