'원격복사'에 해당되는 글 1건

리눅스 서버간 scp로 파일 복사하기



리눅스 서버간에 파일을 업로드하는 방법은 ftp, rsync 도 있겠지만 ssh 를 이용하는 scp (secure copy) 도 있다.


먼저 ssh-keygen 으로 인증키를 만들어서 원격지 서버에 넣어 놓아야 scp 로 파일 복사시 암호를 더 이상 묻지 않는다.


rsync 와 거의 유사해서 백업용으로 사용이 가능하다.



▶ 인증키 만들기 (ssh-keygen -t rsa or dsa)


[root@conoha ~]# ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /root/.ssh/id_rsa.

Your public key has been saved in /root/.ssh/id_rsa.pub.

The key fingerprint is:

62:1b:92:d1:58:21:4a:b1:36:86:62:1f:71:90:e0:ec root@conoha.ivps.kr

The key's randomart image is:

+--[ RSA 2048]----+

| .+++.o.         |

|oo +o=           |

|o+*.o .          |

|+o...o           |

| E .o + S        |

|     o +         |

|      .          |

|                 |

|                 |

+-----------------+


[root@conoha ~]# ssh-keygen -t dsa

Generating public/private dsa key pair.

Enter file in which to save the key (/root/.ssh/id_dsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /root/.ssh/id_dsa.

Your public key has been saved in /root/.ssh/id_dsa.pub.

The key fingerprint is:

4c:15:b1:5c:00:cc:0a:0d:60:24:0d:8e:75:94:81:fa root@conoha.ivps.kr

The key's randomart image is:

+--[ DSA 1024]----+

|o+=+== o..=+.    |

|o+o.o . oo o     |

|.o   . .. o      |

|.     .o         |

| .      S        |

|  E              |

|                 |

|                 |

|                 |

+-----------------+


암호화 방식의 차이니깐 둘 중에 마음에 드는 것을 선택하면 된다.



이제 인증키를 원격서버에 업로드 하자. ( 여러개 다수의 서버라면 여기를 참고 https://ivps.tistory.com/79 )


[root@conoha ~]# scp ./.ssh/id_rsa.pub root@vultr.ivps.kr:~/.ssh/authorized_keys

ssh: connect to host vultr.ivps.kr port 22: Connection refused

lost connection

You have new mail in /var/spool/mail/root


ssh 포트가 맞지 않아서 실패하였다.


포트 옵션을 주고 다시 실행


[root@conoha ~]# scp -P10022 ./.ssh/id_rsa.pub root@vultr.ivps.kr:~/.ssh/authorized_keys

root@vultr.ivps.kr's password:

id_rsa.pub                                    100%  398     0.4KB/s   00:00


[root@conoha ~]# scp -P10022 ./.ssh/id_rsa.pub root@vultr.ivps.kr:~/.ssh/authorized_keys

id_rsa.pub                                    100%  398     0.4KB/s   00:00


첫번째는 인증키가 원격지 서버에 아직 없으므로 패스워드를 물어본다.

두번재는 인증키가 이미 올라간 상태라서 비밀번호를 묻지 않고 바로 복사가 되었다.



▶ scp 옵션


-C 전송시 파일을 압축해서 전송한다.

-l 전송속도 옵션이다. 단위는 Kbit/s

-P 포트지정 옵션이다. 22번 포트는 생략하여도 된다.

-p 원본 파일과 시간을 동일하게 복사한다.

-q 전송진행 상태를 안보여준다.

-r 하위 디렉토리까지 같이 복사하다.

-v 디버깅메시지를 보여준다. 그러나 너무 분잡하다.



▶ scp 복사 예제


테스트용 디렉토리와 100MByte 파일 생성

[root@conoha ~]# mkdir -p ./testdir/subdir

[root@conoha ~]# dd if=/dev/zero of=./testdir/subdir/100M.bin bs=100M count=1

1+0 records in

1+0 records out

104857600 bytes (105 MB) copied, 0.227941 s, 460 MB/s


30Mbps 속도로 원격지 서버에 testdir 디렉토리를 전송 (속도가 제어되어서 전송되었다.)

[root@conoha ~]# scp -P10022 -l30000 -pr ./testdir/ root@vultr.ivps.kr:~/testdir/

100M.bin                                      100%  100MB   3.7MB/s   00:27


속도제한 없이 원격지 서버에 전송 (160Mbps 속도가 나온다.)

[root@conoha ~]# scp -P10022 -pr ./testdir/ root@vultr.ivps.kr:~/testdir/

100M.bin                                      100%  100MB  20.0MB/s   00:05


압축해서 원격지 서버에 전송 (800Mbps 속도가 나왔다. 더미파일이라서 압축효과가 있다.)

[root@conoha ~]# scp -P10022 -Cpr ./testdir root@vultr.ivps.kr:~/

100M.bin                                      100%  100MB 100.0MB/s   00:01


이번엔 원서버에 원본 디렉토리를 지우고

[root@conoha ~]# rm -rf testdir


원격지 서버의 testdir 디렉토리를 다운로드

[root@conoha ~]# scp -P10022 -Cpr root@vultr.ivps.kr:~/testdir ~/

100M.bin                                      100%  100MB  50.0MB/s   00:02

[root@conoha ~]# scp -P10022 -pr root@vultr.ivps.kr:~/testdir ~/

100M.bin                                      100%  100MB  20.0MB/s   00:05

[root@conoha ~]# ls -l ~/testdir/subdir/

합계 102400

-rw-r--r-- 1 root root 104857600  5월 27 11:53 100M.bin


rsync 의 --delete 옵션이 scp 에는 없는거 빼고는 별 차이가 없는 것 같다.


물론 rsync 는 한번 복사 이후에는 변경된 파일만 백업이 이뤄지는 아주 큰 매력이 있긴하다.



블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,