스케쥴링
at
일회성 작업 예약 (단일성 작업)
한번 실행하고 종료되는 작업
at [option] time-spec
at 시간 지정 예
at 14:10
at 11:00 am
at 11:00 today (오늘일경우)
at 15:00 feb 23 2022
at 월일년 at 022322
at 년-월-일 at 220224
at 일월년 at 250222
at now +5min 5분뒤 실행
at 3:00am tomorrow
at 11:00pm January 30
at now +1hours
at 예약 확인
at -l :작업번호 확인가능
at 예약 삭제
atrm 작업번호
$ at now +5min
at> ps -ef > ~/pslist
at> ctrl+d ( ==> <EOT>)
실행결과가 화면에 출력되지 않음.
예약작업은 atd 데몬에 의해서 실행됨
명령은 표준 출력(터미널 화면)으로 출력되지 않음 -> 리다이렉트
작업 확인: atq, 또는 at -l: 예약 확인
작업 번호,, 실행되는 날짜, 작업의 대기 큐(queue) , 작업을 실행할 사용자가 출력됨.
큐는 a~z, A~Z 총 52개 (우선순위포함, a가 앞에있을수록 우선순위가 높음)
/var/spool/at 디렉토리에 존재하며 실행권한이 설정되어 있음 ,
쉘에 적용될 환경 변수, 실행할 명령어
세션정보 확인하는 명령어 : netstat -antp
주기적인 작업 예약
특정 주기마다 실행되는 작업
crond 데몬
작업은 /var/spool/cron에 사용자이름으로 저장됨. (제어터미널을 가지지 않음)
시스템 작업 예약
cron : 매분마다 작업 확인하여 수행
anacron : 하루에 한번 작업 확인하여 수행 , 시스템이 셧다운되어 예약 작업이 실행되지 않았을 경우, 실행되지 않은 예약 작업을 확인하여 시스템이 다시 작업 수행함
/etc/crontab : 작업편집 방법 확인 가능
/etc/cron.d
$ cat /etc/crontab
SHELL = /bin/bash
PATH= /sbin:/bin:/user/sbin:/user/bin
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat 7도 있음
# | | | | |
# * * * * * user-name command to be executed
* * * * * user-name run-parts command /etc/cron 디렉토리
형식 : 분 시 일 월 요일 사용자계정 /etc/cron 디렉터리 안 명령 실행명령어 ex) /etc/cron.hourly
↓
메타문자 사용
메타 문자 : * (true) , - (범위 지정), , (다수 지정) , / (조건에 대한 주기)
crontab -e : cron 예약 작업 편집 (이거 먼저 실행하고. 새 예약작업 수행)
crontab -l : cron 예약 작업 확인
crontab -r : cron 사용자 예약 전체 삭제
crond가 동작하는지 확인
systemctl status crond
ls /etc/cron.d
/etc/cron.d:
total 12
-rw-r--r--. 1 root root 128 Aug 9 2019 0hourly
-rw-r--r--. 1 root root
cat /etc/cron.d/0hourly
ls -l /etc/cron.hourly/*
/etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly, /etc/cron.monthly 디렉토리 존재
cat /etc/anacrontab 에 의해서 주기적으로 실행됨.
period in days : 매크로 작업 수행 간격
delay in miinutes 작업과 작업사이의 간격 지정
job-identifier : 로그 파일에서 사용할 작업 고유 이름 지정
command : 동작 시킬 켱령어 (스크립트나 쉘 명령어도 가능)
@daily=1, @weekly=7, @monthly=월마다
데몬 : 서버역할을 하는 프로그램 (보통 클라이언트에게 서비스 하기 위해 백그라운드로 계속 동작중입니다.)
/etc/cron.daily: 매일 동작하는 것
/etc/cron.hourly: 매시간 실행되는것
/etc/cron.monthly: 매달 실행되는 것
/etc/cron.weekly: 매주 실행되는것
작업의 기본 지연에 추가적인 최대임의 지연
RANDOM_DELAY=45 최대지연 45분까지
START_HOURS_RANGE=3-22 3시~22시까지. (밤 10시까지)
'Linux' 카테고리의 다른 글
13. swap과 mount (0) | 2023.09.18 |
---|---|
12. 하드디스크 구조 (0) | 2023.09.18 |
10. ACL(Access Control List, 접근제어목록) (0) | 2023.09.18 |
9. 아카이브(archive)와 압축 (0) | 2023.09.18 |
8. 프로세스 관리 (Process Management) (0) | 2023.09.18 |