sftp使用shell脚本将文件从windows服务器复制到linux服务器
我正在编写shell脚本,该脚本应该将文件及其子目录从Windows服务器传输到Linux Samba服务器。Windows服务器设置为接受sftp请求,我使用共享ssh密钥登录Windows服务器,因此不需要密码交换。我可以使用以下命令从linux服务器登录到Windows:sftp使用shell脚本将文件从windows服务器复制到linux服务器,linux,windows,bash,shell,Linux,Windows,Bash,Shell,我正在编写shell脚本,该脚本应该将文件及其子目录从Windows服务器传输到Linux Samba服务器。Windows服务器设置为接受sftp请求,我使用共享ssh密钥登录Windows服务器,因此不需要密码交换。我可以使用以下命令从linux服务器登录到Windows: sftp user@host_name 它执行sftp命令并将我登录到Windows服务器。当我尝试使用以下选项时: get -r /home_directory/first_level/* /loca
sftp user@host_name
它执行sftp命令并将我登录到Windows服务器。当我尝试使用以下选项时:
get -r /home_directory/first_level/* /local/directory/to/put/files
我收到一条错误消息,说无效标志-r。我无法使用SCP,因为服务器上未启用它
如何使用shell脚本将所有文件和目录从Windows服务器递归复制到linux服务器?您可以在Windows服务器上安装并从那里启动scp-r。您能给我们看一个更大的脚本片段吗 另外,get关键字是sftp行话的一部分,您正在做类似的事情吗
#!/bin/bash
sftp -v -oIdentityFile=path user@server<<-_EOF_
get -r /home/dir/first_level/* /local/dir/to/put/files
bye
_EOF_
# etc etc
rsync可用吗?如果远程服务器允许为密码安装密钥,我不认为允许递归sftp拷贝会带来更大的安全风险,如果存在更大的风险,可能会有人发表评论。您是否询问是否可以启用-r?否则,您将不得不提取目录列表,比较时间戳/大小,只提取更改或新文件。真头疼!你的时间会花得很好,至少你会把这件事作为一个严肃的问题向付钱给你的人提出。祝你好运我们部门说-r已经启用,他们可以在windows上使用它……问题是我的整个环境都是linux而不是windows。重读之后,我发现我错误地假设了你是如何使用sftp的。我只会做sftp-ruser@remhostremhostname:/path/to/dir/files/*/local/dir/I目前无法访问man sftp,因此参数顺序可能需要更改,可能是-R。祝你好运。最后,还有其他UTIL可以传输文件。但递归始终是一个问号。lftp非常有趣,有很多功能,但它可能没有安装在windows服务器上。祝你好运。谢谢。这些都是好建议。一旦我有机会看到什么效果最好,我就会发帖子。再次感谢。我只使用了sftpuser@host让我们把困惑留在一边。您的问题是,能否从支持sftp的远程服务器通过shell脚本递归复制文件和目录。答案是可以的。您可以使用脚本通过sftp进行连接,并使用here文件执行sftp命令,如上面的代码片段所示。