본문 바로가기

개발중/Linux

crontab 공부 기록

728x90
반응형

이번에 내가 해야 하는 업무는 특정 고객사 L 을 위한 프로세스를 만드는 것이다.

  • 매달 L 이 사용한 기록을 Excel 파일을 만들어 메일로 첨부한다.
  • Excel 파일 총 3개.
  •  프로세스를 매 월 1일마다 주기적으로 실행 시키기.

리눅스 서버에 올리고 매 월 1 일에 실행시키기 위해 crontab 을 이용한다.

그래서 crontab 을 공부해야 한다.


🟢crontab 명령어

  크론탭을 설정할 수 있는 장소. 여기에 각종 크론탭 명령어를 입력후 콜론(:) 입력 후에 wq 를 입력해 크론탭을 갱신시킨다.

 

crontab -e

 

 

  현재 크론탭에 어떤 내용이 들어있는지 보려한다.

 

crontab -l

 

 

  크론탭을 지우고 싶다.

 

crontab -r


🟢 crontab 주기

*               *                *               *             *

분(0-59)    시간(0-23)    일 (1-31)    월(1-12)    요일(0-7)

 

 

  요일(0-7) 은 아래처럼 0과 7이 일요일이다.

 

0 - 일

1 - 월

2 - 화

3 - 수

4 - 목

5 - 금

6 - 토

7 - 일


🟢 crontab 예제

  매분 실행

 

* * * * * /home/script/binsoo.sh

 

 

  매월 1일 09시 00분에 실행

 

00 09 1 * * binsoo.sh

 

 

  매주 금요일 오전 5시 45분에 binsoo.sh 를 실행

 

45 5 * * 5 /home/script/binsoo.sh

 

 

  매일 매시간 0분, 20분, 40분에 binsoo.sh 를 실행

 

0,20,40 * * * * /home/script/binsoo.sh

 

 

  매일 1시 0분부터 30분까지 매분 binsoo.sh 를 실행

 

0-30 1 * * * /home/script/binsoo.sh

 

 

 매 10분마다 binsoo.sh 를 실행

 

*/10 * * * * /home/script/binsoo.sh

 

 

  5일에서 6일까지 2시,3시,4시에 매 10분마다 binsoo.sh 를 실행

 

*/10 2,3,4 5-6 * * /home/script/binsoo.sh


🟢 crontab logging

크론탭을 사용해서 정기적으로 작업을 처리하는 것은 좋은데,

해당 처리 내역에 대해 로그를 남기고 싶을 때가 있을겁니다. 그럴때 크론탭 로깅을 사용한다.

 

 로깅을 사용

 

* * * * * /home/script/binsoo.sh > /home/script/binsoo.sh.log 2>&1

 

 너무 자주 실행 되고 또한 지속적으로 로깅이 되야 해서 로그를 계속 남겨둬야 한다면 

 

* * * * * /home/script/binsoo.sh >> /home/script/binsoo.sh.log 2>&1

 

 로그는 필요 없는 크론탭

 

* * * * * /home/script/binsoo.sh > /dev/null 2>&1


🟢 crontab backup

혹시라도 crontab -r 를 쓰거나 실수로 crontab 디렉토리를 날려버려서

기존 크론 내역들이 날아갔을때를 위해서 크론탭을 백업해 두자 !

 

크론탭 백업

 

crontab -l > /home/bak/crontab_bak.txt

 

 

 크론탭 백업을 자동화 시키기

 

50 23 * * * crontab -l > /home/bak/crontab_bak.txt


🟢 crontab 참고 사이트 

  참고 사이트 1


✅ 프로세스

 

프로세스(process)는 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 말한다. 

종종 스케줄링의 대상이 되는 작업(task)이라는 용어와 거의 같은 의미로 쓰인다. 

여러 개의 프로세서를 사용하는 것을 멀티프로세싱이라고 하며 같은 시간에 여러 개의 프로그램을 띄우는 시분할 방식을 멀티태스킹이라고 한다. 

프로세스 관리는 운영 체제의 중요한 부분이 되었다.


프로그램

 

프로그램은 일반적으로 하드 디스크 등에 저장되어 있는 실행코드를 뜻하고, 프로세스는 프로그램을 구동하여 프로그램 자체와 프로그램의 상태가 메모리 상에서 실행되는 작업 단위를 지칭한다. 

예를 들어, 하나의 프로그램을 여러 번 구동하면 여러 개의 프로세스가 메모리 상에서 실행된다.


 쓰레드

 

스레드(thread)는 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다. 일반적으로 한 프로그램은 하나의 스레드를 가지고 있지만, 프로그램 환경에 따라 둘 이상의 스레드를 동시에 실행할 수 있다. 이러한 실행 방식을 멀티스레드(multithread)라고 한다.


728x90
반응형

'개발중 > Linux' 카테고리의 다른 글

리눅스 톰캣설정  (0) 2022.05.11
리눅스에서 스프링 프로젝트 띄우기  (1) 2022.05.03
root 권한  (0) 2020.12.27
유닉스의 파일 조작하기2  (0) 2020.12.26
LINUX GCC 구조체  (0) 2020.07.27