05 Manual-packages-Logs

Sisyphus·2022년 7월 16일

Ubuntu

목록 보기
6/9

메뉴얼 페이지

command 사용법을 모를 때 사용

사용법 : man command Ex) man ls, man passwd  

man -t passwd > passwd\_manual.ps ⇾ passwd command의 메뉴얼을 passwd\_manual.ps 파일에 저장하여 출력  

관련된 명령어들이 함께 나타남 ⇾ Ex) man gzip ⇾ gzip, gunzip, zcat이 나옴 (압축과 관련됨) 


메뉴얼 페이지 내에서 탐색

Space : 한 페이지 아래로 점프  
b : 한 페이지 위로 점프  
/word : 해당 단어 찾기 Ex) /serach root  
n : 이전 검색 반복하기  
g : 맨 위로 가기  
q : 종료  
h : help


메뉴얼 페이지 형식

NAME : 이름과 명령어에 대한 한줄의 이유  
SYNOPSIS : 가능한 인자  
OPTIONS  
FILES  
ENVIRONMENT : 적절한 환경 변수 EX) shell  


메뉴얼 색션 번호

1 ⇾ 사용자 명령어 man 1 passwdpasswd command의 메뉴얼 1 페이지 출력  
2 ⇾ 시스템 콜 man 2 passwdpasswd command의 메뉴얼 2 페이지 출력  
3 ⇾ C 표준 라이브러리  
4 ⇾ 특별한 파일 (장치 드라이버 파일 같은)  
5 ⇾ 파일 형식과 규칙  
8 ⇾ 시스템 관리자 명령어와 데몬  


whatis command

특정 명령어나 파일에 대한 한줄의 간략한 설명을 보여줌, man -f 와 동일한 기능 (명령어를 검색할 때 사용)

사용법 : whatis ls, what is passwd, man -f passwd  


메뉴얼 페이지에서 검색

모든 페이지에서 특정 키워드에 매칭 되는 세션을 검색(파일, 명령어, 아카이브 등등 특정 키워드와 매칭 되는 모든게 출력 됨)
man -k와 동일 (각 세션들의 짧은 설명이 출력 됨)

사용법 : apropos "keyword", apropos open  


wc command

라인수, 단어수, 바이트수를 출력

Ex) apropos open | wc  


man -a commannd

특정 명령어에 대한 모든 메뉴얼을 보여줌

사용법 : man -a name Ex) man -a ls  


man -K command

전체 메뉴얼에서 텍스트 내용을 통해 검색

사용법 : man -K Ex) man -k open  


help command

명령어에 대한 짧은 설명을 보여줌

사용법 : help cd, help ls  


man -aw command

메뉴얼 페이지가 저장된 위치 출력

사용법 : man -aw command Ex) man -aw passwd, man -aw gzip


info command

GNU의 문서 시스템

사용법 : info ls  


패키지 관리

패키지 : 소프트웨어와 메타데이터의 번들
➜ 소프트웨어 풀 네임
➜ 소프트웨어 설명
➜ 버젼 넘버
➜ 체크섬 (무결성 확인을 위한)
➜ 의존성



파일 아카이브

파일 아카이브 : 많은 파일들을 한개의 아카이브 파일로 바꾸는 것, 파일의 이동 저장을 더 쉽게 하기 위해 사용

Ex) tar



메타데이터

메타 데이터 : 데이터에 대한 데이터, 구조화된 정보를 분석, 분류하고 부가적인 정보를 추가하기 위해 그 데이터 뒤에 함께 따라가는 정보

Ex) 파일 생성 날짜, 시간, 파일 생성의 지리적 위치, 작성자, 파일 수정 일자, 파일 크기 등



의존성 문제

의존성 : 한 패키지가 정상적으로 작동하기 위해 다른 패키지나 라이브러리 패키지 등이 필요한 경우

원인

컴파일과 링킹 프로세스는 모든 의존성에 대한 설명을 필요로 함.
이때 망가진, 관계없는, 불완전한, 호환이 되지않는 의존성들은 프로그램 오류나 버그를 발생시킨다.

