본문 바로가기
LINUX 운영체제 보안

CentOS crontab을 이용한 이메일 보내기.

by 웹하는빡통 2019. 11. 18.

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공격에도 이용이 될 것 같다는 생각이 들었다. 친구들에게 한번씩 장난삼아 해보아도 될 것 같다. 

댓글