[Linux] 스케줄링 관리 (at , cron)

2021. 10. 29. 16:57·OS/Linux
목차
  1. at 명령어
  2. crontab 명령어
728x90
반응형

at 스케줄링은 주로 프로그램을 특정시간에 한 번만 사용하고 싶을 때 이용한다.

cron 스케줄링은 프로그램을 특정 날짜나 시간,요일에 맞춰 주기적으로 사용하고 싶을 때 이용한다.

 

ex)  비 반복적인 업무 : 업데이트, 재부팅 -> at 스케줄링

      반복적인 업무 : 정기적으로 파일백업 -> cron 스케줄링

 

at 명령어

작업 선언
# at 1300
# at 10:00pm today

작업 확인
# at -l
# atq

작업 취소
# atrm N (N : Job ID)
# at -r N

- 비반복에 사용되는 명령어

- 지정한 시간에 어떠한 작업이 실행될 수 있도록 작업 스케줄을 예약 처리해 주는 기능

- at가 설치되어 있지 않다면 yum을 이용해 설치하자 (아래참고)

- at 스케줄을 사용하기 위해서는 at 데몬이 작동하고 있어야 한다. (아래참고)

 

at 설치 & 데몬 재시작

yum install at
systemctl restart atd

 

[EX] at 선언하기

at 12:03
at> echo 1111 > /dev/pts/0
at> <EOT>
job 2 at Sat Oct 30 12:03:00 2021​

[EX] at -l //at 확인 (이미 출력한 것은 안나옴)

at -l
1       Sat Oct 30 12:03:00 2021 a root
2       Sat Oct 30 12:03:00 2021 a root​

 

 

crontab 명령어

cron 데몬은 같은 작업을 주기적으로 반복 실행되도록 하는 작업 스케줄용 데몬으로, 매분, 매시, 매일, 매주, 매월, 매요일 단위로 cron 데몬에 의해서 작업이 실행될 수 있다. 

/etc 디렉토리에 일,주,월,요일 단위 형태로 cron 디렉토리가 존재하며, 이들 디렉토리에는 작업 예약 스크립트들이 들어 있다. /etc/crondaily 디렉토리안에는 여러 가지 스크립트들이 존재하는데, 매일 이들 스크립트는 cron 데몬에 의해서 자동적으로 실행된다. 

cron을 이용한 스케줄링은 시스템운영에 필요한 작업과, 사용자에게 필요한 작업 두 가지로 나뉜다.

- 시스템 운영에 필요한 작업은 root 권한으로 /etc/crontab에 등록해서 수행할 수 있다.

- 사용자가 필요에 의해 지정하는 작업은 crontab 명령어를 통해 등록할 수 있다.

작업 선언
# crontab -e (-e : Edit, # vi /var/spool/cron/<사용자이름>)
# crontab -e -u user01

작업 확인
# crontab -l (-l : List, #cat /var/spool/cron/<사용자이름>)

작업 삭제
# crontab -r (주의) (-r : Remove, # rm /var/spool/cron/<사용자이름>)

*주의 

crontab은 에디터를 실행하면(crontab -e) 임시파일로 생성이 된다. 그리고 저장을 하는 순간 바로 적용되어 동작한다. 저장하고 빠져나가면 crontab: installing new crontab을 출력하며 바로 실행 시작한다.

 

cron 데몬 확인

systemctl status crond.service

 

cron 디렉토리 확인

find /etc | grep cron
/etc/crontab
/etc/cron.daily
/etc/cron.daily/logrotate
/etc/cron.daily/man-db.cron
/etc/systemd/system/multi-user.target.wants/crond.service
/etc/sysconfig/crond
/etc/anacrontab
/etc/cron.hourly
/etc/cron.hourly/0anacron
/etc/selinux/targeted/active/modules/100/cron
/etc/selinux/targeted/active/modules/100/cron/cil
/etc/selinux/targeted/active/modules/100/cron/hll
/etc/selinux/targeted/active/modules/100/cron/lang_ext
/etc/cron.d
/etc/cron.d/0hourly
/etc/cron.monthly
/etc/cron.weekly
/etc/pam.d/crond
/etc/cron.deny

 

스케줄링 주기 설정방법

   *           *             *            *          *
분(0-59) /시간(0-23) /일(1-31) /월(1-12) /요일(0-7)
각각의 필드는 설정값에 따라 시간, 월, 일단위로 쪼개서 스케줄링을 설정할 수 있다.
10, 20, 30 * * * * = 매시간 10분, 20분, 30분에 실행
0-30 10 * * *   = 매일 10시 0분 ~ 30분까지 매분 실행
* * 1 1-12/2 *  = 1~12월까지 2개월마다 1일날 매분 실행
10 * * * 1,3,5   = 월,수,금요일마다 매시간 10분에 실행
0 20 * * * /root/snapmk.sh  = 매일 오후 8시마다 실행
* 20 * * * /root/snapmk.sh  = 오후 8시에 매분 실행
00 09-18/1 * 5 1-5 /root/port_script.sh = 5월, 월-금 ,09시~18시 까지 1시간마다 실행

 

 

Cron 로그 확인 방법

#Ubuntu crontab 로그 확인
grep CRON /var/log/syslog
728x90
728x90

'OS > Linux' 카테고리의 다른 글

[Linux] 포트 스캔 명령어 (nmap)  (0) 2021.11.19
[Linux] 로컬의 파일을 다른 서버로 파일 전송(scp명령어)  (0) 2021.11.04
[Linux] Bash 문자열 변수 조작  (0) 2021.10.26
[Linux] curl을 통한 응답값 예쁘게 출력하는 방법(jq라이브러리)  (0) 2021.10.21
[Linux] 어떤 사용자가 언제 무슨 작업을 했는지 확인방법(로그 확인)  (0) 2021.10.20
  1. at 명령어
  2. crontab 명령어
'OS/Linux' 카테고리의 다른 글
  • [Linux] 포트 스캔 명령어 (nmap)
  • [Linux] 로컬의 파일을 다른 서버로 파일 전송(scp명령어)
  • [Linux] Bash 문자열 변수 조작
  • [Linux] curl을 통한 응답값 예쁘게 출력하는 방법(jq라이브러리)
이코딩
이코딩
이코딩의 자동화 연구소 블로그입니다.
  • 이코딩
    이코딩의 자동화 연구소
    이코딩
  • 전체
    오늘
    어제
    • 분류 전체보기 (105)
      • IT (21)
        • IT 기초 지식 (14)
        • 네트워크 기초 (2)
        • 클라우드 (4)
      • DevOps (15)
        • Ansible (2)
        • Terraform (12)
        • Kubernetes (1)
      • Cloud (11)
        • NCP (NAVER Cloud Platform) (4)
        • NHN (NHN Cloud) (5)
        • AWS (Amazon Web Service) (2)
      • OS (42)
        • Linux (38)
        • Window (3)
      • 언어 (7)
        • JAVA (4)
        • Python (3)
      • 문서 작업 (2)
        • EXCEL (2)
      • 오픈소스 (7)
        • Zabbix (3)
        • Apache + Tomcat (3)
        • Redis, Valkey (1)
  • 반응형
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Linux
    NCP
    ssh
    NHN Cloud
    zabbix
    CentOS
    Terraform
    클라우드
    ansible
    라우팅 테이블
    Java
    window
    가상화
    Apache
    AWS
    Routing Table
    Python
    sftp
    tomcat
    테라폼업앤러닝
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
이코딩
[Linux] 스케줄링 관리 (at , cron)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.