리눅스 crontab 이용하여 주기적으로 로그 삭제 crontab backup by 김다이아2022. 10. 13. 17:47
반응형

안녕하세요 김다이아에요

오늘은 crontab에서 알아보도록 할게요

crontab 이란?

지정 시간이 되면 반복적으로 실행하도록 설정하는 예약 스케줄 명령어 

명령어 설명
crontab -l 예약된 작업 리스트 보기
crontab -e 예약된 작업 수정
crontab -r 예약된 작업 삭제
crontab -u [사용자] root 관리자는 해당 사용자 crontab  파일을 보거나 삭제 편집 가능 

 

crontab 파일 형식

파일 형식은 여섯 항목으로 구성되어 있다.

앞에서부터 다섯 항목은 시간과 날짜를 나타내는 숫자이고 마지막 항목은 반복적으로 수행할 명령이다.

* * * * * 작업 내용
분(0-59) 시간(0-23) 일(1-31) 월(1-12) 요일(0-7)

 

​ 명령어 사용 제한하기

crontab 명령은 /etc/cron.allow 와 /etc/cron.deny 파일로 사용 권한을 제한할 수 있다.
/etc/cron.allow 파일이 있으면 이 파일에 지정된 사용자만 crontab 명령을 사용할 수 있다.
/etc/cron.deny 파일이 있으면 파일에 사용자 계정이 없어야 crontab을 사용할 수 있다.
/etc/cron.allow 와 /etc/cron.deny 파일이 모두 없으면 시스템 설정에 따라 시스템 관리자만 crontab 명령을 사용할 수도 있고 모든 사용자가 사용할 수도 있다.

 

로그 삭제 스크립트 만들기

/etc/httpd/logs/ 안에 있는 로그 파일 중 30일이 지난 로그 파일을 삭제하는 스크립트를 만들었다. 

#!/bin/bash
cd /etc/httpd/logs/
find ./ -name "*_log-*" -mtime +30 -exec rm -f {} \;

 

셀 스크립트 작성 요령

셀  스크립트를 작성할 때 제일 먼저 ‘#!/bin/bash’라고 작성해 주어야 한다. 
그 이후에 수행하고 싶은 명령어들을 작성해 주면 된다.

 

스크립트 파일 만들 때 파일 실행 권한 부여

# chmod +x test1.sh

crontab 등록 예시

매월 31일 23시 수행되도록 시간 설정, 수행 시 로그를 남기도록 설정

# * 23 31 * * /home/test1.sh >> /home/test1.sh.log 2>&1

 

crontab 백업 스크립트 작성하기 

관리자에 의해 crontab 내용이 삭제될 수 있음으로 주기적으로 해당 내용 백업 필요하다.

#!/bin/bash
dd=`date +%d`
# crontab -l > /home/crontab_$dd.txt

 

스크립트 파일 만들 때 파일 실행 권한 부여

# chmod +x backup.sh

crontab 백업 스크립트 등록 예시

매주 23시가 되면 crontab 백업하기

# * 23 * * 0-7 /home/backup.sh

 

 

*쿠팡 파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있습니다.*

*쿠팡 파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있습니다.*

반응형