시놀로지 나스 작업 스케줄러 사용법 — AI로 자동화 스크립트 만들기

DSM 7.4 기준 / 2026-09 확인

시놀로지 NAS 작업 스케줄러는 DSM 제어판에서 셸 스크립트를 특정 시간에 자동 실행할 수 있는 기능입니다. 휴지통 비우기나 S.M.A.R.T. 검사 같은 기본 작업은 DSM 자체 기능으로도 설정할 수 있지만, 작업 스케줄러가 진짜 필요한 건 DSM에서 기본 제공하지 않는 자동화를 만들 때입니다.

문제는 대부분의 NAS 사용자가 셸 스크립트를 직접 작성하기 어렵다는 점입니다. 이 글에서는 작업 스케줄러 기본 설정 방법과 함께, AI(ChatGPT, Claude 등)에게 프롬프트를 작성해서 시놀로지 NAS에 맞는 자동화 스크립트를 만드는 방법을 정리합니다.

작업 스케줄러 기본 사용법

DSM → 제어판 → 작업 스케줄러에서 설정합니다.

새 작업 만들기

  1. 생성 → 예약된 작업 → 사용자 정의 스크립트를 선택합니다
  2. 일반 탭에서 작업 이름을 입력하고, 사용자를 root로 설정합니다
  3. 일정 탭에서 실행 주기를 설정합니다 (매일, 매주, 매월 등)
  4. 작업 설정 탭에서 실행할 스크립트를 입력합니다
  5. (선택) 이메일 알림을 설정하면 실행 결과를 메일로 받을 수 있습니다

스크립트를 직접 입력하거나, NAS에 저장한 .sh 파일의 경로를 지정할 수 있습니다. 파일 경로 방식은 스크립트가 길어질 때 관리하기 편합니다.

# 방법 1: 직접 입력
echo "Hello" >> /volume1/homes/admin/log.txt

# 방법 2: 스크립트 파일 실행
bash /volume1/scripts/my-task.sh

DSM 기본 기능으로 되는 것 vs 안 되는 것

작업 스케줄러를 쓰기 전에, DSM 자체 기능으로 해결되는지부터 확인하세요.

자동화 작업DSM 기본 기능작업 스케줄러 필요
휴지통 자동 비우기제어판 → 공유 폴더 → 휴지통 설정불필요
S.M.A.R.T. 검사저장소 관리자 → 자동 테스트불필요
스냅샷 자동 생성스냅샷 복제 → 일정 설정불필요
Hyper Backup 자동 백업Hyper Backup 일정 설정불필요
특정 시간에 NAS 재시작작업 스케줄러 기본 메뉴불필요
30일 지난 로그 파일 삭제❌ 기본 기능 없음필요
특정 폴더 용량이 90% 넘으면 알림필요
공유 폴더 변경 내역을 매일 기록필요
외부 서비스 API 호출 (텔레그램 등)필요
Docker 컨테이너 상태 점검필요

“작업 스케줄러 필요” 항목은 셸 스크립트를 직접 작성해야 합니다. 여기서 AI를 활용하면 스크립트 작성 경험이 없어도 원하는 자동화를 만들 수 있습니다.

AI로 자동화 스크립트 만드는 방법

ChatGPT, Claude 같은 AI에게 아래 형식으로 프롬프트를 작성하면, 시놀로지 NAS 환경에 맞는 셸 스크립트를 생성할 수 있습니다.

프롬프트 작성 공식

아래 5가지를 포함하면 대부분의 경우 바로 사용 가능한 스크립트가 나옵니다.

항목설명예시
환경시놀로지 NAS라는 점, DSM 버전“시놀로지 NAS DSM 7.4 환경”
목적무엇을 자동화하고 싶은지“30일 지난 파일 삭제”
대상 경로작업 대상 폴더“/volume1/shared/temp”
실행 조건조건이 있다면 명시“용량이 80% 넘을 때만”
결과 확인로그 기록 또는 알림 방법“결과를 로그 파일에 기록”

실제 프롬프트 예시와 결과

예시 1: 오래된 파일 자동 삭제

프롬프트:

시놀로지 NAS DSM 7.4 작업 스케줄러에서 실행할 bash 스크립트를 작성해줘.

목적: /volume1/shared/temp 폴더에서 90일이 지난 파일을 자동으로 삭제
조건: 하위 폴더까지 포함, 빈 폴더는 삭제하지 않음
결과: 삭제된 파일 목록을 /volume1/shared/logs/cleanup.log에 날짜와 함께 기록
주의: rm -rf 같은 위험한 명령은 쓰지 말 것

AI가 생성하는 스크립트 예시:

#!/bin/bash
# 90일 지난 파일 자동 삭제 스크립트
TARGET_DIR="/volume1/shared/temp"
LOG_FILE="/volume1/shared/logs/cleanup.log"
DAYS=90

echo "===== $(date '+%Y-%m-%d %H:%M:%S') 정리 시작 =====" >> "$LOG_FILE"

