我正在通过终端连接到 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
任何帮助表示赞赏!我将其设置为最终按计划(例如,每小时)下载文件。
sftp
希望主机作为第一个参数。所以,如果你像这样形成论点:sftp user@host:my_file.csv
,它应该工作。使用您的命令,sftp
错误地假定主机名是get
.如果要访问
sftp
服务器上命令的默认值以外的路径,还可以添加路径:sftp user@host:/path/to/my_file.csv
.sftp
更适合交互使用。正如@Jos 所指出的,出于您的目的,这将更scp
合适。