본문 바로가기

취미, 관심/NAS, Server

[Home Assistant, Synology] 하이퍼백업 종료 후 HAOS에서 외장하드 끄기

시놀로지의 데이터를 외장하드로 백업하시는 분들이 많을겁니다. 

그리고 이 생각 하셨을거에요.

 

백업이 끝나면 USB 마운트 해제까지는 알아서 하는데..

그럼 백업할때 외장하드 켜고, 끝나면 외장하드 끄는건 안될까?

 

물론, 수동으로 하면 되지만.. 귀찮잖아요?

 

그래서 기존에는 아래의 방법으로 사용했어요.

편의상 02:00에 데이터 백업을 시작한다고 가정합니다.

 

스마트플러그를 외장하드의 전원에 물립니다.

01:55에 플러그를 켭니다(외장하드 ON)

02:00에 백업이 시작됩니다.

 

대충 백업시간을 확인합니다. 최초백업 이후의 백업은 그리 오래 걸리지 않으니까요..

제경우 30분안에 대부분 끝나서, 넉넉하게 1시간후 스마트플러그를 끕니다.

03:00에 끄는거죠.

 

이러면 문제가 되는게, 백업이 길어질때입니다. 50분정도 내에 작업이 끝나면 상관없지만, 직업이 끝나지도 않았는데 하드를 꺼버리면..?

백업하려고 돌린건데 백업이 백업이 아니게 되는 상황이 될 수 있다는거죠.

 

그래서, 고수님들이 많은 home assistant 카페에 글을 올렸더니, 정말 감사하게도 부족한 저를 끌고 원하는 바를 이루게 해주셔서, 정리하는 차원에서. 또 저처럼 같은 용도로 사용하실 분을 위해 글을 남겨봅니다.

물론, 저도 잘 몰라서 문제가 생기면 해결법 모릅니다(...)

HA카페의 즐거운흐루되셔요 님 너무 감사합니다.

 

사용환경

DS1821+ (DSM 7.1) / VMM Home Assistant OS (Core 2022.6.6, Supervisor 2022.05.3, HAOS 8.2) / 그리고 Home Assistant에 연결된 스마트플러그(Tapo제품이라 전력량 확인이 안되는 제품입니다 -_-)

 

준비

일단 HA의 Command Line 센서를 만들기 위해 HA에서 나스로 SSH접근이 가능해야 합니다.

동일망이라면 내부망에 대해 SSH 허용을 해주시고, 외부망이라면 해당 IP에 대해 허용해주세요.

 

HA에서 나스로 접근하기 위해 공개키가 필요합니다. 시놀로지에서도 일부 설정이 필요합니다.

시놀로지 공개키로 접속하기

https://raynee.tistory.com/478

 

[시놀로지] SSH 공개키로 비번없이 접속

시놀로지도 Linux 기반 SSH의 pub키로 접속하는건 공통으로 같다고 보면된다. terminal로 ssh로 매번 들어가려면 비번을 입력 해야한다. 하지만 ssh keygen을 이용하면 비번없이 바로 접속이 가능하다. 보

raynee.tistory.com

 

HAOS를 사용하신다면 만들어진 공개키(id_rsa, id_rsa.pub)파일을 다른 경로에 옮겨야 합니다.

/config/.ssh 폴더를 만들어 해당 폴더 아래에 넣어주세요. 권한설정은 폴더가 700 파일이 600입니다.

chmod 700 /config/.ssh

chmod 600 /config/.ssh/*

이렇게 하셔도 될거에요.

 

*폴더와 파일 권한이 제대로 설정되어있지 않으면 접속이 안됩니다!

**안되면 꼭 오탈자 다시 확인해주세요. 그거때문에 삽질을..ㅠ

 

일단 HAOS의 터미널에서 시놀로지 나스로 제대로 접속이 되는지 확인해보시고, 아래 내용을 configuration.yaml 파일 내에 넣어줍니다.

편의상 usbshare1을 기준으로 할게요.

 

# Synology 외장하드 인식여부
sensor: 
  - platform: command_line
    name: USBHDD Mount1 #임의로 넣으면 됩니다.
    unique_id: DS1821.USBHDD_1 #안넣어도 됩니다.
    scan_interval: 60 #초
    command: "ssh -o StrictHostKeyChecking=no -i /config/.ssh/id_rsa -oPort=[포트] [나스계정명]@[나스주소] df -h /volumeUSB1/usbshare|grep -v Filesystem|awk '{print $NF}'"

yaml파일은 띄어쓰기가 매우매우 중요하므로, 꼭 지켜야 합니다.

이렇게 하면 센서 생성이 완료됩니다. ㄷㄷ

 

이제 HA에서 설정 -> 자동화로 갑니다.

 

이름이야 자유롭게 설정해주시고, 트리거를 설정하면 됩니다.

USBHDD Mount1의 값이 /volumeUSB1/usbshare 에서 다른 값으로 변경되는 경우, 10초후에 스마트플러그를 끄는 트리거입니다.

 

이제 제가 생각한게 구현이 되었어요!!!

이렇게 또 HA의 맛에 빠집니다 ㄷㄷ

 

이걸 시놀로지에서 스크립트를 이용해 작업하시면 더 깔끔하게 가능하다고 합니다.

물론 전 잘 되는거 건들지 말라는 선현의 가르침에 따라 그대로 두려고 했는데, 즐거운흐루되셔요님께서 좀더 개선을 해 주실 것 같습니다(...공부할 생각은 안하고..)