共计 1107 个字符,预计需要花费 3 分钟才能阅读完成。
有的时候在管理服务器的时候没有用到 ftp 的,2 台主机需要文件传输就可以使用 scp 指令来实现文件传输或下载,scp 是基于 ssh 服务来实现的,那吗传输的数据是经过 openssl 加密过的,如果要使用那么服务器上必须要开启 ssh 服务,想必一般的服务器上都有开启,尤其是生产服务器上肯定是有使用的。还有一个传输同步文件的的是 rsync,那平时为什么会少用 rsync 就是当你服务器硬盘变为只读 read only system 时,用 scp 可以帮你把文件移出来。另外,scp 还非常不占资源,不会提高多少系统负荷,在这一点上,rsync 就远远不及它了。虽然 rsync 比 scp 会快一点,但当小文件众多的情况下,rsync 会导致硬盘 I / O 非常高,而 scp 基本不影响系统正常使用。那么通过 man 帮助得到以下参数选项:
-1:使用 ssh 协议版本 1;
-2:使用 ssh 协议版本 2;
-4:使用 ipv4;
-6:使用 ipv6;
-B:以批处理模式运行;
-C:使用压缩;
-F:指定 ssh 配置文件;
-l:指定宽带限制;
-o:指定使用的 ssh 选项;
-P:指定远程主机的端口号;
-p:保留文件的最后修改时间,最后访问时间和权限模式;
-q:不显示复制进度;
-r:以递归方式复制。
例如:有 2 台可以相互 ping 通的主机 192.168.168.254、192.168.168.253,需要在 192.168.168.254 上把 /data/linuxidc 文件传到 192.168.168.253 的 /data 目录下,那么就可以这样:
[root@linuxidc data]# scp -P 22 /data/linuxidc root@192.168.168.253:/data/
# 这里如果用的是默认端口可以不写,用户名就用你知道能 ssh 远程连上的用户即可
在这里要注意的是,如果是第一次 2 台主句 ssh 通信,会询问你是否要 RSA 认证
Are you sure you want to continue connecting (yes/no)?
# 这里填 yes 回车后再输入密码就会进行传输文件了。
如果是在 192.168.168.254 上要把 192.168.168.253 的 /data/linuxidc 文件下载到 /data 目录下,那么就可以这样用
[root@linuxidc data]# scp 192.168.168.253:/data/linuxidc /data/
需要注意的一点是如果是在生产服务器上对文件进行文件传输时尽量使用内网以减少开销。
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-02/140450.htm