At & Cron - 작업 예약 관리 프로그램
- 주기적으로 반복해야하는 작업에 사용
ex) 로그 백업, 시스템 현황을 파일 저장하여 메일로 전송 등..
#rpm -qa | grep at // at 패키지 설치 유무
#rpm -qa | grep mail // mail 패키지 설치 유무
#yum -y install at // at 패키지 설치
#yum -y install mail // mail 패키지 설치
#yum -y install cronie // cron 패키지 설치
at - 정해진 시간 한번 작업을 수행하는 프로그램
형식
#at [옵션] [시간]
옵션
-l 현재 실행 대기 중인 목록을 출력 (#atq)
-d 현재 실행 대기 중인 명령에서 해당 작업 삭제 (#atrm)
시간
yyyy-mm-dd, HH:MM, today, tomorrow, hours
wekks, now ...
자세한 정보는 man을 통해
ex) at 6pm + 4days //4일뒤 오후 6시에 작업 수행
at 10am jul 18 //7월18일 오전 10시 작업 수행
at 3am tomorrow // 내일 오전 3시에 작업을 수행
at 10:00am today // 오늘 오전 10시에 작업 수행
#service atd start // at 데몬 실행
#at today + 1min // at 실행
at> [명령어]
at> [명령어]
at> // Ctrl + D 저장
at> <EOT> // End Of Transmission
- at 예약 작업은 /var/spool/at 디렉토리에 임시 큐파일이
저장이된다.
- 작업이 완료되면 자동으로 삭제가되며, /var/spool/mail
디렉토리에 사용자 명으로 결과가 저장된다.
Cron
기능 - crontab 파일을 관리
형식
(1) crontab -u [계정명] [옵션] // 다른 사용자 crontab 수정
(2) crontab [옵션] // 자신 crontab 수정
옵션
-l crontab 파일의 목록을 출력
-r crontab 파일 삭제
-e crontab 파일 수정
crontab 파일 형식
- 각 사용자별 하나의 crontab 파일이 있다.
- 여러개의 작업을 저장할 수 있으며, 한 행 하나의 작업을 설정한다.
- 예시 파일 (#cat /etc/crontab)
분 시 일 월 요일 반복할 내용
0~59 0~23 1~31 1~12 0~6 (스크립트 파일)
- 일요일 (0), 월요일 (1), 토요일 (6)이며, 각 항목은 공백문자로 구분
- 각항목의 값이 * (asterisk) 이면 해당 항목의 몯느 값을 의미힌다.
- '-' 두 숫자 사이에 포함된 범위 (ex 1-5 --> 1,2,3,4,5)
- ',' 로 구분하여 나열된 숫자 중 일치하는 경우를 지정
(ex 1,3,5)
- '/' 시간 간격을 지정할 수 있다. (ex) 10/2 --> 2, 4, 6 ,8 ,10)
ex)30 23 1 * * [작업 내용]
-> 매요일 매월 1일 23시 30분 [작업내용]
ex)*/2 10 * * * [작업 내용]
-> 매요일 매월 매일 10시 2분마다 [작업 내용]
ex) 1-10 12 * * * [작업 내용]
-> 매요일 매월 매일 12시 1분부터~10분까지 [작업 내용]
crontab -e 수정
- /var/spool/cron 디렉토리에 사용자 이름으로 임시 파일 생성
매요일 매월 매일 매시 1~3분 마다 /practice/ 디렉토리에
cron_test 파일 생성
1-3 * * * * touch /practice/cron_test
#date -s "2017-04-21"
crontab 명령 사용 제한 하기
- /etc/cron.allow, /etc/cron.deny 파일로 사용자의 접근을 허용/차단 할 수 있다.
- 해당 파일에는 사용자의 이름을 한줄에 하나씩만 기록하며, /etc/cron.deny 파일은
기본으로 생성되어 있지만, /etc/cron.allow 파일은 관리자가 직접 만들어야 한다.
- /etc/cron.allow 파일이 있을 경우
-> 해당 파일에 명시된 사용자만 사용 가능
- /etc/cron.allow 파일은 없고, cron.deny 파일이 있을 경우
-> cron.deny 파일에 명시되지 않은 사용자 사용이 가능
#useradd cron_user1 // 테스트용 추가
#su - cron_user1 // 스위칭
$crontab -e // 명령 사용 여부 확인
$exit // root 전환
#vi /etc/cron.deny // 거부 목록 파일 수정
cron_user1 // 계정명 입력 후 저장 후 종료
#su - cron_user1 // 스위칭
$crontab -e // 명령 사용 여부 확인
- cron.allow, cron.deny 파일 둘다 없을 경우
-> root 만 사용이 가능
#mv /etc/cron.deny /etc/cron.deny_backup
// 파일의 이름을 변경하여 파일을 인식하지 못하도록 설정
#su - [일반사용자계정]
$crontab -e // 명령어 사용여부 테스트
간단한 스크립트 작성법
#vi [파일명].sh
#!/bin/bash
[명령어] // 작성한 명령어가 순서대로 실행
매일 오전 1시에 /var/log/secure 파일의 마지막 10줄을 저장하여
/secure_log 디렉토리에 secure 파일로 저장이 되도록 설정
스크립트는 /practice/test.sh 로지정
#chmod +x /practice/test.sh // 실행권한 추가....
#service crond restart // cron 데몬 재시작
#mkdir /secure_log
#crontab -e
0 1 * * * /practice/test.sh
#vi /practice/test.sh
#!/bin/bash
tail -10 /var/log/secure > /secure_log/secure
#date -s "2017-04-21 00:59:55"
크론탭 삭제
#crontab -r
#crontab -l
no crontab for root
#crontab -e
1,2,3 * * * * /practice/test.sh
1-3 * * * * /practice/test1.sh
:wq // 저장
#mkdir /secure_log
#vi /practice/test.sh
#!/bin/bash
touch /secure_log/test
:wq
#vi /practice/test1.sh
#!/bin/bash
touch /secure_log/test1
:wq
#date -s "2017-04-21" // 매 1,2,3분 마다 파일 생성
'Foundation > - Linux' 카테고리의 다른 글
파이프&필터(grep)&cut&리다이렉션 (0) | 2017.05.10 |
---|---|
Bonding?? (0) | 2017.05.10 |
RPM & YUM (0) | 2017.05.03 |
LVM (0) | 2017.05.02 |
쿼터란? (0) | 2017.05.02 |