cron
리눅스에서는 일반적으로 cron 데몬이 주기적인 작업 실행을 처리한다. cron이 시작될 때부터 끝날 때까지 계속 실행되며 실행되며 cron 설정 파일은 cron table을 줄여서 crontab이라 부른다.
cron이 참조하는 crontab 파일 위치
-
/var/spool/cron
-
/etc/cron.d
-
/etc/crontab
cron은 시작할 때 모든 곳에 저장된 설정파일들을 읽어 메모리에 저장해두고 휴지 상태에 들어간다. 그리고 매분마다 활성화돼 변경된 crontab 파일들이 있는지 확인하고, 변경된 경우 설정을 다시 읽어 저장하고, 그 시간에 실행해야 할 작업이 있는지 확인하고 실행시킨 후 다시 휴지 상태로 들어간다.
vi /etc/crontab
관리자가 직접 지정한 작업들을 설정하며, 임의의 사용자 권한으로 실행할 수 있다. 시스템 관련 작업들을 등록해 사용하는 곳이다.
*는 분/시/일/월/요일 이다. 여기서 주말 같은 경우는 0은 일요일 6은 토요일을 의미한다.
간단한 예제로 설정하겠다.
15,45 * * * * /root/every_30min.sh
매시 15,45분에 /root/every_30min.sh를 실행하라.
*/1 * * * * /root/test.sh
매 1분마다 /root/test.sh를 실행하라
0 2 * * * /root/test.sh
오전 2시에 /root/test.sh를 실행하라
30 1-23/6 * * * /root/es.sh
1시부터 매 6시간마다 수행(01시30분,07시30분,13시30분...)
0 8 * * 1-5 /root/test.sh
평일(월요일-금요일) 08:00에 실행해라
Crontab 명령어
-
crontab -l : 예약된 작업리스트
-
crontab -e : 예약된 작업 수정
-
crontab -r : 예약된 작업 삭제
-
crontab -u 사용자명 : 루트관리자는 해당 사용자의 crontab 파일을 보거나 삭제, 편집가능
자그럼 지금 부터 실습을 해보겠다 위 내용을 토대로 메일 한번 보내보자.
crontab을 이용하여 메일 보내기.
먼저 mailx 패키지를 설치하자.
설치가 정상적으로 완료가 되었으면 이제 메일을 한번 보내보자.
vi test.txt 파일을 생성 후 안에 내용을 작성한다.
mail -s는 메일 제목을 의미한다 "haha"라는 메일 제목을 설정하고 그 뒤에 보내는 이메일 주소를 입력한다
mail -s [메일주소] < test.txt
그 결과 네이버 메일을 확인해보니 메일이 온것을 확인 할 수 있었다.
이번에는 1분마다 메일을 보내보자.
crontab -e에 들어가 위 사진과 같이 작성해준다 모자이크 부분은 해당 보낼 메일주소이다.
그 다음 crontab -l을 이용해 정상적으로 등록이 되었는지 확인한다. 정상적으로 등록이 되어있으면 위 사진과 같이 나올거다.
그 결과 잠깐 담배피고 온 사이에 메일이 어마무시하게 온 것을 알 수 있다.
이번 crontab을 배우면서 문득 든 생각이 정상적인 메일이 아닌 악성코드가 담겨진 메일이거나 APT공격에도 이용이 될 것 같다는 생각이 들었다. 친구들에게 한번씩 장난삼아 해보아도 될 것 같다.
'LINUX 운영체제 보안' 카테고리의 다른 글
CentOS iptables 사용 하기 (0) | 2019.11.20 |
---|---|
CentOS telnet 설정 하기 (0) | 2019.11.12 |
CentOS traceroute 명령어 (0) | 2019.11.12 |
CentOS ping 무응답 설정 (0) | 2019.11.12 |
파일암호화 - 비대칭키 암호화 생성 방법 (0) | 2019.10.28 |
댓글