Computer/Linux

Synology NAS - Goolgle Photo 백업 설정기

B급찍사 2023. 9. 26. 12:24

Synology DS920+를 구매하여 사진 백업 용으로 아주 잘 사용 중이나...

 

결국 하드디스크라는 게 물리적으로 움직이는 장치인지라

아무리 RAID5라고 해도 HDD 1개 터지고 리빌딩 전에 또 안터진다는 보장이 없다. 

 

그렇다고 백업용 NAS를 또 구입하기도 그렇고...

이러한 이유로 무려 원본 백업 무제한을 지원하는 Google Pixel 폰 1세대를 중고로 구입하게 되었다. 

 

금방 할 줄 알았더만 꽤 긴 시간이...

 

가장 먼저 손쉬운 접근을 위하여 픽셀 폰을 SSH 서버로 만들어야 한다. 

안드로이드 어플로도 많기는 한데... 원래도 termux를 사용하기도 했고 그나마 제일 편해보여서 termux 설치하고 시작. 

 

 termux-setup-storage 로 스토리지 셋업하고 

termux-change-repo로 리포지토리를 잡아주면 되는데... 이 간단한 것부터 막히기 시작해서 험난한 길이 시작되었다-_-

 

pkg install openssh 설치가 안돼서 레딧을 엄청 뒤지다가 겨우 해결. 

openssh 설치 후 sshd 실행하면 ssh 서버 접속 가능. 

 

그리고 나서 시놀로지에 ssh로 접속해서 시놀로지 - 픽셀로 scp 스크립트 복제를 돌리려고 하니...

연결이 안됨... ㅋㅋㅋㅋㅋㅋ

 

한참 삽질을 했는데 알고 보니 termux openssh 접속 포트는 22가 아닌 8022. 

방화벽 패키지를 열심히 찾았는데 허탈... ㅋㅋㅋㅋㅋㅋ

 

1차 백업

그리고 나서 scp로 일괄 복사를 시작했으나...

아주 커다란 문제가 2개 있었다.

 

우선 scp로 폴더 하나 잡아서 복사를 때리면 

타겟 쪽에도 소스와 동일한 트리 구조의 폴더들이 주렁주렁 생기고

구글 포토에서 사진이 들어있는 폴더를 감지하면 그걸 수작업으로 일일이 동기화 하겠다고 눌러줘야 하는 아주 귀찮은 일이 기다리고 있었다...

 

결국 1차 백업 분량은 전부 수작업으로 진행.

 

거기다 더 짜증났던 게 여태까지는 시놀로지 Photos UI로 돌려서 몰랐는데 

시놀로지 포토가 썸네일 jpg를 대중소 사이즈로 주렁주렁 생성하고 있었고 그 파일까지 전부 복제를 걸어버리는 바람에

이 작은 파일들이 구글 포토 백업 대기열에 오픈런으로 줄을 서서 복제 속도가 어마어마하게 느려졌다...

 

구글 포토 어플리케이션의 백업 완료된 파일 일괄 삭제 기능으로 지우기는 했다만

속도가 엄청나게 느렸다. 

 

2차 백업 시도 후 실패

그래서 하위 폴더 파일을 찾아주는 find 명령어와 scp를 조합해서 넘기려는 구상을 했는데...

이번에는 자격 증명이 문제였다. 

아까는 자격 증명을 한번만 넣으면 됐는데 find로 파일을 하나씩 넘기는 구조다 보니 

파일 하나 넘어갈 때마다 패스워드를 입력해야 하는.. 현실적으로 불가능한 스크립트였고

Key 인증 방식으로 변경해야 했다. 

 

그런데 이눔의 시놀로지 서버는 ssh-copy-id 명령어가 없었고... 

공개키를 scp로 픽셀에 밀어넣고 그 키를 픽셀의 ~/.ssh/authorized_keys에 등록해줘야 했다...

그래서 하는 김에 파일명에 Syno 어쩌고가 포함되어 있는 썸네일 파일은 복사하지 않고 건너뛰는 스크립트를 chatGPT로 뽑아냈다.

 

 

find . -type f ! -iname "*syno*" -print0 | while IFS= read -r -d '' file; do
    if scp -v -r -P 8022 "$file" Account@IP:/data/data/com.termux/files/home/storage/downloads/"${file##*/}"; then
        echo "File '$file' copied successfully."
    else
        echo "Failed to copy '$file'."
    fi
done

파워쉘이 지원됐으면 훨씬 빨리 했을텐데 리눅스 바보라 너무 오래 걸림...

 

처음에 하고 싶었던 건 시놀로지 나스에서 한 장 가져와서 구글 포토 업로드 완료되면 삭제하는 걸

스크립트로 완전 자동화 하는 거였지만...

 

개발자도 아닌 주제에 거기까지는 도저히 실력이 안돼서 포기하고 중간에 방법을 좀 틀었는데 

이 정도면 그럭저럭 만족한다. 

추가로 오늘 알게된 사실이 구글 픽셀을 통한 업로드가 하루에 15GB 밖에 안된다고 해서

자동화 스크립트를 저기다 대입하면 또 예외 처리도 엄청나게 들어가야 할 것 같기도 하고...

 

단점이라고 한다면

가장 먼저 일일 업로드 제한 15GB일 것이고

두번째로는 픽셀 발열이 어마무시해서 쿨러 없이 쓸 생각은 안하는게 좋다는 것...

 

그래서 첫날은 내가 쓰던 탁상용 USB 선풍기를 틀어주다가 

120mm 쿨러를 하나 사서 틀어주고 있다. 

이제 발열은 해소.

 

2TB니까 엄청나게 오래 걸리겠지... 만 그래도 생각보다는 빠르게 스크립트 완성해서 다행 ㅎㅎ 

반응형