crontab / vi 에디터

유영·2023년 5월 8일
0

Linux

목록 보기
3/11

1. 크론탭(Crontab)과 크론(Cron) ?

리눅스(Linux) 계열에서 특정 시간에 특정 작업을 하는 데몬을 Cron(크론)이라 하고
크론(Cron) 이 언제 무엇을 하는지 특정 파일에 저장하는 것을 크론탭(Crontab)이라고 한다.
즉 크론탭(crontab)은 리눅스 운영체제에서 배치 작업을 스케쥴링 하기 위한 프로그램 이다.
크론(Cron) 이라는 데몬이 원하는 시간에 원하는 명령 또는 프로그램 을 수행하도록 명령 리스트를 만드는 것이 크론탭(Crontab) 작업이라고 할 수 있다.
이는 윈도우의 스케줄러와 비슷한 컨셉 이다.

2. 크론탭(Crontab) 은 언제 사용하나?

특정 시간에 특정 작업을 해야할때
반복된 시간에 반복된 작업을 해야할때
예약 작업을 사용해야 할때

설치
리눅스: apt-get install cron
맥북: 기본 내장


3-1. 크론탭(Crontab) 기본 사용법

  • 크론탭 편집
    crontab -e
    현재 사용중인 crontab의 목록과
    'insert' 키를 입력 후 아래에 새로운 crontab을 추가 할 수 있다.

  • 크론탭 작업 내용 확인
    crontab -l

  • 크론탭 삭제 (삭제시 크론탭 자체가 삭제됩니다)
    crontab -r

  • 현재 크론탭에 설정되어 있는 내용 삭제
    crontab -d!

  • 종료
    일반적인 vi의 종료법과 동일하게
    :wq 를 하면 저장 후 종료가 된다.


3-2.crontab 로그기록

stderr 기본 출력장치(모니터) -> 에러
stdin 기본 입력장치(키보드) -> 입력
stdout 기본 출력장치(모니터) -> 출력


4. 크론탭(Crontab) 주기

* * * * * {실행 명령}
// 위 순서대로 분 시 일 월 요일 {실행 명령}
분 : 0-59
시 : 0-23
일 : 0-31
월 : 0-12
요일 : 요일에서 0과 7은 일요일, 1부터 6은 월요일부터 토요일

// 매 분마다 실행
* * * * * {실행 명령} or /1 * * * * {실행 명령}

// 매 시 정각에 실행
0 * * * * {실행 명령}

// 매일 오후 13시 정각에 실행
0 13 * * * {실행 명령}

// 매주 월요일 자정에 실행
0 0 * * 1 {실행 명령}

// 매달 5일 자정에 실행
0 0 5 * * {실행 명령}

// 매시 25분, 55분에 실행
25,55 * * * * {실행 명령}

// 15분마다 실행
 */15 * * * * {실행 명령}

// 매일 3시에 실행
0 3 * * * {실행 명령}

// 매 6시간마다(00:30, 06:30, 12:30, 18:30) 실행
30 */6 * * * {실행 명령}

// 1시부터 매 6시간마다(01:30, 07:30, 13:30, 19:30) 실행
30 1-23/6 * * * {실행 명령}

// 평일(월요일~토요일) 06:00에 실행
0 6 * * 1-6 {실행 명령}

// 토요일 07:00에 실행
0 7 * * 6 {실행 명령}
  • 주기별 예제
    /root/scripts/status_check.sh 라는 쉘스크립트 파일이 있다고 가정하고 해당 파일의 주기적 실행
1) 매분 실행
* * * * * /root/scripts/status_check.sh

2) 특정 시간에 실행
매주 월요일 오전 6시 40분에 실행
40 6 * * 1 /root/scripts/status_check.sh

3) 반복 실행
매일 매시간 0분, 20분, 40분에 실행
0,20,40 * * * * /root/scripts/status_check.sh

4) 범위 실행
매일 오전 6시 10분부터 40분까지 매분 실행
10-40 6 * * * /root/scripts/status_check.sh

5) 간격 실행
매 20분마다 실행
*/20 * * * * /root/scripts/status_check.sh

6) 특정 여러 시각 실행
10일에서 12일까지 4시, 5시, 6시 매 20분마다 실행
*/20 4,5,6 10-12 * * /root/scripts/status_check.sh

5. crontab 실행 명령

// 크론탭 시작
service cron start
// 크론탭 중지
service cron stop
// 작동확인
service cron status


6. crontab 재시작

crontab 설정 변경 후 항상 cron 서비스를 재시작해야 한다.
아래 명령어중 하나를 실행하면된다.
cron restart 가 안되는면 crond restart 를 사용하면 된다.

service cron restart
service crond restart

  • crontab 실행 팁
    로그(log) 남겨두기
    단, 로그가 많이 쌓이면, 서버 저장공간이 꽉차게 되고, 서버는 다운 또는 비정상동작을 보일 수 있으므로, 주기적으로 삭제

vi 에디터

  1. vi 에디터의 모드
  • 명령모드 : 명령어를 실행할 수 있는 상태
  • 입력모드 : 원하는 문자열을 입력시킬 수 있는 상태
  • ESC : 입력모드에서 명령모드로 전환시킴
  1. 명령모드 명령어
  • i : 입력모드로 전환
  • a : 커서의 다음칸부터 입력
  • [n]x : n의 수만큼 글자삭제
  • [n]dd : n의 라인수만큼 삭제
  • u : 명령취소
  • [n]yy : n의 라인수만큼 복사
  • p : 붙여넣기
  • :wq : 저장후 종료
  • :w : 저장
  • :q : 종료
  • :q! : 저장하지않고 종료
  1. 화면스크롤
  • ctrl+f : 한화면 다음으로
  • ctrl+b : 한화면 이전으로
  • ctrl+d : 반화면 다음으로
  • ctrl+u : 반화면 이전으로
  • G : 파일의 맨 끝으로 이동
  • [n]G : n번째 라인으로 이동
  • :[n] : n번째 라인으로 이동
  1. 검색
  • / [검색단어] : 현재 위치에서 아래방향으로 검색단어를 검색
  • n : 이전 검색을 반복
  • ? [검색단어] : 현재 위치에서 위방향으로 검색단어를 검색
  • N : 이전 검색을 반복, 방향은 반대
  1. 치환
  • :[n],[m] s/[찾을 문자]/[치환할 문자]/[옵션]
    n번째 줄부터 m번째 줄까지 문자를 치환
    m이 $일경우 문서의 끝까지 치환
    옵션이 g 일 경우 찾은 문자를 모두 치환
    옵션이 c 일 경우 찾은 문자를 치환할 것이지 확인 메세지 출력
  1. 환경설정
    /usr/share/vim/vim61/vimrc_example.vim 을 자신의 홈 디렉토리에 vimrc로 복사하여 편집
  • set autoindent 자동 들여쓰기
  • set cindent C 파일 자동 들여쓰기
  • set number 행번호 표시
  • set backup 백업파일 자동생성

0개의 댓글