Today I Learn - 21

이정빈·2021년 3월 10일
0

클라우드 엔지니어

목록 보기
22/53
post-thumbnail

소프트웨어 패키지 관리

소프트웨어 소스코드 컴파일 : 직접 소스코드에 대한 컴파일 명령을 수행
컴파일(Compile) : 프로그래머가 작성하는 소스코드를 기계어로 변환
인터프리터(Interpreter) 방식 : 소스코드를 직접 실행
컴파일 과정을 간편화 : ‘Makefile’
-./configure // 설치 환경 설정
-make // 컴파일
-make install // 컴파일된 파일 적정위치로 복사

소프트웨어 패키지 설치

소프트웨어 패키지 : 동작환경에 맞게 사전에 컴파일 된 파일을 모아놓은 덩어리
패키지 설치: 파일을 적정한 위치로 복사, 기타 추가 작업 수행
리눅스의 각 배포판에 따라 패키지 설치 방식에 차이가 있음
EL : rpm(Redhat Package Manager)
http://rpmfind.net/ : rpm 패키지 검색/다운로드
ubuntu : deb
소프트웨어를 저장소(Repository)를 통해 설치
저장소(Repository): 여러가지 필요한 패키지 파일을 보유
패키지 설치시 의존성 문제를 스스로 해결할 수 있음
배포판에 따라 도구 및 패키지의 차이가 있음
EL : yum (Yellowdog Update Modified), dnf
Ubuntu : apt

rpm(Redhat Package Manager)

