使用Shell脚本将多个目录中的文件上传到SFTP站点
问题描述:
我试图从多个文件夹位置本地上传项目到SFTP站点。我正在使用一个现有的shell脚本,我知道它适用于从一个本地位置上传,但我无法弄清楚如何使它适用于从多个本地位置上传。使用Shell脚本将多个目录中的文件上传到SFTP站点
我对编码相当陌生,只有基本的批处理脚本和现有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
command的文件:
put <file> [ [ <file2> ... ] <directory>/[ <newname> ] ]
...
如果指定了多个参数,所有除了最后一个指定设置文件的上传。文件名可以用Windows通配符替换以选择多个文件。要上传目录中的所有文件,请使用掩码
*
。最后一个参数指定目标远程目录,并可选择使用operation mask以不同名称存储文件。目的地目录必须以斜杠结尾。 ...
您使用的是什么SFTP客户端?你说“shell脚本”,但是你发布的代码看起来像[WinSCP脚本](https://winscp.net/eng/docs/scripting)。 –