# 90일 지난 파일 찾아서 삭제 (파일만, 폴더 제외)
find "$TARGET_DIR" -type f -mtime +$DAYS -print -delete >> "$LOG_FILE" 2>&1

echo "===== 정리 완료 =====" >> "$LOG_FILE"
echo "" >> "$LOG_FILE"

예시 2: 특정 폴더 용량 감시 + 텔레그램 알림

프롬프트:

시놀로지 NAS DSM 7.4 작업 스케줄러용 bash 스크립트를 작성해줘.

목적: /volume1 볼륨 사용률이 85%를 넘으면 텔레그램으로 알림 전송
텔레그램 봇 토큰: BOT_TOKEN_HERE
텔레그램 채팅 ID: CHAT_ID_HERE
알림 내용: 현재 사용률 퍼센트와 남은 용량 표시
실행 주기: 매일 오전 9시 (일정은 작업 스케줄러에서 설정할 예정)
주의: curl 사용, 민감 정보는 변수로 분리

AI가 생성하는 스크립트 예시:

#!/bin/bash
# 볼륨 사용률 감시 + 텔레그램 알림
BOT_TOKEN="BOT_TOKEN_HERE"
CHAT_ID="CHAT_ID_HERE"
THRESHOLD=85

# 사용률 계산
USAGE=$(df /volume1 | awk 'NR==2 {gsub(/%/,""); print $5}')
AVAIL=$(df -h /volume1 | awk 'NR==2 {print $4}')

if [ "$USAGE" -ge "$THRESHOLD" ]; then
    MESSAGE="⚠️ NAS 저장 공간 경고%0A사용률: ${USAGE}%%0A남은 용량: ${AVAIL}"
    curl -s -X POST "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage" \
        -d "chat_id=${CHAT_ID}" \
        -d "text=${MESSAGE}" \
        -d "parse_mode=HTML" > /dev/null 2>&1
fi

예시 3: Docker 컨테이너 상태 점검

프롬프트:

시놀로지 NAS DSM 7.4 작업 스케줄러용 bash 스크립트를 작성해줘.

목적: 실행 중이어야 할 Docker 컨테이너가 꺼져 있으면 자동으로 재시작
대상 컨테이너 이름: n8n, homepage
결과: 재시작한 컨테이너 이름을 로그에 기록
주의: 이미 실행 중인 컨테이너는 건드리지 않을 것

AI가 생성하는 스크립트 예시:

#!/bin/bash
# Docker 컨테이너 자동 재시작
LOG_FILE="/volume1/shared/logs/docker-watch.log"
CONTAINERS=("n8n" "homepage")

for CONTAINER in "${CONTAINERS[@]}"; do
    STATUS=$(docker inspect -f '{{.State.Running}}' "$CONTAINER" 2>/dev/null)
    if [ "$STATUS" != "true" ]; then
        echo "$(date '+%Y-%m-%d %H:%M:%S') $CONTAINER 중지 감지, 재시작 시도" >> "$LOG_FILE"
        docker start "$CONTAINER" >> "$LOG_FILE" 2>&1
    fi
done

예시 4: 공유 폴더 변경 내역 일일 보고

프롬프트:

시놀로지 NAS DSM 7.4 작업 스케줄러용 bash 스크립트를 작성해줘.

목적: /volume1/company 폴더에서 최근 24시간 이내에 추가되거나 수정된 파일 목록을 기록
결과: /volume1/shared/logs/daily-changes.log 파일에 날짜별로 기록
포함 정보: 파일 경로, 수정 시간, 파일 크기

AI가 생성하는 스크립트 예시:

#!/bin/bash
# 최근 24시간 파일 변경 내역 기록
TARGET="/volume1/company"
LOG="/volume1/shared/logs/daily-changes.log"

echo "===== $(date '+%Y-%m-%d') 변경 파일 =====" >> "$LOG"
find "$TARGET" -type f -mtime -1 -printf '%Tc  %s bytes  %p\n' >> "$LOG" 2>/dev/null
COUNT=$(find "$TARGET" -type f -mtime -1 | wc -l)
echo "총 ${COUNT}개 파일 변경됨" >> "$LOG"
echo "" >> "$LOG"

스크립트 등록 절차

AI가 생성한 스크립트를 작업 스케줄러에 등록하는 순서입니다.

  1. AI가 생성한 스크립트에서 경로, 토큰 등 변수를 자신의 환경에 맞게 수정합니다
  2. DSM → 제어판 → 작업 스케줄러 → 생성 → 예약된 작업 → 사용자 정의 스크립트
  3. 작업 이름을 알아보기 쉽게 입력합니다 (예: “temp폴더 90일 정리”)
  4. 사용자를 root로 설정합니다
  5. 일정 탭에서 실행 주기를 설정합니다
  6. 작업 설정 탭에 스크립트를 붙여넣습니다
  7. 먼저 “실행” 버튼으로 수동 테스트한 후, 문제가 없으면 일정을 활성화합니다