<소프트웨어이름>-<버전>-<릴리즈번호>...rpm 파일 설치시 사용
옵션
설치옵션
-i : 설치
-v : Verbose (상세한 정보)
-h : Hash. 설치 진행상황을 # 기호로 표시
[######## ] 30%
-U : 업데이트
-ivh : 일반적인 설치옵션
rpm -ivh wireshark.rpm
-Uvh : 일반적인 업데이트 옵션
rpm -Uvh wireshark.rpm
쿼리 옵션 (Query) : 질의
-q : 쿼리 옵션에 기본 포함
-qa : 현재 설치된 패키지 목록 확인
-ql : 패키지 설치시 생성된 파일 리스트
-qf : 특정 파일이 포함된 패키지 확인
-qs : 패키지 내 파일 상태 (변경여부 등)
-qd : 패키지 내 문서(매뉴얼) 파일 조회
-qc : 패키지 내 설정 파일(Configuration)
-qi : 특정 패키지의 상세정보
-qR : 의존성(Dependency) 정보 확인

YUM(Yellowdog Update Modified)

rpm의 문제인 종속성에 대한 문제를 쉽게 해결
필요한 패키지를 직접 다운로드 하지 않고도 설치 가능
관련 파일
/etc/yum.conf : YUM 기능 설정
/etc/yum.repos.d/ : 패키지 저장소(레포지토리) 설정
/var/log/yum.log : 패키지 설치 로그 파일

yum 명령어

명령어 형식
yum <서브커맨드> [argument]
패키지 정보 업데이트
yum repolist
yum makecache fast
패키지 탐색
yum search [패키지 이름]
패키지 정보 확인
yum info [패키지 이름]
패키지 설치
패키지 설치시 필요한 패키지 의존성 정보 확인후 필요한 패키지를 레포지토리에서 다운로드 가능할 경우 함께 설치
yum install [패키지이름1][패키지이름2]...
-y : 물어보지 않고 설치
-y 옵션을 사용하지 않을경우 [y/d/N]
d : 일단 다운로드
-y 옵션 사용하지 않을 경우 GPG Key 확인 요청
패키지 목록 확인
yum list [패키지 이름]
패키지 이름을 입력하지 않을경우 : 모든 설치가능한 패키지를 포함한 목록이 출력
출력 내용
패키지이름 패키지버전/릴리즈 Repository
Repository 이름 앞 @ 기호 : 설치된 패키지
yum list installed
설치된 패키지의 목록만 출력

패키지 삭제

설치시 의존성을 가지는 패키지를 함께 설치했더라도 삭제시에는 지정한 패키지만 삭제됨
yum remove [패키지이름]
-y : 질의없이 바로 삭제
패키지 업데이트
yum update : 모든 패키지에 대하여 업데이트 수행
yum update kernel : 시스템 커널 업데이트
일반 패키지 업데이트시 이전 패키지 파일 삭제 후 다시 설치
커널 업데이트시 이전 커널 정보 유지 후 새로운 커널 추가
패키지 그룹
용도가 비슷한 패키지들을 묶어놓은 단위
기존 yum 명령어에 groups 서브커맨드 추가
yum groups list
yum groups info [그룹이름]
yum groups install [그룹이름]

YUM Repository 관리

/etc/yum.repos.d : 레포지토리 설정정보 저장 디렉토리
설치시 기본적으로 레포지토리 미러 정보가 설정으로 저장되어 있음
외부 네트워크 차단 등의 이유로 레포지토리를 사용할 수 없을 경우, 접근 가능한 레포지토리에 대한 설정을 직접 추가하여 사용
/etc/yum.repos.d/[파일이름].repo
네트워크 위치의 레포지토리 사용
테스트 레포지토리 주소 : http://ftp.daumkakao.com/centos/$releasever/os/$basearch/
repo 파일 작성 예
[test]
name='test repo'
baseurl=http://ftp.daumkakao.com/centos/$releasever/os/$basearch/
gpgcheck=0
enabled=1
Local Repository (DVD Media 등)
마운트한 DVD 미디어 경로: file:///run/media/user/CentOS\ 7\ x86_64/
repo 파일 작성 예
[DVD]
name='DVD repo'
baseurl=file:///run/media/user/CentOS\ 7\ x86_64/
gpgcheck=0
enabled=1
yum-config-manager
--add-repo
yum-config-manager --add-repo="http://mirror.kakao.com/centos/7.9.2009/os/x86_64/"
yum-utils 패키지가 설치되어 있어야 사용가능

EPEL(Extra Package for Enterprise Linux)

epel-release 패키지 설치
yum install epel-release
/etc/yum.repos.d/epel* : EPEL 레포지토리 파일

==========================================================

작업 스케줄러

일회성 작업 : at
주기적 작업 : cron

일회성 작업 : at

atd 데몬에 의하여 동작
일반 사용자 / 관리자 모두 사용 가능
/etc/at.allow : at을 사용할 수 있는 사용자
/etc/at.deny : at을 사용할 수 없는 사용자
/etc/at.allow 파일이 있을 경우: 이 파일 내에 기록된 사용자만 at 사용 가능
/etc/at.allow 가 없고 /etc/at.deny 파일이 있을 경우: at.deny에 명시된 사용자만 at 사용 불가
/etc/at.allow, /etc/at.deny 모두 없는 경우 : root만 사용가능
작업을 예약한 사용자의 권한으로 예약작업 실행
일반사용자는 자신의 작업만 조회 가능
root는 모든 사용자의 작업 조회 가능
예약된 작업은 별도의 Shell을 생성하여 수행됨 : echo와 같이 화면으로 출력하는 예약작업은 현재 터미널에 출력되지 않음
명령어 : at

at

timespec : /usr/share/doc/at-*/timespec 문서 참고
hh:mm - 24시간제로 표기하는 시간
hh:mm am/pm - 12시간제로 표기하는 시간
hh:mm yy-mm-dd : 년월일시분 지
now +5min
teatime : 오후 4시 (16:00)
noon : 정오
tomorrow : 내일
-l : 예약된 작업의 목록 확인 (= atq)
3 Fri Mar 12 00:00:00 2021 a root
3 : 예약된 작업의 번호
Fri Mar 12 00:00:00 2021 : 예약일자
a : queue 번호 (a~z)
root : 작업을 예약한 사용자
at 작업 삭제 : atrm <작업번호>

주기성 작업 : cron

crond 데몬에 의하여 관리됨
일반사용자/관리자 모두 사용가능 : /etc/cron.allow, /etc/cron.deny
명령어 : crontab
작업 생성 및 수정 : crontab -e
작업 조회 : crontab -l
예약작업 전체 삭제 : crontab -r
주기 예약 방식

          • [예약작업내용]
            분 : 작업을 수행할 분 지정. ( : 매분 = 0~59)
            시 : 작업을 수행할 시 지정. (
            : 매시 = 0~23)
            일 : 작업을 수행할 일 지정. ( : 매일 = 1~28 or 29 or 30 or 31)
            월 : 작업을 수행할 월 지정. (
            : 매월 = 1~12)
            요일 : 작업을 수행할 요일 지정 ( : 매일 = 0~7)
            0:일요일 1:월요일 2:화요일 …. 6:토요일 7:일요일
            각 항목에 여러 값 입력 가능: , 로 나열
            0 9,10,11,12,13,14,15
            * : 매일 9시부터 15시까지
            범위 지정 가능: - 기호로 범위 표시 가능
            0 9-18
            * : 매일 9시부터 18시까지
            간격 지정 가능 : / 기호로 간격 지정
            /2 9 * * : 매일 9시 00분부터 2분 간격
            예약 주기 예시
            매일 아침 8시 : 0 8
            *
            매주 월요일 아침 7시 : 0 7
            1
            6월부터 8월까지 오후 14 30분 : 30 14
            6-8
            오후 2시 00분부터 3시 전까지 2분 간격으로 반복 :
            /2 14 * * *

시스템 cron
/etc/crontab 파일 : 일반적으로 이 파일을 직접 수정하지 않음
/etc/cron.d 디렉토리 : 이 디렉토리 내에 파일을 추가하여 수정

          • [사용자][작업] : 특정 사용자를 지정하여 작업 수행

anacron
/etc/anacrontab
실행여부를 확인하고 누락되었을 경우 실행가능할 때 다시 작업 수행

profile
WAS Engineer, Cloud Engineer(지망)

0개의 댓글