시놀로지 도커 Redroid - Google Photos 미디어 갱신 방법

image.png

이전 시리즈 글에서 리드로이드 구성을 성공 하셨다면

이제 미디어 파일을 백업 하기위한 설정을 해줘야겠죠

여러가지 방법이 있겠지만

파일 스테이션을 통해 리드로이드 내부 폴더에 접근이 가능하기 때문에

시놀 포토나 이미치등의 이미지 파일을

동기화나 복사등 여러가지 방법을 통해 리드로이드 미디어 폴더에 넣는 게 가능합니다

이 부분은 스크립트, 작업 스케쥴러, 파이썬 코드, 도커 컨테이너등등

원하는 방법을 이용해 구성이 가능하겠습니다

그런데 문제는 파일 스테이션을 통해 이미지를 리드로이드 미디어 폴더에 넣었을 때

리드로이드 포토 앱에서 바로 인식이 안됩니다

리드로이드 컨테이너를 재시작하거나 다른 방법을 사용해야 하죠

우선 첫번째는

방법 1: ADB 사용 (외부 PC에서)

Mac/PC 터미널에서 실행:

# NAS의 Redroid에 연결
adb connect <NAS_IP>:5578

# 미디어 스캔 실행
adb -s <NAS_IP>:5578 shell am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN_FILE -d file:///sdcard/

# 특정 폴더만 스캔
adb -s <NAS_IP>:5578 shell am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN_FILE -d file:///sdcard/DCIM/

복사

외부에서 adb를 이용해서 미디어 파일 스캔을 진행하는 겁니다

외부의 haos나 n8n 같은 서비스등을 이용해서 컨트롤 가능 하겠죠

두번째는

방법 2: SSH에서 직접 실행 (NAS 내부)

# SSH 접속
ssh root@<NAS_IP>

# 미디어 스캔 실행 (반드시 su shell -c 사용)
docker exec redroid su shell -c 'am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN_FILE -d file:///sdcard/'

# 특정 폴더만 스캔
docker exec redroid su shell -c 'am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN_FILE -d file:///sdcard/Pictures/'

복사

나스 내부에서 미디어 스캔을 실행하는 방법입니다

이 방법은 스크립트를 만들어서 실행하거나 적업 스케쥴러를 통해 실행이 가능하겠네요

방법 3: 스크립트 생성 (자동화용)

# SSH에서 스크립트 생성
cat > /volume1/docker/redroid/scan-media.sh << 'EOF'
#!/bin/bash
# Redroid 미디어 스캔 스크립트
# 사용법: ./scan-media.sh [폴더경로]
# 예시: ./scan-media.sh /sdcard/Pictures/

CONTAINER_NAME="redroid"
SCAN_PATH="${1:-/sdcard/}"

# 컨테이너 실행 중인지 확인
if docker ps --format '{{.Names}}' | grep -q "^${CONTAINER_NAME}$"; then
    RESULT=$(docker exec ${CONTAINER_NAME} su shell -c "am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN_FILE -d file://${SCAN_PATH}" 2>&1)
    
    if echo "$RESULT" | grep -q "Broadcast completed"; then
        echo "$(date '+%Y-%m-%d %H:%M:%S'): 미디어 스캔 완료 - ${SCAN_PATH}"
    else
        echo "$(date '+%Y-%m-%d %H:%M:%S'): 스캔 실패 - ${RESULT}"
        exit 1
    fi
else
    echo "$(date '+%Y-%m-%d %H:%M:%S'): 컨테이너 ${CONTAINER_NAME}가 실행 중이 아닙니다"
    exit 1
fi
EOF

# 실행 권한 부여
chmod +x /volume1/docker/redroid/scan-media.sh


스크립트 테스트:

# 전체 스캔
/volume1/docker/redroid/scan-media.sh

# 특정 폴더만 스캔
/volume1/docker/redroid/scan-media.sh /sdcard/DCIM/

복사

스크립트를 만들어서 새벽 시간에 스캔을 돌리면 백업이 진행 될 거 같습니다만

스크립트는 테스트가 안됐으니 사용하실 분들은 테스트 해보시기 바랍니다

방법 4: 작업 스케줄러로 자동화 (DSM)

주기적으로 미디어 스캔을 실행하여 새 사진을 자동 백업합니다.

설정 방법

1. **DSM** → **제어판** → **작업 스케줄러**

2. **생성** → **예약된 작업** → **사용자 정의 스크립트**

3. **일반** 탭:
   - 작업: `Redroid 미디어 스캔`
   - 사용자: `root`
   - 활성화됨: ✅ 체크

4. **일정** 탭 (원하는 주기 선택):
   
   | 주기 | 설정 예시 |
   |------|---------|
   | 매시간 | 날짜: 매일, 반복: 매 1시간 |
   | 매 30분 | 날짜: 매일, 반복: 매 30분 |
   | 매일 1회 | 날짜: 매일, 시간: 03:00 |

5. **작업 설정** 탭:
   - 알림 보내기: 비정상 종료 시에만 (선택사항)
   - 사용자 정의 스크립트:
     ```bash
     /volume1/docker/redroid/scan-media.sh
     ```

로그 확인

작업 실행 로그를 파일로 저장하려면:

# 스크립트 수정 (로그 파일 추가)
cat > /volume1/docker/redroid/scan-media.sh << 'EOF'
#!/bin/bash
# Redroid 미디어 스캔 스크립트 (로그 포함)

