我正在通过终端连接到 SFTP。我想下载一个文件。
如果我进入该文件夹,我可以列出其内容:
ls
我可以清楚地看到该文件;我们将其命名为“my_file.csv”。
如果我尝试此代码:
sftp get my_file.csv
我收到此错误:
Connecting to get...
ssh: Could not resolve hostname get: Name or service not known
Couldn't read packet: Connection reset by peer
我可以使用“less my_file.csv”查看文件。它显然在那里并且可以访问,但我无法使用我尝试过的任何 sftp get 组合下载它(我尝试了很多选项)。我也尝试过使用 curl,但没有成功。
如果我输入 SFTP,我会得到以下选项:
usage: sftp [-1Cv] [-B buffer_size] [-b batchfile] [-F ssh_config]
[-o ssh_option] [-P sftp_server_path] [-R num_requests]
[-S program] [-s subsystem | sftp_server] host
sftp [user@]host[:file ...]
sftp [user@]host[:dir[/]]
sftp -b batchfile [user@]host
任何帮助都非常感谢!我将其设置为最终按计划下载文件(例如每小时)。
答案1
sftp
希望主机作为第一个参数。因此,如果您像这样形成参数:
sftp user@host:my_file.csv
,它应该可以工作。使用你的命令,sftp
错误地假设主机名是get
。
如果您想要访问sftp
服务器上命令的默认路径以外的路径,还可以添加路径:sftp user@host:/path/to/my_file.csv
。
sftp
更适合交互式使用。正如@Jos 指出的那样,对于您的目的来说,它scp
会更合适。