본문으로 바로가기
반응형

맥에서 스크린샷을 찍기 위해서는 Ctrl + Shift + 3 (전체화면 캡처) 단축키를 사용하면 된다.

터미널에서 명령어를 이용해서 스크린샷을 찍으려면 screencapture 명령어를 사용하면 된다.

예를들어, 전체화면을 캡처하여 바탕화면에 저장하고 싶다면, 터미널에서 아래의 명령어를 사용하면 된다.

 

screencapture /Users/사용자명/Desktop/파일명.png

 

여기까지는 아주 심플. 하지만 일정간격을 두고 자동으로 스크린샷을 찍으려고 하면 몇가지 문제가 있다.

1. screencapture 명령어를 사용하면, 단축키로 캡처할때와 동일하게 "찰칵" 하는 효과음이 발생한다.
2. 터미널에서 직접 명령어를 실행하면 화면이 정상적으로 캡처되지만, 스크립트를 만들어 실행할 경우 배경화면만 캡처된다.
3. 파일명을 직접 지정해주어야 하기 때문에, 차례대로 저장하려면 스크립트를 만들어 주어야 한다.

 

위 문제를 해결하기 위해서 다음과 같이 진행해 본다.

 

1. 스크린샷 스크립트 만들기

#!/bin/bash
PATH=/bin:/usr/bin:/usr/sbin  # screencapture 명령을 실행하기 위한 기본경로 설정
NOW=`date +%F_%H-%M-%S`       # 파일명으로 사용할 현재날짜-시간 텍스트를 NOW 변수에 저장

# 스크린샷 실행
screencapture -x -D 1 -C /경로명/$NOW.png

# screencapture 옵션 설명
# -x   : 스크린샷 할 때 소리 없이 실행
# -D 1 : 첫번째 디스플레이만 캡처
# -C   : 경로 지정

위의 내용을 원하는 위치에 저장해 둔다.

나는 /Users/사용자명/apps/screencapture.sh 로 저장했다.

저장한 후 터미널에서 아래의 명령어를 입력하여 실행 권한을 부여한다.

chmod +x /Users/사용자명/apps/screencapture.sh

 

2. 자동실행 설정하기 (crontab 이용)

맥은 유닉스 기반이므로 crontab을 사용할 수 있다. 

terminal에서 crontab -e 명령을 실행시킨 후 아래와 같이 자동실행을 설정한다.

*/5  *  *  *  *  /Users/사용자명/apps/screencapture.sh # 5분 간격으로 실행

 

3. cron의 화면기록 권한 부여

위처럼 자동실행을 세팅해놓고 나면, 지정한 디렉토리에 스크린샷이 하나하나 쌓이게 되는데, 기대하는 것과 달리 실제 화면이 아니라 배경화면만 캡처되고 있는 것을 확인할 수 있을 것이다.


기대하는 결과
실제 결과

이렇게 되는 이유는 cron 프로세스가 실제 사용자 화면에 접근할 수 있는 권한이 없기 때문이다.

아래와 같이 설정 > 개인정보 보호 및 보안 > 화면 기록 메뉴에서 cron의 화면 기록 권한을 허용해 준다.

여기까지 설정을 마치고 나면, 지정한 폴더에 정상적으로 차곡차곡 저장되는 스크린샷을 확인할 수 있다.

반응형