Mac에서 5분마다 자동으로 스크린샷 찍는 방법: cron과 screencapture 완벽 가이드

Mac에서 작업 내용을 주기적으로 기록하고 싶다면 cron과 screencapture를 조합하는 방법이 가장 효율적이에요. 별도의 앱 설치 없이 macOS 기본 기능만으로 구현할 수 있어요.


맥OS 파일 관리자 화면을 보여주는 다크모드 UI와 손으로 든 디바이스


스크립트 파일 만들기


터미널을 열고 다음 명령어로 스크립트 파일을 생성해요:


nano ~/apps/screencapture.sh


파일이 열리면 아래 내용을 입력해요:


#!/bin/bash
PATH=/bin:/usr/bin:/usr/sbin
NOW=$(date +%F_%H-%M-%S)
screencapture -x -D 1 ~/Screenshots/$NOW.png


각 라인의 의미를 살펴보면:


  • PATH 설정으로 cron 환경에서도 명령어를 찾을 수 있게 해요
  • NOW 변수에 현재 날짜와 시간을 저장해요 (예: 2025-01-15_14-30-45)
  • screencapture 명령으로 스크린샷을 찍어요


스크립트 권한 설정과 폴더 생성


저장 후 Control+X, Y, Enter를 눌러 나와요. 그다음 실행 권한을 부여해요:


chmod +x ~/apps/screencapture.sh


스크린샷을 저장할 폴더도 만들어야 해요:


mkdir -p ~/Screenshots
mkdir -p ~/apps


screencapture 명령어 옵션 활용하기


기본 스크립트를 상황에 맞게 수정할 수 있어요. 자주 쓰는 옵션들을 알아볼게요:


# 소리 없이 전체 화면 캡처
screencapture -x ~/Screenshots/$(date +%F_%H-%M-%S).png

# 마우스 커서 포함해서 캡처
screencapture -C -x ~/Screenshots/$(date +%F_%H-%M-%S).png

# 특정 디스플레이만 캡처 (듀얼 모니터 사용시)
screencapture -x -D 2 ~/Screenshots/$(date +%F_%H-%M-%S).png

# JPG 형식으로 저장 (용량 절약)
screencapture -x -t jpg ~/Screenshots/$(date +%F_%H-%M-%S).jpg

# 특정 윈도우만 캡처 (대화형 모드)
screencapture -i -x ~/Screenshots/$(date +%F_%H-%M-%S).png


crontab 설정하기


이제 자동 실행을 위한 cron 설정을 해요. 터미널에서:


crontab -e


vim 에디터가 열리면 i를 눌러 입력 모드로 전환하고 다음 중 하나를 입력해요:


# 5분마다 실행
*/5 * * * * /Users/사용자명/apps/screencapture.sh

# 10분마다 실행
*/10 * * * * /Users/사용자명/apps/screencapture.sh

# 매시 정각마다 실행
0 * * * * /Users/사용자명/apps/screencapture.sh

# 평일 9시-18시 사이 30분마다 실행
*/30 9-18 * * 1-5 /Users/사용자명/apps/screencapture.sh

# 매일 오전 9시, 12시, 오후 3시, 6시에 실행
0 9,12,15,18 * * * /Users/사용자명/apps/screencapture.sh


사용자명 부분은 실제 Mac 사용자 이름으로 바꿔주세요. 확인 방법:


whoami


저장은 ESC 누른 후 :wq 입력하고 Enter를 눌러요.


화면 기록 권한 설정 (필수!)


macOS의 보안 정책 때문에 cron에 화면 기록 권한을 부여해야 해요. 이 단계를 놓치면 검은 화면만 캡처돼요.


  • 시스템 설정 > 개인정보 보호 및 보안 > 화면 및 시스템 오디오 녹화
  • 좌측 하단 자물쇠 클릭해서 잠금 해제
  • '+' 버튼 클릭
  • Command + Shift + G 눌러서 /usr/sbin/cron 입력
  • cron 파일 선택 후 열기


고급 스크립트 예제


더 복잡한 요구사항을 위한 스크립트 예제들이에요:


특정 앱이 실행 중일 때만 캡처


