|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
Linux scp 命令用于 Linux 之间复制文件和目录。
; h+ m! q4 l- A& L# x/ d u! W& H
scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。1 n: x3 a/ D. D# b
( K: W; [0 C" [3 z7 o0 |
scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版。
; z: L, y v; S% g9 U, m" o- m0 c
' a( v4 @9 ^5 o6 O) d ~6 y- q' p$ m+ B6 ~
! v7 X2 K6 B$ x8 E( r
语法
2 L0 L3 O6 u( C# }2 G- K
0 b2 M: B$ G$ p- E( Q2 x+ ^scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
b4 `8 }1 j( J/ P[-l limit] [-o ssh_option] [-P port] [-S program]
" q$ E2 A! }$ \* j[[user@]host1:]file1 [...] [[user@]host2:]file2: W; \3 Z* ^4 {$ A
2 `, _+ Z6 }8 s0 v, K9 E2 }1 e
8 `0 T2 Q+ M$ J, }8 g8 A* o
7 d8 x. a- i. D! {4 ?$ |" f8 f
简易写法:: ]0 l) w1 d3 Y6 I( y' m6 r
6 u, a# g1 m" u, V0 v) }
scp [可选参数] file_source file_target 9 ]& {+ D) k+ ~! _ l
8 M: ?! j8 D4 l: @1 ?7 d/ ?& r @& F! `
* B% L6 F' i+ i: m- Y& `4 D) L
参数说明:# F; v3 [3 u2 |* P: s; R
( H5 c8 }% l6 e8 X: l r( v, Y3 H
-1: 强制scp命令使用协议ssh1* z9 T7 v8 k, s. p0 p
-2: 强制scp命令使用协议ssh2
$ p6 F/ S4 g# Z-4: 强制scp命令只使用IPv4寻址: j. E9 f# @2 B2 O' M4 M8 ?. q' Z9 p
-6: 强制scp命令只使用IPv6寻址
- U U* a/ j5 j! t-B: 使用批处理模式(传输过程中不询问传输口令或短语)
' N" ^% ] h" v" O' _: M0 W: g-C: 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)* D" ]+ D- k& A) o3 [" k9 p- Q3 t' ?
-p:保留原文件的修改时间,访问时间和访问权限。
6 h& Z/ Y* z5 I" z# v4 R-q: 不显示传输进度条。) R9 O! \1 ]# ?, k% U k9 s# u
-r: 递归复制整个目录。* Z( U) \/ |, R' m: V' F
-v:详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。0 ]- K# {* g1 y' R/ o
-c cipher: 以cipher将数据传输进行加密,这个选项将直接传递给ssh。2 N, Y! ]6 m* P. R6 ^. Q: {' O+ G
-F ssh_config: 指定一个替代的ssh配置文件,此参数直接传递给ssh。* q6 b1 y- p: I) D
-i identity_file: 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
; Y& z# V' x5 n( H* K-l limit: 限定用户所能使用的带宽,以Kbit/s为单位。
8 d0 B* t( N$ i8 M- \+ g-o ssh_option: 如果习惯于使用ssh_config(5)中的参数传递方式,
' L% g5 {9 c( }/ u* @. A9 D. g-P port:注意是大写的P, port是指定数据传输用到的端口号
) s8 T# |8 g1 M, M: S: n% D-S program: 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。
$ B" F0 M( b7 }1 E$ K& _- Y# L3 E1 E' F% |. y' ^
' s+ b P8 P5 O! Y7 c4 o
. h; W* R" W' a) c# c2 g3 _* m2 l实例
' V2 u9 ~) O" ]: m
5 v) @$ `7 y" g- P5 e$ \6 z5 J1、从本地复制到远程
7 M% z$ o; ^+ K: J' X' ^# d X! O- J1 s
命令格式:
* W! f# q# X, c5 {
1 A9 R' f8 @) S% Jscp local_file remote_username@remote_ip:remote_folder u, N3 v2 ]7 R
# j4 h5 j% [# X8 B& V, X2 W
或者 & b: Z" G# F6 s, ^$ z
; s! K2 x# ?& s% u
scp local_file remote_username@remote_ip:remote_file
. I7 A+ Y+ n" i8 ?& N' {1 z" w$ R: Y" I
或者 0 e& J/ q5 y( {
3 l2 i1 s3 \7 r0 E3 mscp local_file remote_ip:remote_folder
, N) N) k8 R3 o' ] F
# J+ ~, V% q: E: _! E7 m) }或者 " N( b) U) Y. l3 X# S8 ? E" A# c
+ c- a- \0 M7 k& s# T D
scp local_file remote_ip:remote_file
" M- q+ t* |, `( b4 g4 a- W/ t# V" w5 v% D
第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;; Q% l9 h( ?5 {( m. }. O }
第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名; E( ]5 U2 N( l) r C1 T( Y4 E
* l+ W# C3 w2 k8 {5 w; Z+ n' D6 ~
/ X' |8 L# u9 @* \复制目录命令格式:9 _- J k) D/ u
) z. h% P. l9 Z7 vscp -r local_folder remote_username@remote_ip:remote_folder
) m8 [2 C+ q- ]) y/ L5 L$ K) E4 x+ B
或者
1 z1 u% `- }' a. W+ i
) ~3 O5 I, V- ?2 ^4 `* w4 Bscp -r local_folder remote_ip:remote_folder
6 e5 a/ {+ H- g$ h8 u: q
% M! b9 U! B+ I! G4 M; L第1个指定了用户名,命令执行后需要再输入密码;
: I+ |5 s% ~4 N8 L1 x第2个没有指定用户名,命令执行后需要输入用户名和密码;
a$ w# Y5 S: I( k2 O9 Q/ C" Y3 y( O: Z% k, R: i
- s2 u% a# p; i
上面命令将本地 music 目录复制到远程 others 目录下。
! O, `* K( P. F" S9 v5 T+ Y* x% s2 H) q; O; Q& r+ f3 s
9 M( G4 _# h8 G: X& o ]
6 t$ y5 g& U( C) p1 K1 N6 M
2、从远程复制到本地0 p/ i7 r5 [7 P3 p }
! @: j6 r7 B/ g+ w, X从远程复制到本地,只要将从本地复制到远程的命令的后2个参数调换顺序即可,如下实例
7 x4 @& K$ ^$ U" U" N) j. B! a# }; K) H1 b4 R3 c6 I
9 X* t* i7 ]; h+ r. h' z
2 M: o0 j9 M9 \# n说明/ ` H# ?! \ V* a I b4 b v; q
* q- p6 j/ ^7 r
1.如果远程服务器防火墙有为scp命令设置了指定的端口,我们需要使用 -P 参数来设置命令的端口号,命令格式如下:! H y5 v [) W7 m
' }$ W4 a# _& s! p#scp 命令使用端口号 4588
`; }' O) G+ U' d! q9 u+ Tscp -P 4588 remote@www.runoob.com:/usr/local/sin.sh /home/administrator
$ [; x$ J: |4 U- d n+ C+ T4 Z- O1 q
2.使用scp命令要确保使用的用户具有可读取远程服务器相应文件的权限,否则scp命令是无法起作用的。9 N o( _$ n0 l* f, r
|
|