Linux 스케줄링 관리

2026. 6. 14. 13:00리눅스


Ⅰ. atd 데몬

atd 데몬

(at daemon)
구분 설명
개념 관리자가 지정한 시간에 한 번만 실행되는 작업 (예약 작업)을 처리하는 백그라운드 서비스
at 명령어로 등록된 작업들을 정해진 시각에 자동으로 실행시켜주는 역할 담당함
일회성 작업 스케줄링을 담당하는 데몬 (서비스)
역할  역할 설명
기능 사용자가 at 명령으로 등록한 작업을 지정된 시간에 실행하도록 관리
작업 관리 위치 /var/spool/at 또는 /var/spool/atjobs 디렉터리에 작업 파일로 저장
작동 조건 atd 서비스가 실행 중이어야 예약 작업이 정상적으로 동작
관리자 제어 systemctl start atd, systemctl enable atd 명령으로 실행 및 자동시작 설정 가능
특징 crond는 반복 작업이지만 atd는 1회성 예약 작업
로그인된 사용자 권한으로 작업 수행 

 

 

ls /var/spool/ 명령을 통해 /var/spool 디렉터리 내에 있는 하위 디렉터리 나열

 

ls /var/spool/at 명령을 통해 /var/spool 디렉터리 내 at 디렉터리 목록 확인

 

ls /var/spool/at/spool/ 명령을 통해 /at/spool 디렉터리 내에 목록 없음 확인

 

tree /var/spool/at 명령을 통해 at 디렉터리와 그 하위 구조를 트리 형태로 확인

 

 

systemctl status atd 명령을 통해 atd 서비스의 상태 조회

 

 

ps –ef | grep atd 명령을 통해 현재 실행 중인 프로세스 중 atd라는 이름이 포함된 프로세스 검색

 

 

mkdir test && cd test 명령을 통해 현재 디렉터리 아래에 test라는 새 디렉터리 생성 후, test 디렉터리로 이동

 

date 명령을 통해 현재 시스템 날짜와 시간 출력

 

 

at 21:11 명령을 통해 오후 9시 11분에 실행될 작업 등록하기 위해 입력 모드로 진입

 

 

# at1.txt 파일 생성 

 

touch /root/test/at1.txt 명령을 통해 /root/test 디렉터리에 at1.txt 파일 생성

 

 

# at2.txt 파일 생성

 

touch /root/test/at2.txt 명령을 통해 /root/test 디렉터리에 at2.txt 파일 생성

 

Ctrl + D를 통해 입력 모드에서 나옴

 

at now+3min 명령을 통해 3분 뒤 실행할 작업 등록하기 위해 입력 모드로 진입

 

 

# at3.txt 파일 생성

 

touch /root/test/at3.txt 명령을 통해 /root/test 디렉터리에 at3.txt 파일 생성

 

 

# at4.txt 파일 생성

 

touch /root/test/at4.txt 명령을 통해 /root/test 디렉터리에 at4.txt 파일 생성

 

Ctrl + D를 통해 입력 모드에서 나옴

 

tree /var/spool/at 명령을 통해 작업들이 잘 예약되었는지 트리 구조를 통해 확인

 

atq 명령을 통해 예약된 작업 목록 확인

 

 

at teatime 명령을 통해 오늘 오후 4시에 실행할 작업 등록하기 위해 입력 모드로 진입

 

 

# at5.txt 파일 생성

 

touch /root/test/at5.txt 명령을 통해 /root/test 디렉터리에 at5.txt 파일 생성

 

Ctrl + D 명령을 통해 입력 모드에서 나옴

 

tree /var/spool/at 명령을 통해 작업들이 잘 예약되었는지 트리 구조를 통해 확인

 

atq 명령을 통해 예약된 작업 목록 확인

 

ls 명령을 통해 생성된 파일 목록 확인

 

tree /var/spool/at 명령을 통해 아직 남은 작업이 무엇인지, 완료된 작업이 있는지 확인

 

atq 명령을 통해 예약된 작업 목록 확인

 

atrm 명령을 통해 예약된 작업 삭제

 

=> 작업 다 된 것 확인

 

 

ls –l /etc/at.deny 명령을 통해 /etc/at.deny 파일에 관한 정보 확인

 

cat /etc/at.deny 명령을 통해 /etc/at.deny 파일의 내용 확인

 

echo user1 > /etc/at.deny 명령을 통해

 

user1이라는 사용자를 at 명령어 사용 불가 대상으로 지정하기 위해 at.deny 파일에 입력

 

cat /etc/at.deny 명령을 통해 잘 기록되었는지 확인

 

su – user1 명령을 통해 user1 사용자로 전환

 

at 21:30 명령을 통해 파일이 내용이 잘 적용되었음을 확인

 

exit 명령을 통해 user1 사용자에서 로그아웃

 

 

at 21:23 명령을 통해 오후 9시 23분에 시행할 작업 등록하기 위해 입력모드로 진입

 

 

# at6.txt 파일 생성

 

touch /home/user2/at6.txt 명령을 통해 /home/user2 디렉터리에 at6.txt 파일 생성

 

atq 명령을 통해 예약된 작업 확인

 

atq 명령을 통해 작업 완료된 것 확인

 

ls 명령을 통해 파일이 잘 생성되었는지 확인

 

exit 명령을 통해 user2에서 로그아웃


 

Ⅱ. crond 데몬

crond 데몬