#!/bin/bash
PATH=/bin:/usr/bin:/usr/sbin

# Xcode가 실행 중일 때만 캡처
if pgrep -x "Xcode" > /dev/null; then
    NOW=$(date +%F_%H-%M-%S)
    screencapture -x -D 1 ~/Screenshots/xcode_$NOW.png
fi


용량 관리를 위한 자동 삭제 포함


#!/bin/bash
PATH=/bin:/usr/bin:/usr/sbin

# 스크린샷 캡처
NOW=$(date +%F_%H-%M-%S)
screencapture -x -D 1 ~/Screenshots/$NOW.png

# 7일 이상 된 스크린샷 삭제
find ~/Screenshots -name "*.png" -mtime +7 -delete


클라우드 백업 연동


#!/bin/bash
PATH=/bin:/usr/bin:/usr/sbin

# iCloud Drive에 저장
CLOUD_PATH="$HOME/Library/Mobile Documents/com~apple~CloudDocs/Screenshots"
mkdir -p "$CLOUD_PATH"

NOW=$(date +%F_%H-%M-%S)
screencapture -x -D 1 "$CLOUD_PATH/$NOW.png"


문제 해결 가이드


crontab이 작동하지 않을 때 확인할 사항들이에요:


로그 확인하기


# cron 실행 로그 보기
log show --predicate 'process == "cron"' --last 1h

# 스크립트에 로그 추가
#!/bin/bash
PATH=/bin:/usr/bin:/usr/sbin
exec >> ~/apps/screencapture.log 2>&1
echo "Script started at $(date)"
NOW=$(date +%F_%H-%M-%S)
screencapture -x -D 1 ~/Screenshots/$NOW.png
echo "Screenshot saved: $NOW.png"


경로 문제 해결


# 절대 경로 확인
which screencapture  # 결과: /usr/sbin/screencapture

# 홈 디렉토리 확인
echo $HOME  # 결과: /Users/사용자명


실무 활용 팁


작업 시간 추적용으로 활용한다면 파일명에 프로젝트명을 포함시키는 것도 좋아요:


#!/bin/bash
PATH=/bin:/usr/bin:/usr/sbin

# 현재 작업 중인 Git 브랜치명 가져오기
BRANCH=$(cd ~/workspace/myproject && git branch --show-current 2>/dev/null || echo "no-git")
NOW=$(date +%F_%H-%M-%S)

screencapture -x -D 1 ~/Screenshots/${BRANCH}_${NOW}.png


스크린샷 분석을 위한 메타데이터 저장:


#!/bin/bash
PATH=/bin:/usr/bin:/usr/sbin

NOW=$(date +%F_%H-%M-%S)
SCREENSHOT="~/Screenshots/$NOW.png"

# 스크린샷 캡처
screencapture -x -D 1 "$SCREENSHOT"

# 현재 활성 앱 정보 저장
osascript -e 'tell application "System Events" to get name of first application process whose frontmost is true' > ~/Screenshots/$NOW.txt


파일 정리와 압축을 자동화하려면:


#!/bin/bash
PATH=/bin:/usr/bin:/usr/sbin

# 일별 폴더 생성
TODAY=$(date +%Y-%m-%d)
mkdir -p ~/Screenshots/$TODAY

NOW=$(date +%F_%H-%M-%S)
screencapture -x -D 1 ~/Screenshots/$TODAY/$NOW.png

# 어제 폴더 압축
YESTERDAY=$(date -v -1d +%Y-%m-%d)
if [ -d ~/Screenshots/$YESTERDAY ]; then
    tar -czf ~/Screenshots/$YESTERDAY.tar.gz -C ~/Screenshots $YESTERDAY
    rm -rf ~/Screenshots/$YESTERDAY
fi


이렇게 설정하면 Mac에서 자동으로 스크린샷을 찍는 시스템이 완성돼요. 작업 기록 관리, 프로젝트 진행 상황 추적, 원격 모니터링 등 다양한 용도로 활용할 수 있어요.


매일 아침 키워드별 뉴스를 슬랙에 자동으로 받는 n8n 워크플로 만들기