티스토리 뷰
안녕하세요. 개발개입니다.
이번 글에서는 Unix/Linux에서 공통으로 사용하는
scp 명령어에 대해 알아보도록 하겠습니다.
오타, 오류 혹은 기타 의견은 언제든지 환영합니다.
putty의 pscp를 이용한 Windows ↔ Unix/Linux 간의 파일 전송 :
[KR/Linux] - [WINDOWS ↔ UNIX/LINUX] pscp 명령어 사용 방법
scp 명령어란?
ssh 명령어와 같은 암호화 인증을 통해 네트워크의 호스트간 파일복사를 위한 명령어 입니다.
Secure Copy의 약자로, 다음 세 가지 경우 모두 가능합니다.
- 로컬 ─(복사)→ 원격
- 원격 ─(복사)→ 로컬
- 원격 ─(복사)→ 원격
사용 방법
- 로컬 ─(복사)→ 원격
scp [옵션] [소스파일경로및파일(디렉토리)명] [유저명@서버주소:목적지경로]
- 원격 ─(복사)→ 로컬
scp [옵션] [유저명@서버주소:소스파일경로및파일(디렉토리)명] [목적지경로]
- 원격 ─(복사)→ 원격
scp [옵션] [유저명@서버주소:소스파일경로및파일(디렉토리)명] [유저명@서버주소:목적지경로]
옵션
- -r
- 모든 내부 디렉토리를 재귀적으로 복사
- 디렉토리 복사 시 사용
- -P
- ssh 포트 지정
- -i
- ssh key file의 경로를 지정
- -v
- 상세내용을 보며 디버깅을 할 때 사용
- -p
- 파일의 수정 시간과 권한을 유지
사용 예시
다음과 같이 300여개의 xml 파일이 있습니다.
이 중 일부를 다른 호스트 서버(이하 서버)로 보내고 싶다면 어떻게 해야 할까요?
위에서 말씀드린 scp 명령어를 사용하여 전송할 수 있습니다.
명령어 + 파일명 + 전송할서버의계정@전송할서버:목적지디렉토리를 다음과 같이 적어줍니다.
예시
scp apc1801??.xml thedev@localhost:/home/target/study/sshcopy
파일명의 경우 18년도 1월(apc1801로 시작) xml 데이터 전부를 대상으로 작성하였습니다.
대상 서버에서 22번 포트를 ssh로 열어두었다면 문제가 없겠지만
ssh: connect to host [targetServer] port 22: Connection refused 라는 에러가 뜨는 경우도 있습니다.
이 때 대상 서버의 ssh 포트가 다른 포트로 포트포워딩 되어 있지 않은지 확인해 주셔야 합니다.
사용할 수 있는 옵션을 scp -help 명령어를 통해 조회를 해보면
다른 포트로 전송하기 위해서는 다음과 같이 -P(대문자) 옵션을 사용해야 하는 것을 알 수 있습니다.
예시
scp -P 22022 apc1801??.xml thedev@localhost:/home/target/study/sshcopy
암호키가 화면에 나오고, 진짜 연결할 것인지 물어봅니다.
그리고 마지막으로 해당 서버 계정의 패스워드를 입력해 줍니다.
다음과 같이 원하는 데이터가 잘 전송되는 것을 볼 수 있습니다.
본 글은 다음을 참고하여 작성되었습니다.
https://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_scp_%EC%82%AC%EC%9A%A9%EB%B2%95
https://terms.naver.com/entry.nhn?docId=4125814&cid=59321&categoryId=59321
https://twpower.github.io/138-send-file-using-scp-command
'KR > Linux' 카테고리의 다른 글
[리눅스마스터] 리눅스 실무의 이해 - 리눅스의 개요 (0) | 2020.08.01 |
---|---|
[리눅스마스터] 시험 정보 (0) | 2020.08.01 |
[ShellScript] while문을 이용한 다중 결과 반복 처리 (0) | 2019.09.23 |
[UNIX/LINUX] 파일 찾기 - which / whereis / find / grep 명령어 사용 방법 (0) | 2019.09.06 |
[WINDOWS ↔ UNIX/LINUX] pscp 명령어 사용 방법 (0) | 2019.09.05 |