Skip to content
On this page

2021-01-10

Title
2021-01-10
Category
2021
Tags
Aliases
2021-01-10
Created
3 years ago
Updated
last year

Crontab으로 매일 스크린샷 관리하기

환경

  • macOS + zsh

  • Google Drive File Stream (무제한 용량)

목적

  • macOS 용량 부족

  • 찍은 스크린샷이나 동영상 보관

  • 하루마다 스크린샷 폴더에 파일이 쌓이는 것 방지

  • Dock에서 바로 사용할 수 있게 관리

스크린샷 설정

  • 스크린샷의 저장 위치를 구글 드라이브 파일 스트림의 특정 폴더로 지정

쉘 스크립트

  • screenshots 폴더에 파일이 있으면

    • 모두 prev-screenshots로 복사한다.

    • screenshots 폴더의 파일을 모두 지운다 (지울 때 confirm [y/n] 메시지 띄우지않게 옵션 설정)

  • 없으면 에코

~/scripts/mv_screenshots.sh

bash
#!/bin/zsh

target=/Volumes/GoogleDrive/내\ 드라이브/이미지/screenshots
archive=/Volumes/GoogleDrive/내\ 드라이브/이미지/prev-screenshots

if find "$target" -mindepth 1 -print -quit 2>/dev/null | grep -q .; then
    setopt localoptions rmstarsilent
    cp -R "$target" "$archive/`date +\%Y-\%m-\%d`"
    rm "$target"/*
else
    echo "Target '$target' is empty"
fi
#!/bin/zsh

target=/Volumes/GoogleDrive/내\ 드라이브/이미지/screenshots
archive=/Volumes/GoogleDrive/내\ 드라이브/이미지/prev-screenshots

if find "$target" -mindepth 1 -print -quit 2>/dev/null | grep -q .; then
    setopt localoptions rmstarsilent
    cp -R "$target" "$archive/`date +\%Y-\%m-\%d`"
    rm "$target"/*
else
    echo "Target '$target' is empty"
fi

Bash checking if folder has contents

Why does rm -f ask me for confirmation on zsh?

크론탭 설정

  • 매일 오후 11:30에 쉘 스크립트를 실행하고 실행한 결과를 당일의 로그 파일로 기록한다.

crontab -e

bash
30 23 * * * zsh ~/scripts/mv_screenshots.sh >> ~/log/job_`date +\%Y-\%m-\%d`.log 2>&1
30 23 * * * zsh ~/scripts/mv_screenshots.sh >> ~/log/job_`date +\%Y-\%m-\%d`.log 2>&1

작업 스케쥴러 크론(Cron) 간단 사용법

Crontab.guru - The cron schedule expression editor

Released under the MIT License.