시스템 관리

Chooooo·2025년 2월 13일
0

리눅스 정리

목록 보기
10/10

시스템 관리

리눅스와 같은 운영체제에서 시스템 관리는 컴퓨터 시스템을 운영하고 유지보수하는 모든 작업을 포함한다.

패키지 관리 시스템

패키지 관리 시스템(PMS, Package Management System)은 패키지의 설치, 업데이트, 구성, 제거를 자동화하고 관리하는 시스템이다.

패키지 관리 시스템이 관리하는 대상인 패키지는 소프트웨어 프로그램과 관련 파일들을 포함한 묶음을 의미힌다. 패키지는 소프트웨어의 설치, 업데이트, 구성, 제거를 용이하게 하는 정보를 담고 있다. 패키지의 주요 구성 요소는

  • 실행 파일 : 프로그램을 실행할 수 있는 파일
  • 라이브러리 파일 : 프로그램을 실행하는 데 필요한 라이브러리
  • 문서 : 매뉴얼, 라이센스 정ㅈ보, 개발자 문서 등의 문서
  • 패키지 메타데이터 : 패키지 이름, 버전, 설명, 종속성 정보 등의 메타데이터
  • 설정 파일 : 사용자 또는 시스템 관리자가 프로그램을 구성하는 데 필요한 설정 파일

패키지 관리 시스템은 기본적으로 사용자로부터 명령을 입력받아 작동한다. 사용자는 패키지 관리 시스템을 위한 CLI나 GUI 기반 애플리케이션을 이용해 패키지 관리 시스템에 명령을 내린다.

리눅스 배포판에 따라 서로 다른 패키지 관리 시스템을 사용하는데, 주로 두 가지 계열로 나뉜다.

Debian 계열(Ubuntu, Linux Mint)

Debian 계열에서는 APT(Advanced Package Tool)을 사용한다. APT는 .deb 형식의 패키지를 관리함

APT 패키지 관리 시스템의 주요 명령어

  1. 패키지 목록 업데이트
    sudo apt update
    -> 시스템이 패키지 저장소에서 최신 패키지 목록을 다운

  2. 패키지 최신 버전으로 업그레이드
    sudo apt upgrade
    -> 업그레이드 가능한 패키지 목록과 진행 여부 확인

  3. 새로운 패키지 설치
    sudo apt install [패키지_이름:nginx]
    -> 예시로 nginx 웹 서버 설치. APT는 자동으로 필요한 의존성 패키지들도 함께 설치한다.

  4. 패키지 제거
    sudo apt remove nginx

Red Hat 계열 주요 명령어

Red Hat 계열의 패키지 관리 시스템은 DNF를 사용하며, Debian 계열의 APT와 기능은 유사하지만 명령어 구문이 다르다.

Red Hat 계열에서 패키지 목록을 업데이트하고 시스템을 업그레이드 하려면
sudo dnf update
-> 이 명령어는 APT의 update와 upgrade를 하나로 통한한 것으로, 패키지 목록을 업데이트하고 시스템을 업그레이드하는 작업을 동시에 수행한다.

새로운 패키지 설치
sudo dnf install nginx

등등 Red Hat 계열은 dnf prefix 붙여서 수행하면 된다.

systemd

systemd는 시스템과 서비스 관리자 역할을 수행한다. systemd는 리눅스에서 사용하는 초기화 및 서비스 관리 시스템이다. 시스템의 부팅 과정을 관리하고, 다양한 서비스(웹 서버, 데이터 베이스 서버 등)를 시작/종료/관리하는 역할을 담당한다.
-> 초기화 시스템

systemd는 시스템의 부팅과 설정 과정에서 할 일들을 서비스라는 단위로 구분해 관리한다. 서비스는 백그라운드에서 실행되는 프로세스를 의미한다. 서비스가 꼭 백그라운드에서 실행되는 것은 아니지만, 특정 기능을 하는 프로세스를 백그라운드에서 실행하는 경우가 많다.

이런 프로세스를 데몬 프로세스라고 한다.

systemctl

systemd에 등록된 서비스는 systemctl 명령어로 조회하고 설정할 수 있다. systemctl의 주요 사용법에 대해 알아보자.
-> systemctl 명령어는 대부분의 경우 sudo 권한이 필요하다. 시스템 서비스를 관리하는 것이기 때문 !

  1. sudo systemctl list-units : 현재 시스템의 서비스 목록을 조회
  2. sudo systemctl start 서비스이름 : 지정한 서비스를 시작
  3. sudo systemctl stop 서비스이름 : 지정한 서비스를 중단
  4. sudo systemctl enable 서비스이름 : 부팅할 때 지정한 서비스를 시작하게 한다.
  5. sudo systemctl disable 서비스이름 : 부팅할 때 지정한 서비스를 시작하지 않게 한다.
  6. systemctl status 서비스이름 : 지정한 서비스의 유닛 파일 내용을 조회한다.
  7. systemctl daemon-reload : systemd 관리자 설정을 다시 읽어들인다.

보통 서비스 관리가 필요할 때 systemd를 사용한다.
예를 들어, 웹 서버나 데이터베이스 서버와 같은 백그라운드 서비스를 시작,중지 또는 재시작해야할 때 systemd를 통해 이를 수행.

또한 서비스의 상태를 모니터링하고 문제를 진단할 때도 systemd가 필요하다. systemd는 각 서비스의 로그를 수집하고 관리하므로, 서비스에 문제가 발생했을 때 로그를 확인하여 원인을 파악할 수 있다.

.bashrc

.bashrc는 리눅스 시스템을 개인화하고 작업 환경을 효율적으로 만드는 데 중요한 설정 파일

.bashrc는 사용자가 터미널을 열 때마다 자동으로 실행되는 스크립트. 이 파일을 통해 유용한 설정들을 할 수 있다.

환경 변수 설정 : 자주 사용하는 디렉토리나 프로그램의 경로를 환경 변수로 설정하여 작업 효율 높이기 가능

그냥 .bashrc나 .zshrc와 같은 파일들은 사용자가 새로운 터미널 세션을 시작할 때마다 자동으로 실행되는 쉘 초기화 스크립트라고 생각하자.

profile
back-end, 지속 성장 가능한 개발자를 향하여

0개의 댓글