本文不完全总结远程获取文件的几种方法 1

Updated: 2022 / 7 / 25



文章目录

  • sftp
  • 总览
  • 实操
  • 连接
  • 上传
  • 文件夹
  • 文件
  • 下载
  • 文件夹
  • 文件
  • 退出
  • 其他交互式命令
  • 参考链接



sftp

总览

SFTPSecure FileTransferProtocol 的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法。

SFTPFTP 有着几乎一样的语法和功能。SFTPSSH 的一部分,是一种传输档案至 Blogger 伺服器的安全方式。其实在 SSH 软件包中,已经包含了一个叫作 SFTP (Secure File TransferProtocol) 的安全文件传输子系统,SFTP 本身没有单独的守护进程,它必须使用 sshd 守护进程(端口号默认是 22)来完成相应的连接操作,所以从某种意义上来说,SFTP 并不像一个服务器程序,而更像是一个客户端程序。

SFTP 同样是使用加密传输认证信息和传输的数据,所以,使用 SFTP 是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的 FTP 要低得多,如果您对网络安全性要求更高时,可以使用 SFTP 代替 FTP 2



实操

连接

要连接到远程 sftp 服务器,如下建立一个安全 SSH 连接并创建 SFTP 会话:

sftp tecmint@192.168.56.10
# 以 tecmint 用户名连接 192.168.56.10 服务器。
# 随后要你输入 tecmint 对应的密码。输入正确后就连接上了



上传

文件夹

要将整个目录上传到远程 Linux 主机中,请使用 put 命令, 如下所示:

sftp> put -r  Tecmint.com-articles
sftp> mkdir Tecmint.com-articles
sftp> put -r Tecmint.com-articles

但是,如果目录名称不存在于远程主机上的工作目录中,你将收到错误,如下面的屏幕截图所示:


sftp打包镜像 sftp拿文件_上传

因此,首先在远程主机上创建一个具有相同名称的目录,然后从本地主机上传它,-r 参数允许拷贝子目录和子文件:

要保留修改时间、访问时间以及被传输的文件的模式,请使用 -p 标志,如下所示:

sftp> put -pr Tecmint.com-articles



文件

比如,

sftp> put /home/fuyatao/downloads/Linuxgl.pdf	/var/www/fuyatao/
# 将本地服务器的 Linuxgl.pdf 文件上传到远程服务器的 /var/www/fuyatao 目录下



下载

文件夹

要从远程 Linux 主机下载整个 fstools-0.0 文件夹到本机中,如下所示使用 get 命令带上 -r 标志:

sftp> get -r fstools-0.0

sftp打包镜像 sftp拿文件_下载文件_02

如果返回 get not a regular file,请先确认你想 get的是一个文件夹还是一个文件,如果是想要 get 文件夹 是不是漏下了 -r 3



文件

使用以下命令从远程机器相对应的路径上下载文件到本地所对应的路径下:

get localfilepath remotefilepath

比如,

sftp> get /etc/supervisor/file.conf	/etc/supervisord.d
# 意思是从远程服务器的 /etc/supervisor 目录下的 file.conf 文件下载到 本地服务器的 /etc/supervisord.d 目录下



退出

要退出 SFTP shell,输入:

sftp> bye

或者

sftp> exit



其他交互式命令

登录到远程主机后,你可以如下运行交互式的 SFTP 命令:

sftp> ls            #list directory 
sftp> pwd           #print working directory on remote host
sftp> lpwd          #print working directory on local host
sftp> mkdir uploads     #create a new directory

如下图所示:


sftp打包镜像 sftp拿文件_下载文件_03

更多命令可以输入 help 查看 2

Available commands:
bye                                Quit sftp
cd path                            Change remote directory to 'path'
chgrp grp path                     Change group of file 'path' to 'grp'
chmod mode path                    Change permissions of file 'path' to 'mode'
chown own path                     Change owner of file 'path' to 'own'
df [-hi] [path]                    Display statistics for current directory or
                                   filesystem containing 'path'
exit                               Quit sftp
get [-afPpRr] remote [local]       Download file
reget [-fPpRr] remote [local]      Resume download file
reput [-fPpRr] [local] remote      Resume upload file
help                               Display this help text
lcd path                           Change local directory to 'path'
lls [ls-options [path]]            Display local directory listing
lmkdir path                        Create local directory
ln [-s] oldpath newpath            Link remote file (-s for symlink)
lpwd                               Print local working directory
ls [-1afhlnrSt] [path]             Display remote directory listing
lumask umask                       Set local umask to 'umask'
mkdir path                         Create remote directory
progress                           Toggle display of progress meter
put [-afPpRr] local [remote]       Upload file
pwd                                Display remote working directory
quit                               Quit sftp
rename oldpath newpath             Rename remote file
rm path                            Delete remote file
rmdir path                         Remove remote directory
symlink oldpath newpath            Symlink remote file
version                            Show SFTP version
!command                           Execute 'command' in local shell
!                                  Escape to local shell
?                                  Synonym for help