我想通过 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
引用的文件中使用相同的命令:-b
sftp
sftp -b somefile [email protected]
您传输到本地系统的一个或多个文件将被放入当前目录(除非在您发送到的命令中使用lcd
“local ”进行更改)。cd
sftp
要在无需提供密码的情况下进行连接,请按照“”中的说明安排公共和私人 SSH 密钥如何使脚本自动获取密码?”。请注意,远程系统很可能已禁用 root 用户的 SSH 访问(这是配置 SSH 服务器的明智方法)。