Linux

cron을 이용한 스케줄링

잔망루피 2023. 12. 29. 23:33

cron을 언제 사용하면  좋을까?

  • 자동 백업
    • ex) 매일 특정 시각에 mysqldump로 백업을 한다면, 쉘 스크립트를 실행하도록 해서 자동 백업을 한다.

 

cron 표현식

  • 각 필드는 공백으로 구분된다.
필드 와일드카드
0 ~ 59 ,-*/
시간 0 ~ 23 ,-*/
1 ~ 31 ,-*?/LW
1 - 12 또는 JAN - DEC ,-*/
Day of week 1 - 7 또는 SUN - SAT ,-*?L#
연도 1970 ~ 2199 ,-*/

 

 

 

crontab 설정 형식

  • #은 주석 처리 할때 사용
  • 필드에 *를 사용하면, 해당 필드의 모든 시간에 실행한다.
    • 분에 *가 있으면, 매 분마다 실행
    • 시간에 *가 있으면, 매 시간마다 실행 
  • ,를 사용하면 여러 시간과 날짜를 지정
  • 특정 기간을 지정할 때 -를 사용
  • 실행할 명령어는 일반 명령어 또는 사용자가 작성한 쉘 스크립트 등이 된다. 
    • ex) * * * * * ls
      • 매 분마다 ls 명령어를 실행

 

 

실습) cron을 이용해서 매 분마다 날짜를 터미널 창에 출력해보았다. 

 

 

1. nncronlt117.exe를 다운받았다.

https://www.nncron.ru/download.shtml

 

nnSoft: download

com_ports.spf 931 12 Dec 2008 Tests the specified COM-port and returns TRUE if the port is free or returns FALSE if the port is busy (used by some devices or applications). crc32.spf 1.4K 12 Dec 2008 Generates a string, that contains checksum (crc32) of a

www.nncron.ru

 

 

2. C:\Program Files (x86)\cron\cron.tab을 수정한다.

* * * * * C:\Users\my\Documents\date_and_time.bat

메모장으로연후에 실행할 bat 파일이 있는 경로를 넣어주었다.  

 

 

3. 스케줄링으로 실행할 date_and_time.bat 파일을생성한 후에 날짜를 출력하도록 작성한다.

@echo off
echo %date% %time%

 

 

 

실행 결과

 

매 분마다 새로운 터미널이 열리면서 날짜와 시간이 출력된다.

같은 터미널에서 날짜와 시간이 매 분마다 기록되게 하고 싶으면

  1. 해당 터미널의 프로세스 아이디를 알아야 한다.
  2. 해당 터미널에 시간을 전달해준다.
  3. 터미널을 refresh해준다.

 

 

 


참고 👇👇👇

https://decdream08.tistory.com/67

 

자동화 스케쥴링 프로그램 Cron

프롤로그 자동화 스케쥴링을 윈도우에서 제공하는 스케쥴러를 이용하여 여러번 시도해 보았으나 내가 마음먹은대로 동작시키는데 실패를 하고, 기억 저편에 넣어 두었다. 그러던차에, Cron이라

decdream08.tistory.com

 

https://asiatica-aramid.tistory.com/4

 

[CMD] 현재 날짜와 시간 출력

- 'date_and_time.bat' 빈 파일 생성 Q. bat 파일 확장자가 보이게 어떻게 하나요?A. http://asiatica-aramid.tistory.com/12 를 참고해주세요! - 'date_and_time.bat' 파일 오른쪽 클릭 및 편집(E) 선택 - '%date%'는 날짜 / '%ti

asiatica-aramid.tistory.com

 

https://www.lesstif.com/1stb/cron-18219614.html

 

cron 사용법

cron 은 보안 이슈때문에 사용자의 쉘 초기화 파일(.bashrc, .bash_profile)을 읽지 않는다. 그러므로 실행할 프로그램이 /usr/bin이나 /bin 같이 일반적인 경로에 있지 않는다면 초기화 파일에 PATH 나 LD_LIB

www.lesstif.com

 

반응형

'Linux' 카테고리의 다른 글

[Ubuntu] MySQL 자동 백업 설정  (2) 2024.07.23
[Ubuntu] Docker MySQL 설치  (0) 2024.04.23
Ubuntu에서 OpenJDK 제거  (0) 2024.01.23