본문 바로가기
컴퓨터/리눅스

scp : 다른 서버에 있는 파일을 복사

by adnoctum 2010. 10. 15.

   서로 다른 컴퓨터 간의 파일이나 디렉토리를 복사하기 위해서는 scp 명령어를 사용한다. scp 는 secure copy의 약자(acronym) 이며, 사용법은 다음과 같다.

scp [-r] [source] [dest]


만약 directory 를 복사하고자 할 때는 -r 옵션을 주어야 한다. 실제 사용 예를 살펴 보자.

[adnoctum@csbi ~]$ history | grep scp
  299  scp bioism:/home/adnoctum/Research/microarray/analysis_code/transpose* .
  335  scp -r bioism:/home/adnoctum/Research/microarray/all_std_mat_gse .
  337  scp bioism:/home/adnoctum/Research/microarray/analysis_code/resample* .
  461  scp make_edge_pcc_rank_list.cpp bioism:/home/adnoctum/Research/microarray/analysis_code/
  462  scp make_gene_gene_corr_matrix.cpp bioism:/home/adnoctum/Research/microarray/analysis_code/
  510  scp HPRDID2.PMID.txt bioism:/home/adnoctum/Research/pubmed_article/
  625  scp bioism:/home/adnoctum/Research/pubmed_article/count_article* .
  716  scp bioism:/home/adnoctum/Research/microarray/analysis_code/dense_graph2.cpp .
  751  scp bioism:/home/adnoctum/Research/pubmed_article/HPRD.PMID.txt .
  754  scp bioism:/home/adnoctum/Research/pubmed_article/HPRD_ID* .
  837  scp -r bioism.kaist.ac.kr:/home/adnoctum/SW/EndNode\ v10.0 .
 1001  history | grep scp
[adnoctum@csbi ~]$

229 번을 기준으로 설명해 보자.


scp bioism:/home/adnoctum/Research/microarray/analysis_code/transpose* .


위에서 source, 즉 복사할 파일들은 scp bioism:/home/adnoctum/Research/microarray/analysis_code/transpose* . 에서 붉은 색으로 밑줄 친 파일들이다. 즉, 내 홈 경로의 Research/microarray/analysis_code 경로에 있는 transpose 로 시작하는 모든 파일들을 복사해 올 것이다. 파일을 복사해서 저장할 목적 경로는 . 으로, 즉 내가 저 명령어를 실행했던 바로 그 경로가 된다. 만약 위와 같은 상황에서 transpose로 시작하는 디렉토리가 있었다면 229 번 명령어는 r 옵션이 없이 실행되었기 때문에 그 디렉토리는 복사되지 않는다.

   리눅스에서는 다른 서버에 접속을 해야 할 필요가 있는 명령어의 경우 사용자를 지정하지 않으면 그 명령어를 사용하는 사용자 계정으로 실행이 된다. 현재 어떤 사용자 계정으로 사용되고 있는지를 보기 위해서는 whoami 명령어를 사용한다.

[adnoctum@csbi ~]$ whoami
adnoctum
[adnoctum@csbi ~]$ su
암호:
[root@csbi adnoctum]# whoami
root
[root@csbi adnoctum]#

만약 내가 현재 adnoctum 계정을 사용하고 있는데, 다른 서버에 있는 파일을 복사해 오기 위해 접속할 계정이 root 등의 다른 계정이었다면 목적지를 표시할 때

ID@dest


형식을 사용한다. 예를 들면,

scp -r . root@some.where:/home/root/test


와 같은 형식이다. scp 나 ssh 명령어도 모두 같은 형태를 따른다. (이것은 윈도우즈 탐색기에서 ftp 를 접속할 때도 같은 형식이다).