본문 바로가기
공부방/서버구축

[리눅스] crontab 이용하여 주기적으로 로그 삭제 crontab backup

by 빵끗미 2022. 6. 13.
반응형

안녕하세요 빵끗미에요

 

오늘은 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

 

반응형

댓글