[shell] Shell 스크립트의 실행 흐름을 모니터링

Shell 스크립트는 시스템 관리 및 자동화 작업에 널리 사용되며, 스크립트가 실행 중인 과정을 실시간으로 모니터링하는 것은 매우 유용합니다. 이 글에서는 Linux나 macOS에서 Shell 스크립트 실행을 모니터링하고 디버깅하는 방법에 대해 알아보겠습니다.

1. set -x 명령어

Shell 스크립트 파일 내에서 set -x 명령어를 사용하면 스크립트 실행 과정에서 각 줄마다 디버깅 정보를 출력합니다. 이를 통해 스크립트가 실행되는 동안 변수의 값이나 명령어의 결과 등을 실시간으로 확인할 수 있습니다.

예시:

#!/bin/bash
set -x
# 스크립트 내용

2. ps 명령어

스크립트 실행 중에 해당 프로세스를 모니터링하기 위해 ps 명령어를 사용할 수 있습니다. 다음과 같이 실행하여 특정 스크립트 프로세스를 모니터링할 수 있습니다.

ps -ef | grep script_name.sh

3. top 명령어

top 명령어를 사용하면 현재 실행 중인 모든 프로세스를 실시간으로 모니터링할 수 있습니다. 스크립트 실행 중에 top 명령어를 실행하여 해당 스크립트 프로세스의 상태 및 자원 사용량을 확인할 수 있습니다.

예시:

top

4. strace 명령어

strace 명령어를 사용하면 프로세스 내에서 실행되는 시스템 호출 및 시그널을 추적할 수 있습니다. 이를 통해 어떤 명령어가 실행되고 있는지, 해당 명령어가 어떤 파일 또는 자원을 사용하고 있는지 등을 확인할 수 있습니다.

예시:

strace -p <pid>

위의 방법들을 통해 Shell 스크립트의 실행 흐름을 실시간으로 모니터링하여 디버깅하는 것이 가능합니다.

참고 자료: