wput 上传多个文件而不在目标上重新创建目录树

wput 上传多个文件而不在目标上重新创建目录树

我正在尝试找到一种方法,每天通过 cron 几次将一批文件从一台服务器上传到另一台服务器,而 wput 似乎是最好和最容易使用的选项。

到目前为止,它运行良好,但问题是 wput 总是在目标上重新创建目录树。因此,这是我使用的命令。

wput -u /var/www/clients/client1/web/parser/*.json ftp://username:password@remoteserver/web/

因此这应该上传目录内的所有文件/parser/和具有.json扩展名的文件。

这工作得很好,除了:

当它将文件上传到远程服务器时,它会上传整个目录树,而不是在远程服务器上的文件夹中列出文件列表,而是/web/将文件与源服务器的所有目录一起上传

而是这样的:

/web/file1.json
/web/file2.json
/web/file3.json
/web/file4.json

我有这个

/web/var/www/clients/client1/web/parser/file1.json
/web/var/www/clients/client1/web/parser/file2.json
/web/var/www/clients/client1/web/parser/file3.json
/web/var/www/clients/client1/web/parser/file4.json

我如何阻止 wput 将整个目录树上传到远程服务器?

答案1

问题是总是wput在目标上重新创建目录树

您需要使用以下−−basename=path选项:

该选项导致Wput在所有输入文件连接到 URL 时剪切路径。wput /usr/share/doc.tgz ftp://host/将创建ftp://host//usr/share/doc.tgz,而指定/usr/share/为 basename 将导致ftp://host/doc.tgz被创建。

来源输出

尝试以下命令:

wput --basename=/var/www/clients/client1/web/parser -u /var/www/clients/client1/web/parser/*.json ftp://username:password@remoteserver/web/

相关内容