Linux间传输文件的几种方法scp、sftp

sftp 是一个交互式文件传输程式。它类似于 ftp, 但它进行加密传输,比FTP有更高的安全性。

# yum install ftp 安装ftp支持 RedHat系列版本下命令

1.常用登陆方式: 

  格式:sftp @

  通过sftp连接,端口为默认的22,指定用户

2.查看sftp支持的命令

  使用help命令,查看支持的命令,如:

  sftp>help

   (其中命令前面有“l”表示本地执行,其他表示在所登录的远程主机上面执行)

3.基本的使用

  sftp主要是用来传输文件的,包括上传文件(从本机到远程主机) ,下载文件(从远程主机到本机)。

  (1)文件下载

     get [-Ppr] remote [local]  

    如:get test.cpp ./Project/ 

      将远程当前目录下的文件test.cpp下载到本地当前目录的Project文件夹中。

  (2)文件上传

    put [-Ppr] local [remote]

    如:put /home/liu/Software/RHEL_5.5\ x86_64.iso /home/xudong/Blog/

      将本地/home/liu/Software/目录下的ios文件传送到远程登陆主机的/home/xudong/Blog/目录下。

  (3)其他命令

    可以使用命令还是有几个的,如ls、lls;cd、lcd;pwd、lpwd等。具体查看help输出吧。



2、scp命令

指令:scp
在不同的Linux主机间复制文件
带有Security的文件copy,基于ssh登录。

有些linux发行版没有自带scp,因此需要安装scp
#  yum -y install openssh-clients

基本语法: 
# scp [参数] source target

常见参数 
-v : 显示进度,可以用来查看连接、认证或是配置错误
-r :  赋值目录
-C :使能压缩选项 
-P :选择端口
-4 : 强行使用 IPV4 地址
-6 : 强行使用 IPV6 地址

--将本地复制到远程

# scp local_file remote_username@remote_ip:remote_folder/remote_file


--将远程的复制到本地

# scp [email protected]:/doiido/hello.sh /doiido/newhello.sh


--复制目录

当需要传输目录的时候,仅需要加上参数-r即可以,例如
# scp -r /doiido/hello/ [email protected]:/doiido/


--注意:
如果远程服务器修改了ssh端口,scp则需要使用修改后的端口,如远程服务器ssh端口为2222,则需加-P参数:
# scp -p 2222 /doiido/hello.sh [email protected]:/doiido


在使用scp之前,需要确认远程连接的用户是否具有读取远程服务器相应文件的权限。同时还需要注意,执行scp这条指令的用户是否具有本地相应目录的权限。

配置scp在Linux或Unix之间传输文件无需密码  http://www.linuxidc.com/Linux/2015-01/111894.htm

Linux之cp/scp命令+scp命令详解 http://www.linuxidc.com/Linux/2014-09/107127.htm

CentOS 不能使用scp命令 解决方法 http://www.linuxidc.com/Linux/2014-09/106569.htm

两台Linux主机之间scp复制文件 http://www.linuxidc.com/Linux/2014-04/99979.htm


总结:

scp的优点是使用简单,缺点是无法列出远端目录和改变目录。复杂一点的用法是用sftp。
sftp:
sftp -o port=60066 user@serverip:/home/user/
其中-o port选项指定非缺省的ssh端口

你可能感兴趣的:(Linux)