2.log

cron에 대하여 본문

HACKING/Bandit+

cron에 대하여

2.log 2023. 4. 21. 23:41
728x90
반응형

 

cron


작업 스케줄링 역할 하는 데몬으로, 특정 시간에 특정 작업을 자동으로 수행 할 수 있도록 함 (crontab 을 실행)

주기적, 반복적으로 수행해야 하는 작업에 유용

 

보안쪽에서 매일 취약점 검사를 위해 쓰이기도하지만, 공격자가 해킹 용도로 특정 서버 침입해 악성코드 실행 명령을 crontab 에 설정한 사례가 있음

 

 

동작방식

 

  • System ON (서버부팅)
  • Init 데몬
  • cron 데몬 실행 ( 백그라운드로 실행, 확인 명령어 : $ ps -ef | grep cron )
  • /etc/crontab 파일 읽음
  • cron.hourly > '' daliy > '' weekly > '' monthly 수행 (시스템 cron 설정 디렉토리)
  • /var/spool/cron 디렉토리에 있는 파일 읽음 (사용자 개별 cron 설정 파일)
  • cron 에 의해 수행되지 못한 작업은 anacron 에 의해 수행시도 (/usr/sbin/anacron : 서버 중지 시 작업 실행 보장)
  • cron 로그 파일(/var/log/cron)에 실행 기록

+) /etc/cron.allow & /etc/cron.deny : 크론 접근 허용 ID 설정

+) /usr/sbin/anacron  : 정해진 주기가 아닌, 해당 작업이 정해진 시간 내에 실행된 적 있는지 체크하여 수행된 적 없으면 실행

 

 

 

crontab


cron 작업 설정하는 파일로, 실행할 파일의 시간과 경로 관리

cron process 는 /etc/crontab 파일에 설정된 내용을 읽어 작업 수행함

 

 

/etc/crontab 파일 field 형식

m h dom mon dow user command

# 분 - 시  - 일 - 월 - 요일 - 사용자 - 실행명령

# 분 : 0 ~ 59
# 시 : 0 ~ 23
# 일 : 1 ~ 31
# 월 : 1 ~ 12
# 요일 : 0 & 7 (일요일), 1 (월요일), ..., 6(토요일)

#기타 특수문자
# * : 해당 필드의 모든 값
# - : 범위 (ex. 1-5 : 1일, 2일, ..., 5일)
# , : 지정한 모든 값 (불규칙 적인 값 지정, ex. 1,3,4 : 1시, 3시, 4시)
# / : 연결된 설정 값 범위에서 특정주길 나눔

 

 

파일위치

| 일반 유저

  • BSD 계열 : /var/spool/cron/ID
  • 솔라리스 계열 : /var/spool/cron/contabs/ID

| 루트권한

  • /etc/crontab 파일
  • /etc/cron.d 폴더 안

 

 

일반유저 crontab 작성법

$ crontab [option] [file]
  • -e : 파일 편집
  • -l : 파일에 설정된 내용 출력
  • -r : 파일 삭제
  • -u : root 사용자가 특정 유저의 crontab 파일 다룰때 사용

 

 

| example

# 개별사용자의 cron 설정
$ crontab -e

# '' cron 확인
$ crontab -l

# '' cron 삭제
$ crontab -r

# root의 일반 사용자 cron 설정
$ crontab -u [사용자명] -e

# root의 일반 사용자 cron 설정 확인
$ crontab -u [사용자명] -l

# root의 일반 사용자 cron 설정 삭제
$ crontab -u [사용자명] -r

 

 

** 유용한 cron 설정예시 참고 : https://tecadmin.net/crontab-in-linux-with-20-examples-of-cron-schedule/

 

 

 

 

 

 

 

 

[출처]

https://jhnyang.tistory.com/68

 

[Linux]작업 예약 스케줄러(크론Cron)파일,자동 백업 명령 & 관련 문제

리눅스 완전 정복 : 리눅스 목차 cron이란? 특정한 시간에 또는 특정 시간 마다 어떤 작업을 자동으로 수행하게 해주고 싶을 때 사용하는 명령어가 cron입니다. cron은 특정한 시간에 특정한 작업을

jhnyang.tistory.com

 

https://velog.io/@qlgks1/%EB%A6%AC%EB%88%85%EC%8A%A4-%EC%9E%91%EC%97%85-%EC%98%88%EC%95%BD-%EC%8A%A4%EC%BC%80%EC%A5%B4%EB%9F%AC-cron-crond-crontab

 

리눅스 - 리눅스 작업 예약 스케쥴러 cron, crond, crontab

소프트웨어 유틸리티 cron은 유닉스 계열 컴퓨터 운영 체제의 시간 기반 잡 스케줄러이다. 소프트웨어 환경을 설정하고 관리하는 사람들은 작업을 고정된 시간, 날짜, 간격에 주기적으로 실행할

velog.io

https://ponyozzang.tistory.com/401

 

리눅스 cron 설정 파일 경로(crontab 파일)

리눅스 환경에서 알고 있으면 편리하게 사용할 수 있는 cron이 있습니다.먼저 cron과 crontab이 무엇인지, 그리고 차이점이 무엇인지 간단하게 살펴보고 설정 파일은 어디에 있는지 알아보겠습니다.

ponyozzang.tistory.com

 

728x90
반응형
Comments