시스템 배포, 구성 및 유지 관리

hahic·2023년 3월 5일
0

RHCSA

목록 보기
5/10
post-thumbnail

작업 예약

crontab

  • 특정 시간마다 프로그램이나 명령어를 자동으로 실행할 수 있도록 하는 서비스
  • 매일, 매주, 매월 등 지정된 시간에 일괄적으로 명령을 실행하거나, 백업 작업 등을 예약 가능

구성 파일 위치

  • /etc/crontab
  • /etc/cron.daily/
  • /etc/cron.hourly/
  • /etc/cron.monthly/
  • /etc/cron.weekly/

명령어

  • crontab 수정
    crontab -e
  • crontab 확인
    crontab -l
  • 특정 유저 crontab 수정
    crontab -e -u <user>
  • 특정 유저 crontab 삭제
    crontab -r -u <user>

anacron

  • cron과 유사하지만, 예약된 시간에 컴퓨터가 구동되어 있지 않아 누락된 작업이 있는 경우 처리. (반면, cron은 누락시킴)
  • 최소 일 단위로 작업 반복

명령어 옵션

  • -t <directory-path>: 기본 디렉토리 경로 대신 지정한 디렉토리에서 anacrontab 파일 로드
  • -u <yser-name>: 지정한 사용자의 anacrontab 실행 (이 옵션을 사용하려면 root 권한 필요)
  • -n: 실행할 작업이 없어도 출력하지 않음
  • -d: 디버그 모드로 실행
  • -f: anacrontab 파일 강제로 다시 로드

구성 파일 위치

  • /etc/anacrontab

at

  • 지정된 시간에 한 번 작업을 실행하는 유틸리티

구성 파일 위치

  • /var/spool/at

명령어

  • 예약된 작업 목록 조회
    atq
  • 작업 예약 취소
    atrm <job-id>
  • 작업 예약
    ex) /usr/bin/touch atscheduler | at 15:30 August 20 2024

파일 /var/log/cron에서 cron, anacron, at 실행 로그를 확인할 수 있음

시작 프로세스 및 서비스 관리

Initialization System

  • 커널 부팅 이후에 실행되는 첫 번째 프로세스
  • 프로세스 관리 및 구동에 중요한 역할 담당
  • systemV, Upstart, systemd 등이 있음

systemd.service

기능

  1. 서비스 자동 시작
  2. 프로세스 모니터링, 로깅, 파워 관리

unit

  • service
  • socket
  • device
  • timer

sshd.service

  • openSSH server daemon 제어
  • SSH 클라이언트 연결, 인증, 세션 관리 및 데이터 전송

atd.service

  • atd.service의 daemon
  • /var/spool/at/ 디렉토리에 예약된 작업들 처리

systemctl

: 시스템 서비스와 프로세스를 관리하는데 사용하는 명령어

  • systemctl start <unit> - 지정한 unit 시작
    ex) systemctl start apache2.service
  • systemctl stop <unit> - 지정한 unit 중지
    ex) systemctl stop apache2.service
  • systemctl restart <unit> - 지정한 unit 다시 시작
    ex) ystemctl restart apache2.service
  • systemctl status <unit> - 지정한 unit의 상태 표시
    ex) systemctl status apache2.service
  • systemctl enable <unit> - 지정한 unit 부팅 시 자동으로 시작
    ex) systemctl enable apache2.service
    ex) systemctl enable --now apache2.service
  • systemctl disable <unit> - 지정한 unit 부팅 시 자동으로 시작하지 않도록 설정
    ex) systemctl disable apache2.service
  • systemctl mask <unit> - 지정한 unit 완전히 비활성화 (해당 unit의 파일을 제거하는 것이 아니라, 해당 unit을 사용할 수 없게 함)
    ex) systemctl mask apache2.service
  • systemctl unmask <unit> - 이전에 mask한 unit을 다시 활성화
    ex) systemctl unmask apache2.service
  • systemctl list-units - 시스템의 모든 unit 표시
  • systemctl list-unit-files - 시스템에서 사용 가능한 모든 unit 파일 표시
  • systemctl daemon-reload - systemd 데몬이 재로드 (새로운 unit 파일이 추가되거나 수정된 경우에 필요)

소프트웨어 패키지 설치 및 업데이트

subscription-manager

  • red hat enterprise linux 시스템에서 사용되는 라이선스 관리 도구
  • 라이선스 관리와 업그레이드 관리를 위한 도구

example

  • sudo subscription-manager register --username <user-name> --password <password>
  • sudo subscription-manger attach --auto
  • sudo subscription-manager repos --enable <repo-name>
  • sudo subscription-manager repos --disable <repo-name>

yum-manager

  • linux 시스템에서 사용되는 yum 패키지 관리 도구

설치 방법

$ sudo dnf install dnf-utils -y

구성 파일 위치

  • /etc/yum.repos.d

example

  • sudo yum repolist --all sudo yum repolist -v sudo yum repolist
  • sudo yum-config-manager --add-repo <repo-url>
  • sudo yum-config-manager --enable <repo-name>
  • sudo yum-config-manager --disable <repo-name>
  • sudo yum install <package-name>
  • sudo yum search <package-name>
  • sudo yum info <package-name>
  • sudo yum check <package-name>
  • sudo yum install <package-name>
  • sudo yum remove <package-name>
  • sudo yum update
  • sudo yum check-upgrade
  • sudo yum group list sudo yum group list --hidden
  • sudo yum group install <name>
  • sudo yum group remove <name>

패키지 모듈 스트림 작업

yum module

  • RHEL 8과 CentOS 8에서 새롭게 도입된 패키지 관리 기능
  • 패키지 그룹을 사용하여 패키지를 관리했지만, 모듈로 패키지를 관리

명령어

  • sudo yum module list
  • sudo yum module list <package-name> sudo yum module list --installed <package-name>
  • sudo yum module install <package-name>:<version>/<run-type>
  • sudo yum module reset

dnf VS yum

  • dnf, yum 둘 다 red hat 계열 리눅스 배포판에서 사용되는 패키지 매니저
  • dnf는 최근에 출시되었으며, yum보다 더 많은 기능과 성능 개선이 이루어짐
profile
👩‍💻 Junior Backend Developer

0개의 댓글