● 데몬 관리
- 데몬(Daemon) : backgroung 실행으로 동작되는 서비스 프로그램
=> 요청이 발생하면 요청에 대한 처리를 하기 위한 프로그램
ex) httpd : 아파치 웹서버 데몬
- 홈페이지파일(HTML, CSS, JavaScript)등을 요청하면 파일을 검색하여 전송하는 역활
- 데몬은 요청에 의한 실행방법에 standalone 방식과 xinetd 방식으로 구분한다.
1. standalone 방식의 데몬
=> 요청에 의해 실행되기 위해 항상 메모리에 상주(실행)되어 있는 데몬
=> 요청에 대한 응답속도가 빠르다.
=> 메모리 효율이 좋지 않다.
=> standalone 방식의 데몬 제어 : 메모리 항상 상주되도록 background 실행 하거나 상주된 프로그램 삭제
]# /etc/rc.d/init.d/데몬제어파일 [start|stop|restart]
또는 ]# service 데몬제어파일 [start|stop|restart]
=> 부팅시 데몬을 자동 실행 유무 제어
]# chkconfig --list => 데몬의 종류 및 런레벨에 따른 자동 실행 유무 확인
]# chkconfig --list | grep sshd
sshd 0:해제 1:해제 2:활성 3:활성 4:활성 5:활성 6:해제
]# chkconfig --level 24 sshd off => sshd에 대해 2번,4번 런레벨일 경우 자동 실행되지 않도록 제어
※ on : 활성 off : 해제 reset : 초기화
]# chkconfig --list | grep sshd
sshd 0:해제 1:해제 2:해제 3:활성 4:해제 5:활성 6:해제
※ 새로 설치된 데몬은 service 및 chkconfig 명령에 의해 제어되도록 만들어 주는 것이 좋다.
]# cp 데몬제어파일 /etc/rc.d/init.d/데몬제어파일 => service 명령을 이용해 제어
]# chkconfig --add 데몬제어파일 => chkconfig 명령에 의해 부팅시 데몬 제어
※ chkconfig 명령에 의해 부팅시 제어 불가능 데몬이 존재하는 경우
]# vi /etc/rc.d/rc.local => 모든 데몬을 실행후 마지막 실행되는 파일
데몬실행명령 => 추가
2. xinetd(슈퍼데몬) 방식의 데몬
=> 사용자 의한 요청에 발생할 경우 xinted 프로그램이 해당 서비스을
분석하여 필요한 데몬을 메모리에 로드(실행)하여 응답하는 방식
=> 요청이 발생할 경우에만 실행되는 데몬
=> standalone 방식보다는 응답속도가 느리다.
=> 메모리 효율이 좋다.
=> xinted 방식의 데몬 제어 : 슈퍼데몬에게 데몬 실행 권한을 부여하거나 삭제
]# chkconfig --list => xinetd 기반의 데몬 확인 및 제어권한 유무 확인
...
xinetd 기반의 서비스:
chargen-dgram: 해제 => 활성 : 데몬실행 권한 O 해제 : 데몬실행 권한 X
....
]# vi /etc/xinetd.d/rsync => 데몬파일 : 제어권한 및 환경설정 관련 내용이 존재하는 파일
service rsync
{
disable = no => 제어권한 부여 유무 : yes - 해제 no - 활성
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
]# service xinetd restart => 슈퍼데몬 재실행(환경설정 변경되었기 때문)
]# chkconfig --list | grep rsync
rsync: 활성
● 예약 데몬
- 원하는 날짜 또는 시간에 원하는 명령이 실행되도록 기능을 제공하는 데몬
- 원하는 명령이 읽기 관련 명령이거나 에러인 경우 결과를 메일로 전송
1. atd
=> 원하는 날짜 또는 시간에 명령들을 한번만 실행해 주는 데몬
=> atd 실행 : standalone 방식
]# ps -xa | grep atd => 실행 유무 확인
3241 ? Ss 0:00
※ 만약 atd이 실행되어 있지 않은 경우
]# service atd start
]# chkconifg --level 2345 atd on
=> 예약 작업
]# at 시간 => 예약 시간 설정
at> 명령 => 예약 시간에 실행될 명령
at> ...
at> ^d => 예약 완료
]# atq => 예약 확인
번호 시간
]# atrm 번호 => 예약 취소
ex) ]# date => 현재 날짜 및 시간 확인
]# rdate -s time.bora.net => 날짜 및 시간을 타임서버를 이용해 동기화
]# at 11:14 => 예약
at> mkdir /root/atTest
at> rm -rf *txt
at> <EOT> => ^d
]# atq
1 2013-09-11 11:14 a root
예약시간 되면 예약된 명령이 실행 된다.
]# ls -l => atTest 디렉토리 생성 확인 및 *txt 삭제 확인
]# atq => 예약정보가 없다.(한번만 실행)
]# date
2013. 09. 11. (수) 11:17:17 KST
]# at 11:17
at> ls
at> <EOT>
job 2 at 2013-09-12 11:17
]# atq
2 2013-09-12 11:17 a root => 내일 실행
]# atrm 2 => 예약 취소
]# atq
2. crond
=> 원하는 시간 및 날짜마다 원하는 명령을 실행(명령을 반복 실행)
=> 데이타 백업을 하기 위해 사용
=> crond 실행 : standalone 방식
]# ps -xa | grep crond
3187 ? Ss 0:00 crond
※crond이 실행되어 있지 않은 경우
]# service crond start
]# chkconfig --level 2345 crond on
※ crond는 대부분 실행되어 있다. => 시스템에서 crond을 이용하여 예약 작업을 실행하기 때문
]# vi /etc/crontab => 시스템이 사용하는 예약정보를 저장한 파일
=> crond를 활용한 예약 관리
]# crontab -e => 예약 생성, 변경, 삭제, 확인 : vi 편집기 이용
분 시 일 월 요일 명령 => 반복적인 명령을 실행하도록 설정
.....
※ ]# crontab -l => 예약 확인
]# crontab -r => 모든 예약 삭제
예시) ]# crontab -e
30 * * * * /root/backup.sh => 매월 매일 매시 30분에 명령 실행
30 04 * * * /root/backup.sh => 매월 매일 04시 30분에 명령 실행
30 04 * * 5 /root/backup.sh => 매월 매주 금요일 04시 30분에 명령 실행
30 04 1 * * /root/backup.sh => 매월 1일 04시 30분에 명령 실행
30 04 1 1 * /root/backup.sh => 1월 1일 04시 30분에 명령 실행
30 04 * * 1-5 /root/backup.sh => 매월 매주 월요일부터 금요일까지 04시 30분에 명령 실행
30 04 1 1-12/3 * /root/backup.sh => 1월부터 12월까지 3개월마다 1일 04시 30분에 명령 실행
※ 요일 : 0 또는 7 - 일요일 1~6 - 월요일~토요일
'Dev > Dev:: Linux' 카테고리의 다른 글
[Day007] Linux 7일차 - Shell 관리 (0) | 2013.09.11 |
---|---|
[Day007] Linux 7일차 - Quiz 및 데이터 백업 (0) | 2013.09.11 |
[Day006] Linux 과제 (0) | 2013.09.10 |
[Day006] Linux 6일차 - 프로그램 실행 및 프로세스 관리 (0) | 2013.09.10 |
[Day006] Linux 6일차 - yum(Yellowdog Updater Modifited) (0) | 2013.09.10 |