레이블이 명령어인 게시물을 표시합니다. 모든 게시물 표시
레이블이 명령어인 게시물을 표시합니다. 모든 게시물 표시

2024년 9월 24일 화요일

Node.js 서버가 사용하는 포트를 확인하고 해당 포트를 종료하는 방법


1. Node 서버가 사용하는 포트 확인 방법

방법 1: lsof 명령어 사용 (리눅스/맥OS)

lsof -i :<포트번호>

이 명령어는 특정 포트 번호로 열려 있는 프로세스를 확인할 수 있다.

예시:

lsof -i :3000

출력 예시:

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
node     1234 user   22u  IPv4  56789      0t0  TCP *:3000 (LISTEN)

여기서 PID 값이 해당 포트를 사용하는 프로세스의 ID이다.

방법 2: netstat 명령어 사용 (리눅스/맥OS)

netstat -tuln | grep :<포트번호>

이 명령어는 특정 포트 번호가 열려 있는지 확인할 수 있다.

2. 특정 포트 사용하는 프로세스 종료 방법

방법 1: kill 명령어 사용

lsof 또는 netstat 명령어로 확인한 PID 값을 이용해 해당 프로세스를 종료할 수 있다.

kill -9 <PID>

예시:

kill -9 1234

이 명령어는 PID가 1234인 프로세스를 강제 종료한다.

방법 2: fuser 명령어 사용 (리눅스)

fuser -k <포트번호>/tcp

예시:

fuser -k 3000/tcp

이 명령어는 TCP 포트 3000을 사용하는 프로세스를 종료한다.

3. 여러 포트를 동시에 확인하는 방법

방법 1: lsof 명령어 사용 (리눅스/맥OS)

여러 포트를 한 번에 확인할 수는 없지만, 원하는 포트마다 각각 명령어를 실행할 수 있다.

lsof -i :3000 -i :8080 -i :5000

각 포트에 대해 사용 중인 프로세스 정보를 확인할 수 있다.

방법 2: netstat 명령어 사용 (리눅스/맥OS)

여러 포트의 정보를 한번에 확인할 수는 없지만, 네트워크 상태 전체를 조회 후 필요한 정보를 추출할 수 있다.

netstat -tuln | grep ':3000\\\\|:8080\\\\|:5000'

이 명령어는 포트 3000, 8080, 5000에서 동작 중인 프로세스들을 필터링한다.

4. 여러 포트를 사용하는 프로세스 종료 방법

방법 1: lsofkill 조합

각 포트별로 확인한 PID를 모아 아래와 같이 한꺼번에 종료할 수 있다.

kill -9 $(lsof -t -i :3000 -i :8080 -i :5000)

이 명령어는 포트 3000, 8080, 5000에서 실행 중인 프로세스를 한 번에 종료한다.

방법 2: fuser 명령어 사용 (리눅스)

fuser -k 3000/tcp 8080/tcp 5000/tcp

이 명령어는 지정한 여러 포트에서 동작 중인 프로세스를 한꺼번에 종료한다.

2024년 9월 19일 목요일

chmod : 읽기, 쓰기, 실행 권한, 하위 폴더 디렉토리

chmod 명령어는 파일이나 디렉토리의 권한을 변경할 때 사용된다. UNIX 및 Linux 시스템에서 파일의 읽기, 쓰기, 실행 권한을 관리하는 중요한 도구다.

1. 기본 개념

파일이나 디렉토리의 권한은 세 가지 범주로 나뉜다:

  • 소유자(owner): 파일을 소유한 사용자
  • 그룹(group): 파일을 소유한 사용자가 속한 그룹
  • 기타(others): 위 두 범주에 속하지 않는 모든 사용자

각 범주에 대해 세 가지 권한을 설정할 수 있다:

  • 읽기(read, r): 파일을 읽을 수 있는 권한 (디렉토리인 경우 목록 확인 가능)
  • 쓰기(write, w): 파일을 수정할 수 있는 권한 (디렉토리인 경우 파일 추가/삭제 가능)
  • 실행(execute, x): 파일을 실행할 수 있는 권한 (디렉토리인 경우 접근 가능)