CONTAINER_NAME="redroid"
SCAN_PATH="${1:-/sdcard/}"
LOG_FILE="/volume1/docker/redroid/scan-media.log"

log() {
    echo "$(date '+%Y-%m-%d %H:%M:%S'): $1" | tee -a "$LOG_FILE"
}

# 로그 파일 크기 관리 (1MB 초과 시 정리)
if [ -f "$LOG_FILE" ] && [ $(stat -c%s "$LOG_FILE" 2>/dev/null || stat -f%z "$LOG_FILE") -gt 1048576 ]; then
    tail -100 "$LOG_FILE" > "${LOG_FILE}.tmp" && mv "${LOG_FILE}.tmp" "$LOG_FILE"
fi

# 컨테이너 실행 중인지 확인
if docker ps --format '{{.Names}}' | grep -q "^${CONTAINER_NAME}$"; then
    RESULT=$(docker exec ${CONTAINER_NAME} su shell -c "am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN_FILE -d file://${SCAN_PATH}" 2>&1)
    
    if echo "$RESULT" | grep -q "Broadcast completed"; then
        log "미디어 스캔 완료 - ${SCAN_PATH}"
    else
        log "스캔 실패 - ${RESULT}"
        exit 1
    fi
else
    log "컨테이너 ${CONTAINER_NAME}가 실행 중이 아닙니다"
    exit 1
fi
EOF

chmod +x /volume1/docker/redroid/scan-media.sh


로그 확인:

# 최근 로그 확인
tail -20 /volume1/docker/redroid/scan-media.log

복사

작업 스케쥴러를 통해 스크립트 실행도 가능하겠죠

스크립트와 작업 스케쥴러는 실제 테스트가 진행되지 않았으니

adb나 ssh 명령어를 통해 직접 스크립트를 작성 하시거나 작업 스케쥴러 등록을 해보시면 될 거 같습니다

아래 스샷들은 SSH(adb) 명령어 테스트 스샷 입니다

스크린샷 2025-12-16 16.38.45.png

파일 스테이션을 통해 이미지 파일 하나를 올렸습니다만

스크린샷 2025-12-16 16.39.01.png

scrcpy 화면에서 포토를 실행 했을 때 새로 추가된 이미지가 보이지 않습니다

스크린샷 2025-12-16 16.39.34.png

SSH 상(adb도 동일)에서 명령어를 실행 해주면

스크린샷 2025-12-16 16.39.49.png

scrcpy로 접속 했을 때 새로 추가한 파일이 보입니다

스크린샷 2025-12-16 16.42.12.png

온라인에서 확인 했을 때도 백업이 잘 됐습니다

스크린샷 2025-12-16 19.05.44.png

저장용량도 사용량 0B 잘 유지되고 있습니다

참고로 중간에 scrcpy 를 실행한 이유는 확인 스샷을 찍기 위해 실행한 거고요

scrcpy 실행 없이 SSH나 adb 명령어 실행 후 온라인 구글 포토를 확인 하시면 백업이 돼있습니다

스크린샷 2025-12-16 17.18.49.png

작업이 없을 때는 n100 네이티브 기준 CPU 1% 정도를 사용하네요

그냥 쭉 켜두고 사용하면서 파일을 직접 업로드 하거나 폴더 동기화 후

새벽에 한 번씩 스캔 해주면 될 거 같습니다

물론 많은 이미지를 한 번에 백업 하게 되면 어떻게 될지는 확인 못해봤습니다

도커에서 실행 된다는 한계 때문에 메모리나 cpu 사용량 초과로 다운 될 수도 있고

그냥 시간이 오래 걸리기만 하고 문제 없을 수도 있고

저는 사진이 많지 않아서 확인이 안되네요

사용하실 때 주의하시길 바랍니다

Read more

시놀로지 도커에 openclaw 설치하기

오픈클로를 도커에 설치하는 방법을 문의하신 분이 계셔서 작성 해봅니다 현재 오픈클로는 나온지 얼마 안됐고 계속 업데이트가 되고 있는 상황이기 때문에 설치 방법이 달라질 수 있습니다 Docker - OpenClaw https://docs.openclaw.ai/install/docker 제 개인적인 의견은 공식 문서를 참고하시는 걸 추천 드립니다 우선 시놀로지에 설치 하기 위해서는 패키지 센터에서

By 빨간물약

GLM-5 모델 출시와 함께 가격인상

https://svrforum.com/software/2992940 얼마 전에 위 링크 글을 통해 1년 4만원 결제로 상급 모델 사용이 가능하다고 알려드렸던 GLM에서 5버전 출시와 함께 가격 인상을 한다는 이메일이 왔네요 다행히 기존에 이미 사용하는 사람들은 상관 없다고 합니다 내용은 11일 부터 인상이라는데 시차 때문인지 아직 할인된 가격이 적용 되는 거 같습니다 사용을

By 빨간물약

Openclaw를 시놀로지 도커에 설치 해봤습니다

wtr pro n100 네이티브 헤놀에 설치 했습니다 (꺼져있는 CLI 컨테이너는 CLI 접속 시에만 동작 합니다) 어차피 api를 사용하니 도커도 괜찮겠다 싶어서 시도 해봤는데 간단한 문답은 자원 소모가 거의 없네요 텔레그램과 대시보드도 잘 되고 SSH 접속을 통한 CLI 설정도 잘 됩니다 GLM-4.7 API를 사용하는 거라 일반적인 대화 성능은 맥미니랑 크게

By 빨간물약