在 bash 脚本中通过 sftp 将文件从远程服务器传输到我的服务器

在 bash 脚本中通过 sftp 将文件从远程服务器传输到我的服务器

我想通过 bash 脚本中的 sftp/ftp (而不是单独的命令)将一个大文件(1.3G)从远程服务器传输到我的服务器。

举例来说:我的服务器IP是10.10.10.1,远程服务器是10.10.10.2我使用sftp root/123456(用户+密码)连接到远程服务器。

请告诉我以获取更多信息。

答案1

sftp可以从标准输入或“批处理文件”读取命令。

例如,要从远程主机获取文件,您可以使用以下get命令:

echo 'get /path/to/file' | sftp [email protected]

或者,您可以使用此处文档将命令传递给sftp

sftp [email protected] <<'END'
get /path/to/file
END

或者,您可以在使用以下命令行选项get引用的文件中使用相同的命令:-bsftp

sftp -b somefile [email protected]

您传输到本地系统的一个或多个文件将被放入当前目录(除非在您发送到的命令中使用lcd“local ”进行更改)。cdsftp

要在无需提供密码的情况下进行连接,请按照“”中的说明安排公共和私人 SSH 密钥如何使脚本自动获取密码?”。请注意,远程系统很可能已禁用 root 用户的 SSH 访问(这是配置 SSH 服务器的明智方法)。

相关内容