주의사항

AI가 생성한 스크립트를 그대로 사용하면 예상치 못한 문제가 생길 수 있습니다. 아래 주의사항을 반드시 확인하세요.

1. 반드시 수동 실행으로 먼저 테스트

작업 스케줄러에 등록한 뒤, 일정을 활성화하기 전에 “실행” 버튼으로 수동 테스트를 먼저 하세요. 이메일 알림을 설정해두면 실행 결과(출력 내용과 오류)를 메일로 받을 수 있습니다.

2. rm, rmdir 같은 삭제 명령 주의

AI에게 “파일을 삭제하는 스크립트”를 요청하면 rm -rf 같은 위험한 명령이 포함될 수 있습니다. 프롬프트에 “rm -rf 사용 금지”를 명시하고, 생성된 스크립트에서 삭제 대상 경로가 정확한지 반드시 확인하세요. 경로 변수가 비어 있으면 루트 디렉토리를 삭제할 수도 있습니다.

# 위험한 예시 — $TARGET이 비어 있으면 / 전체를 삭제
rm -rf $TARGET/*

# 안전한 예시 — 변수가 비어 있으면 중단
if [ -z "$TARGET" ]; then echo "경로 미설정"; exit 1; fi

3. root 권한 실행의 위험

작업 스케줄러에서 root로 실행하는 스크립트는 NAS의 모든 파일에 접근할 수 있습니다. 스크립트에 오류가 있으면 시스템 파일까지 영향을 받을 수 있으므로, 삭제/이동 대상 경로를 /volume1/ 이하로 한정하세요.

4. DSM 업데이트 시 스크립트 경로 확인

DSM 메이저 업데이트 후 일부 명령어 경로나 Docker 설정이 변경될 수 있습니다. 업데이트 후에는 등록된 작업이 정상적으로 실행되는지 확인하세요.

5. 민감 정보 관리

텔레그램 봇 토큰, API 키 등 민감 정보는 스크립트에 직접 넣지 말고, 별도 파일로 분리해서 읽어오는 것이 안전합니다.

# 민감 정보 분리 예시
# /volume1/scripts/.env 파일에 저장
BOT_TOKEN=12345:ABCDE
CHAT_ID=67890

# 스크립트에서 읽어오기
source /volume1/scripts/.env

6. AI 생성 스크립트 검증 체크리스트

AI가 생성한 스크립트를 등록하기 전에 아래 항목을 확인하세요.

확인 항목체크
대상 경로가 정확한가 (오타, 잘못된 볼륨 번호)
rm, rmdir 등 삭제 명령이 있는 경우 대상이 맞는가
변수가 비어 있을 때 안전 장치가 있는가
로그 파일 경로가 존재하는 폴더인가
토큰, 비밀번호 같은 민감 정보가 하드코딩되어 있지 않은가
수동 실행으로 테스트했는가

프롬프트 템플릿

아래 템플릿을 복사해서 AI에게 전달하면 됩니다. 괄호 안의 내용만 자신의 상황에 맞게 수정하세요.

시놀로지 NAS DSM 7.4 작업 스케줄러에서 root 권한으로 실행할 bash 스크립트를 작성해줘.

[환경]
- 시놀로지 NAS, DSM 7.4
- 볼륨 경로: /volume1
- (Docker 사용 여부, 설치된 패키지 등 추가 정보)

[목적]
- (구체적으로 무엇을 자동화하고 싶은지)

[대상]
- (작업 대상 폴더 경로나 서비스)

[조건]
- (실행 조건이 있다면: 특정 용량 이상일 때, 특정 요일에만 등)

[결과 확인]
- (로그 기록, 텔레그램 알림, 이메일 등)

[주의사항]
- rm -rf 사용 금지
- 변수가 비어 있을 때 안전 장치 포함
- 민감 정보는 변수로 분리
- 시놀로지 NAS에서 사용 가능한 명령어만 사용할 것

마무리

작업 스케줄러는 DSM 기본 기능으로 해결할 수 없는 자동화를 구현할 때 가장 유용합니다. 셸 스크립트를 직접 작성하기 어렵다면 AI에게 환경, 목적, 대상 경로, 조건, 결과 확인 방법을 구체적으로 전달하세요. 대부분의 경우 바로 사용 가능한 스크립트를 받을 수 있습니다. 단, 생성된 스크립트는 반드시 경로와 삭제 명령을 확인하고, 수동 실행으로 먼저 테스트한 후에 일정을 활성화하세요.

NAS 자동 점검 기본 설정은 자동 점검 설정 4가지 글을, 텔레그램 알림 연동은 텔레그램 알림 시스템 만들기 글을 참고하세요. 자동화 스크립트 구성에 도움이 필요하시면 상담 문의에서 원격 지원을 요청하실 수 있습니다.

NAS 구매·설치·세팅, 전문가에게 맡기세요
모델 선정부터 초기 세팅, 외부 접속, 백업 구성까지 원스톱으로 도와드립니다.