오늘은 리눅스 scp 명령어 사용법에 대해 포스팅해보려고 한다. 역시 노경언니가 도와줬고,, 나는 정말 많이 헤메다가 드디어 덕분에 방법을 찾았다. 그리고 지금은 파일을 전송중이다!
참고로 나는 연구실에서 도커를 사용하고 있고, 도커에 대한 권한만 있고 서버에 대한 권한은 없는 상태이다!
# scp
보통 서버 단에서 파일을 전송하는 리눅스 scp 명령어를 검색하면, 다음과 같이 서버에서 서버로 파일을 전송할 수 있다고 검색된다.
$ scp [유저명]@[IP주소]:[전송할 파일 경로] [유저명]@[IP주소]:[받을 경로]
즉, 현재 파일이 들어있는 IP 주소와 경로, 그리고 도착지 경로의 IP주소와 경로를 입력해야하는 것이다. 하지만 이렇게 동일한 형태로 입력했더니 권한이 없다는 "Permission denied" 가 자꾸 뜬다. 아마 도커의 권한은 존재하지만, 서버에 대한 권한은 없기 때문이었겠지.
결론적으로 이 문제가 발생한 원인은 도커 단위에서 파일을 전송해야하는데, 권한이 없는 서버 단위에서 파일을 전송하려고 접근하고 있었기 때문으로 보인다.
# 도커 단위에서 scp 명령어 수행하기
0. 아래 모든 작업은 현재 보내고싶은 파일이 위치한 도커에서 진행한다!
1. 파일을 도착시키고자 하는 도커의 ssh를 세팅하는 주소를 현재 도커의 터미널에 복붙하고, 도착지의 도커 ssh를 현재 위치에 생성한다. 그럼 아래와 같이 name을 정하라고 뜨고, 현재 위치에서 도착지를 부를 이름을 정해 입력하면 된다.
$ Provide a name for the ssh connection :
2. scp 명령어를 위에서 정한 이름으로 아래와 같이 실행한다. 주의해야할 사항은 여기서 도커단위로 접속하기 때문에, 서버 단위의 ip 등은 명령어에 넣어줄 필요가 없다는 것이다. 만약 서버 단위로 접속하게 된다면 "Permission denied" 를 만나게 된다.
$ scp -r [보내려는 폴더경로] [1번에서 지정한 도착지 이름]:[도착지 경로]
그리고 보내려는 폴더경로에서 현재 도커 이름은 써주지 않아도 괜찮다. (현재 도커 이름 : 보내려는 폴더 경로 > 이런 형식이 되지 않아도 된다는 말이다! )
참고로 로컬에서 서버로 파일을 전송할 때는 이 글을 참고하면 좋을 것 같다 :D
'Linux' 카테고리의 다른 글
[Linux] 여러 디렉토리를 merge하기 (2) | 2022.12.23 |
---|---|
[Linux] 리눅스 ls -alt -h로 파일 사이즈 확인하기 (0) | 2022.06.13 |
[Linux] 리눅스 wget 사용하기 - 다소 큰 파일을 웹상에서 다운로드 (1) | 2022.05.31 |
[Linux] 리눅스 mv 명령어 - 폴더 이름 바꾸기, 폴더 이동하기 (0) | 2022.04.16 |
[Linux] 리눅스 명령어 Kill이 안될때 ! (2) | 2021.07.23 |