/proc 디렉터리
- 시스템에 실행되고 있는 프로세스는 /proc 디렉터리 아래서 확인이 가능합니다.
- /proc 디렉터리는 실제 하드 디스크에 존재하는 파일이 아니라, 메모리(RAM)에 저장되어 있는 내용을 확인할 수 있는 가상의 디렉터리이다.
- 커널이 메모리에 저장된 데이터를 파일로 추상화하여 마운트시킨 디렉터리입니다.
* 마운트 : 물리적인 장치를 특정한 위치(디렉터리)에 연결해주는 과정입니다.
/proc/[PID]
해당 PID를 가진 프로세스의 정보를 확인할 수 있는 디렉터리입니다.
fd (File Discripter)
- file discripter 를 확인 할 수 있는 디렉토리입니다.
- 프로세스가 생성이되면 커널은 파일 디스크립터를 생성하여 해당 프로세스가 사용하는 파일(장치)과 파일 디스크립터와 연결합니다.
- 기본적으로 사용되는 장치는 미리 예약되어 지정됩니다. (0,1,2)
◈◈◈
서버의 H/W SPEC 조사할 때 자주 사용되는 파일
/proc/version - 시스템이 인식하고 있는 커널 버전 정보
/proc/cpuinfo - 시스템이 인식한 CPU와 관련된 상세한 정보
/proc/cpuinfo 일부
/proc/meminfo - 시스템이 인식한 Memory와 관련된 상세한 정보
/proc/meminfo 일부
◈◈◈
# uptime
[현재 시간] [부팅 시간] [접속자수] [평균 부하 - 최근 5분 10분 15분]
※ 부하 해석
CPU코어 개수 1개 → 부하 1.00 → CPU100% 사용 중
CPU코어 개수 1개 → 부하 2.00 → CPU100% 사용 중
프로세스1이 CPU를 모두 사용 중
프로세스2가 CPU자원을 할당 받기 위해 대기 중
CPU코어 개수 4개 → 부하 4.00 → CPU 100% 사용 중
※ 평균 부하 해석
CPU코어 1개 → load average : 2.00, 15.00, 20.00
→ 최소 15분전에 시스템이 과부하 상태 였다.
→ 현재 부하가 줄어들고 있다.
→ 현재 CPU100% 사용 중이고, 하나의 프로세스가 대기하고 있다.
※ 반대로 20.00, 15.00, 2.00이면 과부하 상태가 되고 있다는 뜻입니다.
# top ★★
현재 시스템의 CPU와 RAM 사용율을 모니터링 할 수 있는 툴입니다.
# top 명령어 일부
# dmidecode
- 시스템의 하드웨어 정보를 종합적으로 확인할 수 있는 툴입니다.
- DMI table을 decoding 해주는 명령어입니다.
- dmidecode는 DMI 테이블 내용을 읽어와서 사람이 확인할 수 있는 형태로 보여줍니다.
- 실제 서버 컴퓨터에서 사용할 수 있습니다.
- yum -y install dmidecode로 설치하여 사용해야 합니다.
SWAP 메모리
메모리 사용율이 100%가 되면 더 이상 프로세스를 생성할 수 없습니다.
이런경우 시스템에 큰 문제가 될 수 있기 때문에 하드 디스크의 저장공간 일부를 메모리 처럼 사용 할 수 있습니다.
ex) 가상 머신 생성할 때 설정
→ HDD 20GB중에서 512MB만큼은 SWAP 메모리를 사용하겠다
# free [옵션]
시스템에 설치된 Memory(RAM), SWAP의 정보를 출력합니다.
→ 옵션
-m Megabyte
-g Gigabyte
※ 데몬 : 사용자가 직접적으로 제어하지 않고, 백그라운드에서 돌면서 여러 작업을 하는 프로그램
※ 뒤에 d는 데몬을 의미합니다.
데몬 동작 유형
(1) xinetd 데몬 기반
- 다른 데몬을 관리하는 데몬이라하며, 슈퍼 데몬이라고도 불리웁니다.
- 사용자의 요청이 있을 때만 실행되는 형태로 응답속도는 느리지만, 리소스 소모는 적은 형태입니다.
ex) telnet 서비스를 사용하고 싶다. → xinetd 데몬을 실행해야한다.
(2) standalone
항상 백그라운드 상태로 메모리에 상주하고 있는 형태로 동작하며 사용자의 요청이 있을 때 빠르게 응답할 수 있지만, 리소스 소모가 많습니다.
ex) httpd, dns(bind), samba, nfs, ftp 등
(3) network - 네트워크 관련된 각종 정보를 설정하고 실행, 활성화 시켜주는 데몬
(4) iptables - 패킷 필터링 방화벽 기능을 제공하고 관리하는 데몬
※ 참고 리눅스 마스터 1,2급 시험에 출제되는 데몬 ※
ALSA - 사운드 카드 관련 데몬
CUPS - 프린터 설정 관련 데몬
SANE - 스캐너, 비디오 캠 관련 데몬
예약 작업
at - 정해진 시간에 설정한 명령어를 한 번 실행
cron - 정해진 시간에 설정한 명령어를 반복 실행
at 사용 전 프로그램 설치 확인
# rpm -qa | grep "^at" → at 프로그램 설치 유무 확인
# rpm -qa | grep "mail" → mail프로그램 설치 유무 확인
at 설치
# yum -y install at
# yum -y install mail
at 실행
# service atd start → at 데몬 실행
atd (을)를 시작 중: [ ok ]
#at [옵션] [시간]
→ 옵션
-l 현재 실행 대기중인 작업 목록을 출력 (# atq)
-d 현재 실행 대기중인 작업 목록을 삭제 (# atrm)
→ 시간
yyyy-mm-dd, HH:MM, today, tomorrow, days, now, am, pm 등
자세한 시간 형식정보는 man 명령어를 이용하여 확인
<예제 1>
오늘 1분 뒤에 Hello world 출력
at> <EOT> <ctrl + d>저장 *EOT End Of Transmisson 전송완료
→ 해당 프롬프트에 입력한 명령어가 실행된다.
1분이 지나고 엔터를 눌러보면 메일이 왔다고 알려줍니다.
cat을 이용하여 메일 내용을 확인하면 예약한 명령어의 결과를 볼 수 있습니다.
※
- at 예약 작업은 /var/spool/at 디렉토리에 임시 작업 파일(큐 파일)이 저장이 되며, 작업이 완료되면 자동으로 삭제가 된다.
- at 작업의 결과가 화면에 출력되는 작업일 경우 /var/spool/mail 디렉토리에 사용자 이름으로된 메세지 파일에 결과가 저장된다.
cron
# service crond status → 현재 crond데몬의 상태 확인
# ps -ef | grep "1237"
# crontab [옵션]
cron을 관리하고, 특정 작업을 주기적으로 반복할 때 사용합니다.
→ 옵션-l 설정된 crontab 작업을 확인
-r crontab 작업 삭제
-e [계정명] 해당 계정의 crontab 수정
→ 계정명을 사용하지 않으면 현재 로그인 한 계정
-u [계정명] 해당 계정의 crontab 확인
- crontab 파일은 사용자 별로 생성되며, 해당 파일에 주기적으로 반복해야하는 작업의 내용을 작성 할 수 있고, 한 라인에 하나의 작업을 설정합니다.
crontab 형식
6개의 필드로 구성되어 있으며, 각 필드는 공백 문자로 구별합니다.
분 시 일 월 요일 작업내용
[0~59] [0~23] [1~31] [1~12] [0~6] [명령어/스크립트 경로]
- 일요일 (0,7), sun, 토요일(6) sat
- " * " 해당 항목의 모든 값을 의미
ex) ***** 작업 내용
→ 매 요일, 매월, 매일, 매시, 매분마다 작업 내용 수행
-" - " 두 숫자 사이의 포함된 범위
ex) 분 필드 → 1-5 → 1분, 2분, 3분, 4분, 5분
- " , " 로 구분하여 나열된 숫자중 일치하는 경우
ex) 분 필드 → 1, 5 → 1분, 5분
- " / " 시간 간격을 지정
ex) 분 필드 → 10/2 → 2, 4, 6, 8, 10 10분까지 2분마다
※ cat /etc/crontab을 이용하여 형식을 볼 수 있습니다.
ex) 일주일 내내 매월 매일 23시 53분마다 /practice 디렉터리에 cron_file을 생성해라 ( 스크립트 이용)
cron_file을 만들라는 내용을 담은 스크립트 생성 ( 스크립트 파일은 뒤에 .sh를 붙이는 게 관례이다.)
test.sh 스크립트 파일에 실행 권한을 설정합니다.
다른 프로그램이 해당 스크립트 파일을 실행시키려면 해당 파일의 실행 권한이 필요합니다.
crontab 예약 설정하기
crontab 예약 정보 확인하기
23시 53분에 결과 확인
crontab 사용 제한
- /etc/cron.allow, /etc/cron.deny 파일로 사용자가 crontab 명령어 사용하는 것을 허용(allow)/거부(deny)할 수 있습니다.
- vi 편집기를 이용하여 해당 파일을 편집할 수 있으며 각 라인에 하나의 계정명만 입력할 수 있습니다.
- /etc/cron.allow 파일은 관리자가 직접 생성해야 하는 파일입니다.
- /etc/cron.deny 파일은 기본적으로 생성되어 있습니다.
'서버 > Linux' 카테고리의 다른 글
[Linux] rpm & yum (0) | 2017.10.16 |
---|---|
[Linux] 파일 시스템 (8) | 2017.10.16 |
[Linux] 아카이브 (Archive) (0) | 2017.10.16 |
[Linux] 압축 ( gzip, bzip2, xz ) (0) | 2017.10.11 |
[Linux] 프로세스 (1) (0) | 2017.10.11 |