added backup scripts

This commit is contained in:
John Lancaster
2024-05-19 20:11:37 -05:00
parent b22f4a436b
commit 29079011d7
5 changed files with 143 additions and 2 deletions

View File

@@ -10,3 +10,9 @@ Zigbee smarthome stack
```
./scripts/setup.sh
```
Process:
- clears all the existing data, except certain files
- asks for a new MQTT password, which gets saved in `./zigbee2mqtt/secret.yaml`
- runs `docker compose up ...`

28
scripts/restic_backup.sh Executable file
View File

@@ -0,0 +1,28 @@
#!/bin/bash
set -e
SCRIPT_DIR=$(readlink -f $(dirname "${BASH_SOURCE[0]}"))
REPO_DIR=$(dirname $SCRIPT_DIR)
COMPOSE_FILE=$REPO_DIR/docker-compose.yml
SERVICES="mqtt z2m"
echo -n "Stopping containers..."
docker compose -f $COMPOSE_FILE stop $SERVICES 2>/dev/null
echo "Done"
echo -n "Running backup..."
$SCRIPT_DIR/restic_command.sh backup /data "$@"
echo "Done"
echo -n "Executing compose up..."
docker compose -f $COMPOSE_FILE up -d 2>/dev/null
echo "Done"
echo -n "Pruning restic repo..."
$SCRIPT_DIR/restic_prune.sh 1>/dev/null
echo "Done"
SPACE=$(du -hs /mnt/* | awk '{print $1}')
echo "Total space used: $SPACE"

View File

@@ -3,9 +3,10 @@
set -e
SCRIPT_DIR=$(readlink -f $(dirname "${BASH_SOURCE[0]}"))
DATA_DIR=$SCRIPT_DIR/data
REPO_DIR=$(dirname $SCRIPT_DIR)
DATA_DIR=$REPO_DIR
ENV_FILE=$SCRIPT_DIR/.env
ENV_FILE=$REPO_DIR/.env
source $ENV_FILE
docker run -it --rm \

11
scripts/restic_prune.sh Executable file
View File

@@ -0,0 +1,11 @@
#!/bin/bash
set -e
SCRIPT_DIR=$(readlink -f $(dirname "${BASH_SOURCE[0]}"))
$SCRIPT_DIR/restic_command.sh forget --prune \
--keep-last 5 \
--keep-weekly 8 \
--keep-monthly 12 \
--keep-yearly 7

View File

@@ -15,3 +15,98 @@ advanced:
device_options:
legacy: false
frontend: true
devices:
'0x54ef4410005ca806':
friendly_name: Bathroom Motion
'0x00158d0006ca3f53':
friendly_name: Bedroom Motion
'0x00158d000894fb3a':
friendly_name: Closet Motion
'0x00158d0006c49d5f':
friendly_name: Kitchen Motion
'0x00158d0007e22931':
friendly_name: Cube 1
'0x7cb03eaa00a698a6':
friendly_name: Server Lamp
'0x7cb03eaa00a68979':
friendly_name: Desk Lamp
'0xa4c138f4c2fce2ed':
friendly_name: Couch Corner
'0xa4c1388ed789ca18':
friendly_name: Kitchen
description: Under cabinet lights
'0xf0d1b8000001ccc4':
friendly_name: Bedside 2
'0xf0d1b80000021416':
friendly_name: Bedside 1
description: Nearest to the door
'0x00158d0006ba2970':
friendly_name: Living Room Button
legacy: false
'0x00158d0006f3a190':
friendly_name: Bedroom Button 1
description: Nearest to the door
'0x00158d0006ba47e9':
friendly_name: Bedroom Button 2
'0x00158d0007004bc5':
friendly_name: Bathroom Button
'0x00158d0006ba29fb':
friendly_name: Kitchen Button
'0x00158d0006ca405f':
friendly_name: Laundry Motion
'0x7cb03eaa00a69ad3':
friendly_name: Patio
'0xf0d1b8000001d920':
friendly_name: Laundry
'0x001788010ce41962':
friendly_name: Closet Back
'0x001788010ce41939':
friendly_name: Closet Front
'0x001788010cdfb112':
friendly_name: Bathroom Middle
'0x001788010c752d04':
friendly_name: Bathroom Right
'0x001788010cdfb05e':
friendly_name: Bathroom Left
'0x00124b0022305984':
friendly_name: Overhead 1
'0x00124b0022305ad5':
friendly_name: Overhead 2
'0x00124b0022305735':
friendly_name: Overhead 3
'0x00158d0007ef801d':
friendly_name: Back
'0x00158d00067960ef':
friendly_name: Front
'0xa4c1385e575697be':
friendly_name: RGBCCT Strip
'0x00158d0006a0cebe':
friendly_name: Living Room Motion
groups:
'1':
friendly_name: living_room
devices:
- 0x7cb03eaa00a698a6/3
- 0x7cb03eaa00a68979/3
'2':
friendly_name: bedroom
devices:
- 0xf0d1b80000021416/1
- 0xf0d1b8000001ccc4/1
'3':
friendly_name: closet
devices:
- 0x001788010ce41962/11
- 0x001788010ce41939/11
'4':
friendly_name: bathroom
devices:
- 0x001788010cdfb05e/11
- 0x001788010cdfb112/11
- 0x001788010c752d04/11
'5':
friendly_name: overhead
devices:
- 0x00124b0022305984/1
- 0x00124b0022305ad5/1
- 0x00124b0022305735/1