정보보안 - 유닉스 프로세스 스케쥴 관리
프로세스 스케쥴 관리
- 데몬 프로세스
- UNIX 시스템 (서버용) 프로세스 특징 : 데몬 프로세스
- 백그라운드 모드로 실행
- 제어 터미널(포그라운드 모드)을 갖지 않는다.
- 클라이언트 요구가 있을 때까지 CPU 사용권 반납, 블록
- 클라이언트 요구가 있을 때 깨어나 해당 작업을 처리 후 블록
- 시스템 셧다운 전까지 종료되지 않는다.
- UNIX 시스템 (서버용) 프로세스 특징 : 데몬 프로세스
- 정기적 스케쥴 관리 : cron
- cron 데몬 프로세스는 UNIX 시스템에서 정기적인 작업을 지정한 시간에 처리하기 위해 사용
- 세 가지 구성 요소가 필요
- 정기적으로 처리할 작업 목록을 정의한 crontab 파일
- crontab 파일을 제어하는 crontab 명령
- crontab 파일을 읽어서 내용에 정의된 대로 작업을 처리하는 cron 데몬 프로세스
- 사용자가 crontab 명령어로 crontab 파일을 제어 -> cron 데몬 프로세스가 작업을 실행
- crontab 파일 : 정기적으로 처리해야 하는 작업 목록을 정의한 파일
- 분 시 일 월 요일(0~6/일~토) 사용자 실행명령
30 3 * * 2 root /home/clean.sh
: 매주 화요일 3시 30분에 /home/clean/sh 명령을 실행*/10 2-5 * * * root /home/user/abc
: 매일 2-5시 까지 10분마다 실행0 7 1 1-10/2 * /bin/vipcheck.sh
: 1-10월 두 달 주기로 1일 7시에 실행0 3,5,7 * * * batch.sh
: 매일 3,5,7 시0 8-10 * * * batch.sh
: 매일 8,9,10 시
- 분 시 일 월 요일(0~6/일~토) 사용자 실행명령
- crontab 옵션
-l
: 현재 로그인 된 계정에 잡혀있는 작업 스케줄 확인-e
: 현재 로그인 중인 계정에 작업을 등록-r
: 현재 crontab에 등록된 작업을 삭제-u <USER명>
: 작업을 실행시킬 유저명 설정- 유닉스의 경우
crontab [-option] [user]
;
- 유닉스의 경우
- 주의사항 :
crontab
명령 실행 시 현재 입력되는 내용으로 덮어씀.
- 사용자 별 crontab 파일이 존재
- root는 계정별 crontab 파일 편집이 가능
crontab [-u user] [-e]
: 계정에 해당되는 crontab 파일 편집/생성crontab -u kim -l
: kim 계정의 crontab 파일 출력
- crontab 접근통제를 위한 파일
/etc/cron.allow
: cron 명령어 사용 가능 사용자/etc/cron.deny
: cron 명령어 사용 불가 사용자- 파일이 둘 다 있는 경우 cron.allow 로 적용
- 파일이 둘 다 없는 경우 root 만 crontab 명령 실행
- 일시적 스케줄 관리 :
at
- 작업을 정해진 시간에 한 번만 실행
- 명령 형식 :
at [-option] [time_date]
; - 옵션
-t time_date
: 작업 시간을 지정-l
: 현재 대기중인 작업 목록 출력-r job_id
: job_id 에 해당하는 작업을 목록에서 삭제 (UNIX)-d job_id
; job_id 에 해당하는 작업을 목록에서 삭제 (LINUX)
- at 사용법
- at 데몬 시작 :
/etc/init.d/atd start
- 작업 시간 및 작업 내용을 지정
at 6:00 pm
at) /usr/local/apache/bin/apachectl restart
at)
: Ctrl + D 저장at 6pm +2days
: 이틀 후 오후 6시at 2pm tomorrow
: 내일 오후 2시at 11am jul 20
: 6월 20일 오전 11시
- 예약 작업 확인
at -l
또는atq
- 예약 작업 삭제
atrm <job_id>
at -r <job_id>
- at 데몬 시작 :
- 접근통제
/etc/at.allow
: 화이트리스트/etc/at.deny
: 블랙리스트
- 파일 시스템 연결
- 장치들은 UNIX 시스템이 의해 인식되어야 사용할 수 있음
- mount 명령은 보조기억장치에 설치된 파일 시스템을 UNIX 시스템이 인식하도록 특정 디렉토리에 논리적으로 연결시켜 줌
- 명령 형식 :
mount [-option] [device] [mount_point]
; - 옵션
-a
:/etc/fstab
파일에 정의된 모든 파일 시스템을 마운트-t
: 파일 시스템의 형식을 지정- 윈도우 계열
- vfat : fat, fat32, fat16
- ntfs
- 윈도우 계열
-n
:/etc/mtab
파일에 정보를 남기지 않고 마운트
- 디바이스
/dev/hda1
,/dev/hda2
, …
mount -t vfat /dev/hda1 /mnt/win98
;
- 자동 마운트 설정 :
fstab
- 파일 경로 :
/etc/fstab
- UNIX 시스템이 부팅시 이 파일을 참조하여 마운트 작업을 자동으로 수행
mount -a
:/etc/fstab
에 저장된 정보를 기반으로 명시적 실행/etc/mtab
: 파일 시스템이 mount 되거나 해제 될 때마다 mount 프로그램에 의해 업데이트 되는 일반 파일
- 파일 경로 :
- 파일 시스템 연결 해제 :
umount
- 명령 형식 :
umount [-option] [device| mount_point]
; - 사용중이거나 사용자가 해당 디렉터리에 있다면 unmount 명령은 “device is busy” 메시지와 함께 실패한다.
- 옵션
-a
: 마운트된 모든 파일 시스템을 언마운트-f
: 해당 파일 시스템을 사용하는 프로세스를 강제로 종료하고 파일 시스템을 언마운트
- 명령 형식 :
- 파일 시스템 관리 :
du
,df
du
: 디렉터리의 하드디스크 사용량을 확인- 명령 형식 :
du [-option] [directory_name]
; - 옵션
-a
: 디렉터리 및 하위 파일정보까지 출력 (All)-s
: 현재 디렉터리가 사용중인 용량만 출력 (Summary)-k
: 사용량을 KB 단위로 출력
- 디렉터리를 명시하지 않을 경우 현재 디렉터리를 기준으로 한다.
df
: 파일 시스템의 전체 공간 및ㅊ 사용 가능 공간에 대한 정보- 명령 형식 :
df [-option] [file_system | file]
; - 옵션
-k
: 통계 데이터를 KB 단위로 출력-i
: 파일 시스템의 사용가능 또는 사용중인 i-node 정보를 출력
- file_system 인수는 파일 시스템 장치명 또는 마운트 디렉터리를 의미
댓글남기기