Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- linux 파일복사
- describe-instances
- Ansible
- aws cli ec2
- sql 공유
- docker myql
- React Native
- statefulset
- ELB
- k8s
- amazon ebs종류
- private repostiroy
- nexus proxy
- 쿠버네티스
- 명령어
- amazon ebs
- Configmap
- 서버간 파일전송
- kubectl
- pod
- kubectl명령어
- amazon ebs활용
- EC2
- 쿠버네티스교과서
- jenkins parameter
- docker
- yaml예시
- cli ec2
- SecurityContextHolder
- aws cli
Archives
- Today
- Total
게으름을 위한 부지런한 게으름뱅리' 블로그
[Linux] SCP 파일복사 (SCP 명령어 총정리) 본문
반응형
scp (Secure Copy Protocol) 명령어는 파일을 안전하게 복사하기 위해 사용됩니다. scp 명령어는 SSH 프로토콜을 기반으로 하며, 원격 서버와 로컬 머신 간에 파일을 복사할 수 있습니다.
#로컬 파일을 원격 서버로 복사하기
scp localfile.txt username@remotehost:/path/to/destination/
#원격 서버의 파일을 로컬 머신으로 복사하기
scp username@remotehost:/path/to/remote/file.txt /local/destination/
#로컬 디렉터리를 원격 서버로 복사하기 (디렉터리 복사)
scp -r localdir/ username@remotehost:/path/to/destination/
#원격 서버의 디렉터리를 로컬 머신으로 복사하기
scp -r username@remotehost:/path/to/remote/dir/ /local/destination/
#파일을 다른 원격 서버로 복사하기 (로컬 머신을 중계로 사용)
scp username1@sourcehost:/path/to/file.txt username2@destinationhost:/path/to/destination/
# 특정 포트를 사용하여 복사하기
scp -P 2222 localfile.txt username@remotehost:/path/to/destination/
#파일 복사 시 진행 상태를 확인하기
scp -v localfile.txt username@remotehost:/path/to/destination/
#파일을 압축하여 전송하기 (압축은 수동으로 해야 함)
tar -czf - localfile.txt | ssh username@remotehost "cat > /path/to/destination/localfile.tar.gz"
#다수의 파일을 원격 서버로 복사하기
scp file1.txt file2.txt file3.txt username@remotehost:/path/to/destination/
#원격 서버에서 파일을 복사하면서 파일 이름을 변경하기
scp username@remotehost:/path/to/remote/file.txt /local/destination/newfile.txt
#서브디렉터리와 함께 디렉터리를 복사할 때 압축하여 복사하기
tar -czf - localdir/ | ssh username@remotehost "tar -xzf - -C /path/to/destination/"
현업에서 많이 사용하는 명령어 예시
#원격 서버에서 로컬 서버로 파일을 다운로드하면서 로그 파일을 확인하기
scp username@remotehost:/var/log/syslog /local/destination/
#여러 파일을 원격 서버로 복사하면서 SSH 키를 사용하여 비밀번호 없이 인증하기
scp -i ~/.ssh/id_rsa file1.txt file2.txt username@remotehost:/path/to/destination/
#원격 서버에서 로컬 머신으로 대량의 데이터를 주기적으로 백업하기 (스케줄링)
# cron 작업을 설정하여 정기적으로 실행할 수 있습니다.
scp -r username@remotehost:/data/backup/ /local/backup/
#원격 서버에서 로컬 서버로 파일을 복사하고 복사 후 원격 서버에서 파일 삭제하기
scp username@remotehost:/path/to/file.txt /local/destination/ && ssh username@remotehost 'rm /path/to/file.txt'
#대량의 파일을 원격 서버로 복사하면서 대역폭 제한하기
#-l 옵션을 사용하여 대역폭을 제한합니다
scp -l 5000 localdir/ username@remotehost:/path/to/destination/
#원격 서버에서 로컬 머신으로 대량의 데이터 복사하면서 사용자와 그룹 정보를 유지하기
scp -rp username@remotehost:/path/to/large_directory/ /local/destination/
옵션에 대한 설명
1. -r (Recursive)
- 용도: 디렉터리와 그 하위 파일 및 서브디렉터리를 재귀적으로 복사합니다.
- 예시: scp -r localdir/ username@remotehost:/path/to/destination/
- 설명: localdir/ 디렉터리와 그 안의 모든 내용을 원격 서버의 지정된 디렉터리로 복사합니다. 디렉터리 구조를 유지하며 복사할 때 필수 옵션입니다.
2. -p (Preserve)
- 용도: 파일의 수정 시간, 접근 시간, 소유자 및 권한을 유지하면서 복사합니다.
- 예시: scp -rp username@remotehost:/path/to/large_directory/ /local/destination/
- 설명: 파일을 복사하면서 원본 파일의 메타데이터를 그대로 유지합니다. 파일 권한이나 시간 정보를 변경하지 않고 유지해야 할 때 유용합니다.
3. -i (Identity File)
- 용도: SSH 인증에 사용할 개인 키 파일을 지정합니다.
- 예시: scp -i ~/.ssh/id_rsa file1.txt username@remotehost:/path/to/destination/
- 설명: SSH 인증을 위해 기본적으로 사용되는 개인 키 대신 지정된 개인 키 파일을 사용하여 파일을 전송합니다. 비밀번호 없이 인증할 때 필요합니다.
4. -P (Port)
- 용도: SSH 연결에 사용할 포트를 지정합니다.
- 예시: scp -P 2222 localfile.txt username@remotehost:/path/to/destination/
- 설명: 기본 포트(22)가 아닌 다른 포트를 사용하여 SSH 연결을 설정합니다. 원격 서버가 비표준 포트를 사용할 때 유용합니다.
5. -v (Verbose)
- 용도: 명령어 실행 시 자세한 디버그 정보를 출력합니다.
- 예시: scp -v localfile.txt username@remotehost:/path/to/destination/
- 설명: 파일 전송 진행 상황 및 SSH 연결 과정에 대한 세부 정보를 출력합니다. 문제를 진단하거나 디버깅할 때 유용합니다.
6. -l (Limit)
- 용도: 네트워크 대역폭 제한을 설정합니다.
- 예시: scp -l 5000 localdir/ username@remotehost:/path/to/destination/
- 설명: 대역폭을 5000 Kbit/s로 제한하여 네트워크 자원을 과도하게 사용하는 것을 방지합니다. 네트워크 트래픽을 조절할 때 유용합니다.
7. -C (Compression)
- 용도: 파일 전송 시 데이터를 압축하여 전송 속도를 개선합니다.
- 예시: scp -C file1.txt username@remotehost:/path/to/destination/
- 설명: 전송 중 데이터를 압축하여 전송 속도를 높이고, 대역폭 사용량을 줄입니다. 큰 파일을 전송할 때 유용합니다.
8. -o (Option)
- 용도: SSH 클라이언트 옵션을 추가로 지정합니다.
- 예시: scp -o "StrictHostKeyChecking=no" file1.txt username@remotehost:/path/to/destination/
- 설명: SSH 연결에 대한 추가 옵션을 지정합니다. 위 예시에서는 호스트 키 확인을 비활성화하여 자동 스크립트에서 유용합니다.
반응형
'IT > Linux' 카테고리의 다른 글
[Linux] tar 압축하기, 압축풀기(명령어 총정리) (0) | 2024.08.18 |
---|---|
[Linux] netstat로 service port 확인하기 (0) | 2024.07.07 |
[Linux] Find 명령어 총정리 (0) | 2024.07.07 |
[Curl] IP주소로 Https curl 호출하기 (0) | 2022.04.03 |
Comments