2. 숫자 형식

권한은 8진수로 나타내며, 각 권한은 특정 숫자로 매핑된다:

  • 읽기(r) = 4
  • 쓰기(w) = 2
  • 실행(x) = 1

세 개의 권한을 조합하여 숫자로 표현한다. 예를 들어:

  • 읽기 + 쓰기 + 실행: 7 (4 + 2 + 1)
  • 읽기 + 쓰기: 6 (4 + 2)
  • 읽기 + 실행: 5 (4 + 1)
  • 읽기만: 4
  • 실행만: 1
  • 권한 없음: 0

숫자 조합 예시:

  • chmod 755 file.txt
    • 소유자: 읽기, 쓰기, 실행 (7)
    • 그룹: 읽기, 실행 (5)
    • 기타: 읽기, 실행 (5)

3. 문자 형식

숫자 대신 문자로도 권한을 설정할 수 있다. 이때 u(소유자), g(그룹), o(기타), a(전체)를 사용한다.

  • +: 권한을 추가
  • ``: 권한을 제거
  • =: 특정 권한만 설정

문자 형식 예시:

  • chmod u+x file.txt: 소유자에게 실행 권한을 추가
  • chmod g-w file.txt: 그룹의 쓰기 권한을 제거
  • chmod o=r file.txt: 기타 사용자에게 읽기 권한만 부여

4. 디렉토리 권한

디렉토리에 권한을 설정할 때는 파일과 동일한 방법으로 설정되지만, 의미는 조금 다르다.

  • 읽기 권한(r): 디렉토리의 파일 목록을 볼 수 있음.
  • 쓰기 권한(w): 디렉토리 내에서 파일을 추가하거나 삭제할 수 있음.
  • 실행 권한(x): 디렉토리 내에서 파일에 접근 가능.

하위 디렉토리 및 파일에 권한 적용

  • chmod -R 755 directory/
    : directory/와 그 하위 파일 및 디렉토리 모두에 재귀적으로 755 권한을 적용.

5. 실습 예시

예시 1: 파일에 권한 추가

chmod 644 example.txt
  • 소유자는 읽기/쓰기 권한 (6)
  • 그룹과 기타는 읽기만 가능 (4)

예시 2: 실행 권한 추가

chmod +x script.sh
  • 모든 사용자에게 실행 권한을 추가

예시 3: 디렉토리에 재귀적으로 권한 변경

chmod -R 755 /var/www/html
  • /var/www/html 디렉토리와 그 하위 모든 파일 및 디렉토리에 755 권한 적용

6. 기타 옵션

  • R: 재귀적으로 하위 파일 및 디렉토리 모두에 권한을 적용.

  • -reference: 다른 파일의 권한을 기준으로 설정.

    chmod --reference=otherfile.txt myfile.txt
    

요약

  • chmod는 파일과 디렉토리의 권한을 설정하는 명령어로, 8진수(숫자)와 문자 형식으로 설정할 수 있다.
  • 권한은 소유자, 그룹, 기타 사용자로 나누어 설정되며, 읽기, 쓰기, 실행 권한을 조합해 적용한다.

2024년 8월 12일 월요일

맥북에서 폴더를 EC2 서버에 업로드 : scp, ssh

 

로컬 맥북에서 "my-project" 프로젝트 폴더를 EC2 서버에 업로드

SCP를 이용한 파일 업로드

  1. 로컬 맥북 터미널을 열고 scp 명령어를 사용하여 프로젝트 폴더를 EC2 서버로 업로드한다.

    scp -i <your-key-pair.pem> -r /path/my-project ec2-user@your-ec2-instance-public-dns:/home/ec2-user/
    

파일 업로드 후 확인

  1. SSH로 EC2 서버에 접속하여 파일이 정상적으로 업로드되었는지 확인한다.

    ssh -i <your-key-pair.pem> ec2-user@your-ec2-instance-public-dns
    cd /home/ec2-user/
    ls
    

관련 사이트 및 블로그