使用 Shell 脚本将文件从多个目录上载到 SFTP 站点



我正在尝试将项目从本地多个文件夹位置上传到SFTP站点。我正在使用现有的 shell 脚本,我知道该脚本适用于从单个本地位置上传,但我无法弄清楚如何使其适用于来自多个本地位置的上传。

我对编码相当陌生,只有批处理脚本的基本经验和对现有 shell 脚本的一些小编辑,因此我将不胜感激可以提供的任何帮助。

这是我现有的单个本地位置上传脚本的示例

open sftp://(userid):(password)@(sftp site) -hostkey="(hostkey)"
pwd
ls
lcd "(local directory)"
lls
cd (remote directory)
ls
put * -filemask=|*/ ./
exit

这以前对我们来说效果很好,但我正在尝试通过将一些现有脚本组合到一个作为自动化任务运行的进程中来清理它们,但我无法弄清楚如何将多个任务链接在一起。

只需为每个位置重复上传代码:

cd /remote/directory
lcd /local/directory1
put * -filemask=|*/ ./
lcd /local/directory2
put * -filemask=|*/ ./
<小时 />

不过,如果它真的是一个 WinSCP 脚本,你可以只使用一个命令,例如:

put -filemask=|*/ /local/directory1/* /local/directory2/* /remote/directory/

请参阅 put 命令的文档:

put <file> [ [ <file2> ... ] <directory>/[ <newname> ] ]

如果指定了更多参数,则除最后一个参数外,所有参数都指定要上传的文件集。文件名可以替换为 Windows 通配符以选择多个文件。要上载目录中的所有文件,请使用掩码*

最后一个参数指定目标远程目录和可选的操作掩码,以不同名称存储文件。目标目录必须以斜杠结尾。...

最新更新