> 프로세스 관리 > batch

batch: 시스템 부하가 낮을 때 명령 실행

batch 명령어는 시스템의 평균 부하가 0.8 미만으로 떨어질 때까지 대기한 후, 지정된 명령어를 실행합니다. 이는 시스템 자원을 효율적으로 사용하여 중요한 작업을 방해하지 않으면서 백그라운드 작업을 처리할 때 유용합니다.

개요

batch는 at 명령군에 속하며, 시스템 부하를 모니터링하여 부하가 낮을 때 작업을 실행하는 스케줄러입니다. 주로 리소스 집약적인 작업을 시스템 사용량이 적은 시간대에 자동으로 처리할 때 사용됩니다. batch는 내부적으로 at 명령의 'b' 큐를 사용하며, 이 큐의 작업은 시스템 부하 평균이 0.8 미만일 때만 실행됩니다.

주요 특징

  • 시스템 부하 기반 실행: 평균 부하 0.8 미만 시 작업 시작
  • at 명령과 유사한 문법으로 작업 예약
  • 백그라운드에서 리소스 집약적인 작업 처리에 적합
  • 작업 완료 시 사용자에게 메일 알림 가능 (at 옵션 활용)

주요 옵션

batch 명령어 자체는 직접적인 명령행 옵션이 많지 않으며, 주로 표준 입력이나 파일에서 실행할 명령을 받습니다. 다음은 batch에 명령을 전달하는 주요 방법들입니다.

명령 입력 방식

생성된 명령어:

명령어를 조합해 보세요.

설명:

`batch` 명령어를 실행합니다.

위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.

사용 예시

batch 명령어를 사용하여 시스템 부하가 낮을 때 특정 작업을 실행하는 방법입니다.

표준 입력으로 간단한 명령 예약

batch
ls -l > /tmp/batch_output.txt
<EOT>

시스템 부하가 낮아지면 현재 디렉토리의 파일 목록을 /tmp/batch_output.txt에 저장합니다.

파이프를 통해 여러 명령 예약

echo -e "echo 'Batch job started at $(date)'\nls -a\necho 'Batch job finished'" | batch

echo 명령을 통해 여러 줄의 명령을 batch에 파이프하여 예약합니다.

스크립트 파일 실행 예약

echo '#!/bin/bash\necho "Hello from batch!" > /tmp/batch_hello.txt\ndate >> /tmp/batch_hello.txt' > my_script.sh
chmod +x my_script.sh
batch -f my_script.sh

my_script.sh 파일을 생성한 후, 해당 스크립트를 batch로 예약합니다. (my_script.sh 파일이 실행 권한을 가지고 있어야 합니다.)

설치

batch 명령어는 `at` 패키지의 일부입니다. 대부분의 리눅스 배포판에 기본적으로 포함되어 있지 않을 수 있으므로, 필요한 경우 다음 명령어를 사용하여 설치할 수 있습니다.

Debian/Ubuntu 기반 시스템

sudo apt update && sudo apt install at

CentOS/RHEL/Fedora 기반 시스템

sudo yum install at

팁 & 주의사항

batch 명령어를 사용할 때 유용한 팁과 주의할 점입니다.

주요 고려사항

  • **부하 기준**: batch는 시스템 부하 평균이 0.8 미만일 때 작업을 시작합니다. 이 값은 `/etc/at.deny` 또는 `/etc/at.allow` 파일과 같은 시스템 설정에 따라 달라질 수 있으며, `atd` 데몬의 설정에 영향을 받습니다.
  • **환경 변수**: batch로 실행되는 작업은 현재 셸의 환경 변수를 상속하지 않을 수 있습니다. 따라서 스크립트 내에서 필요한 경로(PATH)나 기타 환경 변수를 명시적으로 설정하는 것이 좋습니다.
  • **로그 확인**: 작업이 예상대로 실행되지 않거나 오류가 발생할 경우, 시스템 로그(예: `/var/log/syslog`, `/var/log/messages` 또는 `journalctl -u atd`)를 확인하여 문제의 원인을 파악할 수 있습니다.
  • **작업 관리**: `atq` 명령어를 사용하여 예약된 batch 작업을 확인할 수 있으며, `atrm` 명령어를 사용하여 작업을 취소할 수 있습니다.

동일 카테고리 명령어