mac使用系列之scp下载远程文件

不同的Linux之间copy文件常用有3种方法:

第一种就是ftp,也就是其中一台Linux安装ftp Server,这样可以另外一台使用ftp的client程序来进行文件的copy

第二种方法就是采用samba服务,类似Windows文件copy 的方式来操作,比较简洁方便。

第三种就是利用scp命令来进行文件复制。

scp是有Security的文件copy,基于ssh登录。操作起来比较方便
命令基本格式:

scp [OPTIONS] file_source file_target 

eg: 从 本地 复制到 远程

scp /home/daisy/full.tar.gz root@172.19.2.75:/home/root 

(然后会提示你输入另外那台172.19.2.75主机的root用户的登录密码,接着就开始copy了),复制目录加参数 -r 即可

下面介绍参数可选项。
-1 强制scp命令使用协议ssh1。
-2 强制scp命令使用协议ssh2 。
-4 强制scp命令只使用IPv4寻址 。
-6 强制scp命令只使用IPv6寻址 。
-B 使用批处理模式(传输过程中不询问传输口令或短语)。
-C 允许压缩。(将-C标志传递给ssh,从而打开压缩功能) 。
-p 保留原文件的修改时间,访问时间和访问权限。
-q 不显示传输进度条。
-r 递归复制整个目录。
-v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-c cipher 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-F ssh_config 指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i identity_file 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l limit 限定用户所能使用的带宽,以Kbit/s为单位。
-o ssh_option 如果习惯于使用ssh_config(5)中的参数传递方式。
-P port 注意是大写的P, port是指定数据传输用到的端口号。
-S program 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。

注意两点:

1.如果远程服务器防火墙有特殊限制,scp便要走特殊端口,具体用什么端口视情况而定,命令格式如下:

#scp -p 4588 file_source file_target 

2.使用scp要注意所使用的用户是否具有可读取远程服务器相应文件的权限。
3.scp报错:not a regular file
原因是 这样是相当于下载文件夹,而非文件。
解决:加-r参数
4.permission denied
其他目录对此目录没有权限
解决:
在此目录打开终端files target使用./

    原文作者:jasminecjc
    原文地址: https://segmentfault.com/a/1190000007574240
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