(cron daemon)
구분 설명
개념 주기적으로 반복되는 작업 (분, 시, 일, 주, 월, 요일 단위)을 자동으로 실행하는

스케줄 관리 데몬 (백그라운드 서비스)
atd가 일회성 예약 작업을 처리하지만 crond는 정기적이고 반복적인 작업 자동화 담당
역할 및 특징 항목 설명
기능 사용자가 설정한 일정에 따라 명령어나 스크립트를 자동으로 주기 실행
작업 관리 위치 /var/spool/cron/또는 /etc/cron.* 디렉터리에 스케줄 파일로 저장
스케줄 정의 파일 예시 설명
 /etc/crontab 시스템 전체
crontab -e 사용자별
작동 조건 crond 서비스가 실행 중이어야 스케줄이 동작함
시간 단위 분 (Minute), 시 (Hour), 일 (Day), 월 (Month),

요일 (Weekday) 단위로 반복 설정 가능
서비스 제어 systemctl start crond 또는 systemctl enable crond로

실행 및 부팅 시 자동 시작 설정
관련 명령어 예시 설명
crontab -e 사용자 직접 설정 가능
crontab -l 조회
crontab -r 삭제

 

 

tree /var/spool/cron/ 명령을 통해

 

크론 예약 작업이 저장되는 /var/spool/cron 디렉터리 비어있음을 트리 구조로 확인

 

systemctl status crond 명령을 통해 crond 서비스 상태 확인

 

ls /etc/cron.hourly/ 명령을 통해 시간 기반 작업 파일인 /etc/cron.hourly에 관한 정보 확인

 

ps –ef | grep crond 명령을 통해 crond 데몬에 관한 것 검색

 

 

crontab –e 명령을 통해 vi 편집기 진입

 

***** date >> /root/test/date.log 명령을 통해 1분마다 /root/test 디렉터리에 date.log라는 파일 생성

 

ls 명령을 통해 파일이 생성되었는지 확인

 

tree /var/spool/cron/ 명령을 통해 예약된 작업 확인

 

cat date.log 명령을 통해 1분마다 파일이 생성되는지 확인

 

 

crontab –r 명령을 통해 작업 및 파일 삭제

 

crontab –l 명령을 통해 잘 삭제되었는지 확인

 

 

mkdir –p /root/bin 명령을 통해 /root 디렉터리 아래에 bin 디렉터리 생성

 

(-p 옵션으로 인해 상위 디렉터리 없을 경우 같이 생성)

 

ls –ld /root/bin 명령을 통해 bin 디렉터리의 상세 정보 확인

 

vi /root/bin/backup.sh 명령을 통해 vi 편집기 사용하여 backup.sh 백업 스크립트 파일 생성 및 내용 입력

 

cat /root/bin/backup.sh 명령을 통해 해당 파일에 입력된 내용 확인

 

 

[ backup.sh 파일의 내용 ]

 

#!/bin/bash 명령을 통해 bash 쉘에서 실행하도록 설정

 

cd /home 명령을 통해 home 디렉터리로 이동

 

tar . 명령을 통해 현재 디렉터리 전체를 압축 아카이브 파일로 생성

 

c 옵션을 통해 새 아카이브 파일 생성

 

v 옵션을 통해 진행 상황을 자세히 출력

 

z 옵션을 통해 gzip 압축 수행

 

f 옵션을 통해 해당 인수를 아카이브 파일의 이름으로 지정

 

아카이브 파일의 경로 및 이름은 /backup/home_에 현재 시간과 날짜가 붙어 생성됨

 

/backup/backup.log 옵션을 통해 해당 파일에 모두 기록하도록 설정

 

 

mkdir –p /backup 명령을 통해 백업 아카이브 압축 파일을 저장할 backup 디렉터리 생성

 

(-p 옵션으로 인해 상위 디렉터리 없을 경우 함께 생성)

 

ls –l /root/bin/backup.sh 명령을 통해 backup.sh 파일의 상세 정보 확인

 

chmod 700 /root/bin/backup.sh 명령을 통해 backup.sh 파일에 대한 읽기, 쓰기, 실행 권한을 사용자에게만 부여

 

ls –l /root/bin/backup.sh 명령을 통해 접근 권한이 잘 변경되었는지 확인

 

echo $PATH 명령을 통해 PATH 환경 변수의 경로 출력

 

 

crontab –e 명령을 통해 1분마다 아카이브 파일을 생성하고 로그를 남기도록 설정

 

systemctl restart crond 명령을 통해 crond 서비스 재시작

 

systemctl status crond 명령을 통해 crond 서비스의 현재 상태를 확인

 

ls –l /backup/ 명령을 통해 아카이브 파일이 1분마다 생성되고 있는지 확인

 

 

tar tf /backup/home_0915_215202.tar.gz 명령을 통해 백업 파일 내부에 포함된 파일과 디렉터리 목록 확인

 

ls /home 명령을 통해 홈 디렉터리 내에 있는 디렉터리 확인

 

ls /backup/ 명령을 통해 backup 디렉터리 내에 있는 파일 확인

 

'리눅스' 카테고리의 다른 글

Linux 서비스 운영 방식  (0) 2026.06.14
Linux 원격 파일 접속 & 파일 전송  (0) 2026.06.14
Linux 백업 관리  (0) 2026.06.14
Linux 패키지 관리  (0) 2026.06.14
Linux RAID 디스크 구성  (0) 2026.06.14