scp协议
scp [options] [本地用户名@IP地址:]file1 [远程用户名 @IP 地址 :] file2
options:
-v 用来显示进度,可以用来查看连接,认证,或是配置错误。
-C 使能压缩选项。如果传输的文件没有压缩,可以使用-C参数
-c 选择使用那个加密算法(具体对应到ssh的-c cipher-spec,这个参数值会被传给ssh,可选择值3des,blowfish,des)
-P 选择端口
-r 递归拷贝整个目录
-l 限制使用带宽,Kbit/s
-o 指定传给ssh的一些参数值,比如Compression=yes
-p 保留文件的修改时间等信息。
亲测可用实例:
1、上传。向Linux的/opt目录上传c.txt,传输文件夹不需要带文件名,且不支持未创建的中文文件目录
scp –r C:\Users\Raodi\Desktop\abc\c.txt root@192.168.1.250:/opt
2、下载。从Linux的/opt目录下载c.txt
scp –r root@192.168.1.250:/opt/c.txt C:\Users\Raodi\Desktop\abc\d.txt
sftp协议
1、下载。从Linux上获取某个文件,传输文件夹需要加“-r”操作
sftp raodi@192.168.1.250:/opt/a.txt C:\Users\Raodi\Desktop\abc\b.txt
注意:无论是文件或者文件夹的上传与下载,在不进行任何安装和配置的情况下,皆不能反过来使用。如“sftp C:\Users\Raodi\Desktop\abc\b.txt [email protected]:/opt/a.txt ”,否则会出现类似错误:
ssh: Could not resolve hostname C:\\Users\\Raodi\\Desktop\\abc\\e.txt: \262\273\326\252\265\300\325\342\321\371\265\304\326\367\273\372\241\243
Connection closed
2、上传与下载。
sftp root@192.168.1.250 #建立连接 -- 会停留sftp 操作 put C:\Users\Raodi\Desktop\abc\b.txt /opt/b.txt #从本地上传文件 get /opt/b.txt C:\Users\Raodi\Desktop\abc\c.txt #下载文件 sftp root@192.168.1.250:/opt #直接连接到远程Linux的/opt目录下
与远程相对应的本地操作,只需要在命令前加上”l” 即可,方便好记。
例如:lcd lpwd lmkdir lpwd本地 pwd远程Linux
ls -r -l #查看远程详细文件属性
小结
由于sftp协议进行客户端连接后,可直接进行Linux命令的操作,而scp协议不能。所以为了更加便捷地进行文件传输,提出优化组合方案:上传下载而无须查看文件是否存在时,可使用scp协议直接进行操作;上传下载过程中需要查看文件是否存在,建议使用sftp协议。