의존성 지옥

길게 여러개의 의존선이 연결된 체인 의존성
의존성 사이의 충돌
원형 의존성



패키지 관리 시스템

다음 과정의 자동화 도구 모음
➜ 패키지 설치
➜ 패키지 업그레이드
➜ 패키지 구성
➜ 패키지 제거



데비안 패키지 관리 시스템

Base : dpkg(package manager for Debian)
Package : .deb
Tool : apt



dpkg command

dpkg -l : 설치된 모든 패키지들을 나열해줌  
dpkg -L package\_name : 패키지에 의해 설치된 파일들을 나열해줌  
dpkg -S file\_path : 해당 경로내의 패키지를 검색해줌  
dpkg -r package\_name : 패키지를 제거해줌  


apt-get command

apt-get install package\_name : 패키지 설치  
apt-get remove package\_name : 패키지 제거, --purge option : 패키지 구성파일들도 함께 제거  
apt-get upgrade : 설치된 패키지를 업그레이드  
apt-get update : 설치 가능한 리스트(정보)를 업데이트, install시 특정 패키지를 설치할 수 없을 때, 최신 패키지 리스트를 업데이트 할 때 사용  
⇾ apt-get command log는 /var/log/dpkg.log 파일에 저장됨 

  
if) apt-get install이 lock이 걸려서 안될 때  
1) sudo kill all apt-get  
  
2)1번 방법으로 안될 때  
sudo rm /var/lib/apt/lists/lock  
sudo rm /var/cache/apt/archives/lock  
sudo rm /var/lib/dpkg/lock\*  
sudo dpkg --configure -a   
sudo apt update  


Repository(저장소)

repository : 패키지 저장소, 암호화된 GPG keys를 통해 신원을 인증한다.
우분트 ⇾ 패키지 저장소 사이트 중 허락된 사이트들을 특정 파일에 저장해 둠 ⇾ /etc/apt/sources.list

Types

Main : 표준 지원 무료 오픈 소스 소프트웨어  
Restricted : 장치들을 위한 독점 드라이버  
Universe : 커뮤니티에서 유지되어지는 무료 오픈 소스 프로그램 
Multiverse : 저작권 또는 법적으로 제한되어지는 소프트웨어  


Logging

관리목적으로 많은 이벤트들의 로그 기록을 남겨둠
이벤트 ⇾ 심각성과 서비스에 근거하여 선택 됨
메세지들은 시스템 콘솔의 파일로 갈수있고 중앙화된 시스템 로그 서버로 갈수도 있다.



rsyslog 구성

Form : facility.level destination  
facility : 메세지 창조자 (auth, authpriv, cron, daemon, kern, mail .......)  
level : 심각성에 따른 레벨 (가장 낮음 ⇾ 가장 높음)  
debug, info ,notice, warning, err, crit, alert, emerg  
destination : 메세지 받는 곳  


로그 조사

위치 : /var/log  
도구 : less, grep, tail, vi 등등  


rsyslog 재구성

rsyslog의 구성요소를 변경한다면, rsyslog를 다시 읽어오도록 해야함

command

# kill -HUP /usr/sbin/rsyslogd  
또는  
# service rsyslog start  
# ➜ root user  


로그 로테이션

문제 : 로그파일은 디스크 공간이 바닥날 때 까지 계속해서 저장되서 늘어나게 된다.
해결방법 : 로그 로테이션(로그 파일들은 주기적으로 이름이 변경되고 궁극적으로 삭제되어 진다.)

logrotate ⇾ 로테이션을 수행하는 명령어  
logrotate 구성 ⇾ /etc/logrotate.conf  


logrotate.conf

cd etc  
vi logrotate.conf 
로그 파일 로테이트 기간 ⇾ daily, weekly, monthly, yearly  
로그파일이 백로그로 유지되는 기간(주 단위) ⇾ rotate number Ex) rotate 77주 동안 유지 됨  
로그파일 보관 방법 ⇾ compress(default option), noncompress, delaycompress

0개의 댓글