• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
잡담

제가 사용하는 스마트플러그와 웹훅을 이용한 백업시 외장하드 ON/OFF 자동화입니다.

siane 168

1

5

시놀로지의 경우 외장 디스크로 백업 후 마운트 제거 옵션이 있습니다. 백업이 끝나고 마운트 해제가 자동으로 되는건 좋은데, 마운트 해제 후 물리적으로 디스크 제거가 되지 않기때문에 스크립트 하나만 실행하면 마운트 부활을 시킬 수 있는 문제가 있어요.

 

스마트플러그와 HA를 이용해 나스에서 마운트 체크를 하고, 마운트 해제가 된 경우 전원을 끄는 방법입니다.

백업 전 디스크 켜는거야 그냥 자동화에서 시간 트리거 주고 켜주면 됩니다.

이렇게 하면 백업시간 외에 디스크가 켜져 있는 시간을 줄일 수 있습니다.

 

당연하게도 외부전원을 사용하는 방식의 외장하드만 해당이 됩니다.

 

동작은 이렇게 됩니다.

백업 5분쯤 전 스마트플러그 켜기 > 백업 수행 후 마운트 제거 > 10분단위로 마운트체크 후 마운트 되어있지 않으면 스마트플러그 끄기

 

 

HA 자동화 트리거에 웹훅이 있습니다.

Snipaste_2023-07-24_10-37-46.jpg

 웹훅 ID를 잘 메모해둡니다.

 

조건

저는 동작부분에서 if-then으로 설정해줍니다. 

조건에서 설정하시려면 그냥 원하는 스마트플러그가 켜져있는지만 체크하면 됩니다.

 

동작

서비스 호출 - 알림 - 내가 알림받을 폰

원하는 스마트플러그 끄기

 

나스에서 들어갈 스크립트입니다.

 

원시적인 코드라서 부끄럽습니다 ㅡㅡ;

HA의 선지자분께서 거의 작성해준 부분을 조금 변형해서 쓰고 있습니다.

저는 하드디스크가 2개가 돌기때문에 USB1, 2가 있습니다. 

 

#!/bin/bash

HA_IP = your_ha_ip
USB1_WEBHOOK = your_webhook_id1
USB2_WEBHOOK = your_webhook_id2

# .usbmntchk파일이 없으면 만든다.
if [ ! -e ~/.usbmntchk/chk ]; then
mkdir -p ~/.usbmntchk
touch ~/.usbmntchk/chk
fi
# 이전 수행 시 마운트 갯수 확인
MNTCHK=`cat ~/.usbmntchk/chk`
# 현재 마운트 갯수
MNTCNT=`cat /proc/mounts|grep "/dev/usb"|awk '{print $2}'|sed 's/\/volume//g'|sed 's/\/usbshare//g'|wc -l`

# 모두 마운트된 상황 제외, 기존 마운트 갯수와 현재 마운트 갯수가 다르면 수행
if [ "${MNTCNT}" != "2" ]; then
#if [ "${MNTCHK}" != "${MNTCNT}" ] && [ "${MNTCNT}" != "2" ]; then
# USB마운트 체크
MNTPNT=`cat /proc/mounts|grep "/dev/usb"|awk '{print $2}'|sed 's/\/volume//g'|sed 's/\/usbshare//g'|sort`
# USB 마운트 체크하고 unmount시 웹훅 날림
# USB 장치는 개별로 존재하므로, 각각 확인함
if [ "${MNTPNT}" != "USB1" ]; then
curl -X POST http://${HA_IP}:8123/api/webhook/${USB1_WEBHOOK}
fi
if [ "${MNTPNT}" != "USB2" ]; then
curl -X POST http://${HA_IP}:8123/api/webhook/${USB2_WEBHOOK}
fi
fi
echo ${MNTCNT} > ~/.usbmntchk/chk

 

신고공유스크랩
5
profile image 1등
달소 2023.07.24. 11:44
오오 외장하드 자동화라니.. 아이디어가 엄청 좋으시네요!!
좋은팁 공유 감사합니다 ㅎ
2등
마이크로서버 2023.07.24. 14:44
저는 NFS로 나스에 수동으로 백업 하고 있습니다. ㅎㅎ 생각날때마다 한번씩...~ 윈도우 OS 백업 하듯이요.
siane 글쓴이 2023.07.24. 17:27
마이크로서버
귀찮아서요(....)
기본적으로 모든 기기의 데이터들이 나스로 백업되고, 나스는 매일 특정시간에 하이퍼백업과 USB Copy를 통해 각각 다른 디스크로 백업이 됩니다.
사실 물리적으로도 격리되는게 옳기는 한데.. 그건 중요데이터를 사무실에 있는 나스에 물려서 백업하는걸로 해결하고 있습니다 ㅋㅋ

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story

오늘의 베스트(조회순)

1/1

주간 베스트(추천순)

1/1
번호 분류 제목 글쓴이 날짜 조회
정보 바이너리 센서 (모션, 오디오 등등) 상태에 따라 카메라 스냅샷을 폰의 알림으로 보내기 DarkAcid 24.04.07.10:41 124
잡담 HA를 셋팅해놓고 NPM으로 외부에서 접속시 400: Bad request 가 나올때 해결방법 3 자우루스 24.02.27.07:52 299
잡담 MQTT 를 이용한 시스템 정보 수집 파이썬 코드 3 purndal 24.02.25.17:36 333
68 질문
normal
jerry80 24.04.24.10:52 91
67 정보
normal
DarkAcid 24.04.07.10:41 124
66 정보
image
달소 24.03.29.19:51 254
65 질문
normal
서버라니 24.03.16.12:47 131
64 질문
normal
olaf 24.03.08.11:28 196
63 잡담
image
kmw_ 24.03.02.18:38 311
62 잡담
image
kmw_ 24.03.01.19:41 173
61 잡담
normal
자우루스 24.02.27.07:52 299
60 잡담
image
purndal 24.02.25.17:36 333
59 질문
normal
csgns 24.02.10.17:45 154
58 잡담
image
dnvn 24.02.08.00:27 922
57 잡담
image
siane 24.02.01.10:36 366
56 정보
image
Blanco 24.01.05.11:02 385
55 정보
image
DarkAcid 24.01.01.06:23 539
54 질문
image
낙오자 23.12.16.23:38 146
53 정보
image
Blanco 23.11.16.23:04 485
52 정보
image
달소 23.11.03.18:24 334
51 정보
image
달소 23.10.06.19:01 616
50 정보
image
달소 23.10.03.19:09 330
49 정보
image
달소 23.10.03.18:27 495