本文不完全总结远程获取文件的几种方法 1。
Updated: 2022 / 7 / 25
文章目录
- sftp
- 总览
- 实操
- 连接
- 上传
- 文件夹
- 文件
- 下载
- 文件夹
- 文件
- 退出
- 其他交互式命令
- 参考链接
sftp
总览
SFTP
是 Secure FileTransferProtocol
的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法。
SFTP
与 FTP
有着几乎一样的语法和功能。SFTP
为 SSH
的一部分,是一种传输档案至 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
但是,如果目录名称不存在于远程主机上的工作目录中,你将收到错误,如下面的屏幕截图所示:
因此,首先在远程主机上创建一个具有相同名称的目录,然后从本地主机上传它,-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
如果返回
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
如下图所示:
更多命令可以输入 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