EDA365电子论坛网

标题: Linux scp命令 [打印本页]

作者: dapmood    时间: 2021-9-1 15:56
标题: Linux scp命令
Linux scp 命令用于 Linux 之间复制文件和目录。  m) R& i! j- y( ?+ {9 l7 f

( }4 o5 u2 g. mscp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。. M- f0 a( s7 h) u6 `4 O5 \
, V( `9 Q+ P$ |1 g! l
scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版。( I- c  s! R) n5 {

8 @. m  ?7 y* S! ?" f' Y
# |$ _& W2 s. O. C7 w$ }6 L, B0 t, O# I& s: ]" c$ p
语法& R& |' ]. I9 O/ r
( t0 N7 H5 L1 D% E: `/ }
scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]9 `2 \) C6 v# d2 |1 t- C8 j3 X
[-l limit] [-o ssh_option] [-P port] [-S program]* x4 _) O# w6 s0 q: {
[[user@]host1:]file1 [...] [[user@]host2:]file2' g# x8 X6 p% W" B' {- `

: O0 k2 X! E0 S* w) N: T: g
. ?1 d  Y: d- H# h/ g- U2 q4 |+ Q1 b
简易写法:: u4 T7 d, N% x5 m# d2 O. r/ w

* v$ u% E* |  ?scp [可选参数] file_source file_target 8 l4 ], Y* I( _' f3 C  F

7 A$ x% k) n- D# n6 E( }$ d% @4 |* a/ D5 }! N6 A

' {5 T) k* X9 k8 E* y参数说明:
2 |" v/ [( a9 j; `. n% @& t, n1 [: Y- j" M) b/ \8 |7 }
-1: 强制scp命令使用协议ssh1% b7 a) T+ P6 i
-2: 强制scp命令使用协议ssh2
3 A: ]$ r2 W$ H/ `! g0 H-4: 强制scp命令只使用IPv4寻址2 D: U  \& X1 |
-6: 强制scp命令只使用IPv6寻址5 C! F, v- ~% ^' v* D' k% s
-B: 使用批处理模式(传输过程中不询问传输口令或短语)0 [8 b9 w( C5 g; X7 X$ f
-C: 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
- `0 H4 }9 X! K" ^7 U8 N-p:保留原文件的修改时间,访问时间和访问权限。& ~8 \. ~' i: o+ [  P/ J
-q: 不显示传输进度条。! P5 s  E. l. h: d0 x6 P4 h$ E
-r: 递归复制整个目录。/ z' G: e  z" L* X
-v:详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
4 T# m. M! Y' Z/ B# G- Y) v-c cipher: 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
( q5 f1 l/ w* c+ }; q. {-F ssh_config: 指定一个替代的ssh配置文件,此参数直接传递给ssh。
+ T/ W1 L8 V. @' k5 [8 v-i identity_file: 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
" u  C+ S  X; V* Q/ ?-l limit: 限定用户所能使用的带宽,以Kbit/s为单位。  u$ [. O5 r( u' S4 |) h( A
-o ssh_option: 如果习惯于使用ssh_config(5)中的参数传递方式,
4 p5 @) y. j  d0 c7 Q, j-P port:注意是大写的P, port是指定数据传输用到的端口号$ [8 q: m& \1 m5 |6 M
-S program: 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。
8 @) s( ~% f" I: b4 I
7 Y+ m( U$ F  r9 p- C+ q0 w* i' x4 @7 g" _, L
: Z  @& T0 e8 |8 i
实例6 |& z0 R% e( s, L$ j/ Z, ~* _& M' a
5 E) @/ `  h% N: E
1、从本地复制到远程
8 A5 W1 Z9 d7 J& y" T5 S
" L, ~1 j5 c8 J8 a命令格式:' k! w5 g- p. X! J' l
0 b- E3 ^) y+ ]1 ~6 O. a7 @0 J
scp local_file remote_username@remote_ip:remote_folder
( ?5 G4 H4 h+ Q* J) i/ L' F/ \/ x% n& r: l- r
或者 6 }" I2 B7 e$ M1 h1 c  w5 ?
' \) a. b3 _% Y1 c% P7 U, [
scp local_file remote_username@remote_ip:remote_file $ Y' a3 ^2 y. A5 q4 ~
: a' N+ b# t: \
或者
  [1 P% W" a7 Y- V: T& v. V2 n1 G; v0 ^$ N7 g. Z6 [$ N& f! t9 V
scp local_file remote_ip:remote_folder # f5 x  q( U5 `. s* o) M
; i4 J+ P$ c7 B! a$ ~$ c
或者
  Y/ {& g5 z; U/ `$ j- }5 l- W+ @( Y1 v* l
scp local_file remote_ip:remote_file % h+ l4 n! }6 \
  J5 D. G+ k8 h, M
第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;
0 n+ V9 U" y; z8 N第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;
! t5 o" V  I$ x6 H* J& n. X7 S0 t
, G3 e# r0 P* e+ T
! E$ E2 ^) O! ^. X. p. [1 K; s8 S6 I* N复制目录命令格式:* g, U/ l4 B, g# a9 Y: f) N

2 J+ ]5 T: R8 ~6 R3 T' Xscp -r local_folder remote_username@remote_ip:remote_folder 4 @* u3 ~9 }6 ~5 L
+ b# ?% Q* F. E& I
或者 * J) O6 D$ j  {! x6 O

6 {. g- i& \+ K4 y! Q+ a4 j4 tscp -r local_folder remote_ip:remote_folder 8 f$ C2 j, {: Q* ~9 W
+ O0 W9 Y) \2 G
第1个指定了用户名,命令执行后需要再输入密码;
3 m# Z" J9 I  m& p2 X% C第2个没有指定用户名,命令执行后需要输入用户名和密码;. H( U7 \# t+ K. V3 N3 H
7 F6 e; y7 G2 G- D: c/ v! {
! m' N" r: @$ n8 C- E
上面命令将本地 music 目录复制到远程 others 目录下。9 }0 |; R" m* B2 n7 d; T
" r* T' I7 F6 V" d; h. A
% B6 J; E7 k& v/ D7 n6 Z8 i  H
, }% `# c5 n! @- Q. P  t
2、从远程复制到本地
1 `' c& a1 o7 z
, v; Z" H- q' B从远程复制到本地,只要将从本地复制到远程的命令的后2个参数调换顺序即可,如下实例) a2 F: p+ r! v: g$ L) U; C: u
8 ?7 R$ p8 j1 B# T$ v3 _

8 Q% P2 x& u* C" K1 J
9 i! H: ^6 D3 A& s: {: h1 y说明3 D. P: Y, Q+ J' Z+ m! C1 l9 q) H
3 }; \  G* ]" l+ o
1.如果远程服务器防火墙有为scp命令设置了指定的端口,我们需要使用 -P 参数来设置命令的端口号,命令格式如下:0 |7 T' l: w3 Q% P1 m

, ^' N4 L, m( n$ Q0 Y3 `( T2 w! R#scp 命令使用端口号 4588% W, M) r" I# k
scp -P 4588 remote@www.runoob.com:/usr/local/sin.sh /home/administrator
2 R, K( q. X, i2 [1 r; j. Q
- B  Q- _9 R8 o: b5 @2.使用scp命令要确保使用的用户具有可读取远程服务器相应文件的权限,否则scp命令是无法起作用的。
  x$ ?0 d) M$ x9 K# C) Q
作者: hdubsgyd    时间: 2021-9-1 17:43
Linux scp 命令用于 Linux 之间复制文件和目录。
3 @/ r# [  P9 L/ D( l0 A% Z
作者: ExxNEN    时间: 2021-9-1 18:03
scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令
作者: Uqzalq    时间: 2021-9-1 18:03
scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2