reorganize borgmatic scripts
This commit is contained in:
@@ -1 +1 @@
|
|||||||
0 2 * * * /scripts/run.sh
|
0 2 * * * /scripts/run_all.sh
|
||||||
|
|||||||
@@ -1,26 +0,0 @@
|
|||||||
CONFIG_FILE="$1"
|
|
||||||
|
|
||||||
MQTT_BROKER="host"
|
|
||||||
MQTT_TOPIC="borgmatic/stats/$CONFIG_FILE"
|
|
||||||
MQTT_USER="borgmatic"
|
|
||||||
MQTT_PASSWORD="eH2dAiG7siCIFdB7qX0MHwEFzcr9aqUi"
|
|
||||||
|
|
||||||
# Run Borgmatic and extract archive stats as JSON
|
|
||||||
PAYLOAD=$(borgmatic \
|
|
||||||
--stats \
|
|
||||||
-v 0 \
|
|
||||||
-c "/config/$CONFIG_FILE.yaml" \
|
|
||||||
--log-json \
|
|
||||||
--no-color \
|
|
||||||
--json \
|
|
||||||
| tee /dev/tty \
|
|
||||||
| sed --quiet '/^\[/p' \
|
|
||||||
| jq '.[0].archive'
|
|
||||||
)
|
|
||||||
|
|
||||||
# Publish to MQTT
|
|
||||||
mosquitto_pub -h "$MQTT_BROKER" \
|
|
||||||
-t "$MQTT_TOPIC" \
|
|
||||||
-u "$MQTT_USER" \
|
|
||||||
-P "$MQTT_PASSWORD" \
|
|
||||||
-m "$PAYLOAD"
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
borgmatic --stats -v 0 -c /config/home.yaml >> /log/home.log 2>&1
|
|
||||||
borgmatic --stats -v 0 -c /config/root.yaml >> /log/root.log 2>&1
|
|
||||||
borgmatic --stats -v 0 -c /config/opt.yaml >> /log/opt.log 2>&1
|
|
||||||
borgmatic --stats -v 0 -c /config/etc.yaml >> /log/etc.log 2>&1
|
|
||||||
|
|
||||||
export REMOTE=/remote/server/bram
|
|
||||||
mkdir -p ${REMOTE}
|
|
||||||
sshfs user@bram.veenboer.xyz:/media/helios/Bram ${REMOTE}
|
|
||||||
borgmatic --stats -v 0 -c /config/bram.yaml >> /log/bram.log 2>&1
|
|
||||||
umount ${REMOTE}
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
for name in home root opt etc bram; do
|
for name in home root opt etc bram; do
|
||||||
echo $name
|
echo $name
|
||||||
/scripts/mqtt.sh "$name" >> "/log/$name.log" 2>&1
|
/scripts/run_one.sh "$name" >> "/log/$name.log" 2>&1
|
||||||
done
|
done
|
||||||
56
borgmatic/scripts/run_one.sh
Executable file
56
borgmatic/scripts/run_one.sh
Executable file
@@ -0,0 +1,56 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
CONFIG_FILE="$1"
|
||||||
|
|
||||||
|
LOKI_HOST=host
|
||||||
|
|
||||||
|
MQTT_BROKER=host
|
||||||
|
MQTT_TOPIC="borgmatic/stats/$CONFIG_FILE"
|
||||||
|
MQTT_USER="borgmatic"
|
||||||
|
MQTT_PASSWORD="eH2dAiG7siCIFdB7qX0MHwEFzcr9aqUi"
|
||||||
|
|
||||||
|
# Run Borgmatic and extract archive stats as JSON
|
||||||
|
ARCHIVE_JSON=$(borgmatic \
|
||||||
|
--stats \
|
||||||
|
-v 0 \
|
||||||
|
-c "/config/$CONFIG_FILE.yaml" \
|
||||||
|
--log-json \
|
||||||
|
--no-color \
|
||||||
|
--json \
|
||||||
|
| tail -n1 \
|
||||||
|
| jq '.[0].archive'
|
||||||
|
)
|
||||||
|
echo $ARCHIVE_JSON
|
||||||
|
|
||||||
|
echo "----- ARCHIVE_JSON"
|
||||||
|
echo $ARCHIVE_JSON
|
||||||
|
echo "-----"
|
||||||
|
|
||||||
|
# Publish to MQTT
|
||||||
|
mosquitto_pub -h "$MQTT_BROKER" \
|
||||||
|
-t "$MQTT_TOPIC" \
|
||||||
|
-u "$MQTT_USER" \
|
||||||
|
-P "$MQTT_PASSWORD" \
|
||||||
|
-m "$ARCHIVE_JSON"
|
||||||
|
|
||||||
|
# Build Loki payload
|
||||||
|
LOKI_PAYLOAD=$(jq -n \
|
||||||
|
--arg config "$CONFIG_FILE" \
|
||||||
|
--argjson archive "$ARCHIVE_JSON" \
|
||||||
|
--arg now "$(date +%s%N)" \
|
||||||
|
'{streams: [
|
||||||
|
{
|
||||||
|
stream: {job: "borgmatic", config: $config},
|
||||||
|
values: [[$now, ($archive | tostring)]]
|
||||||
|
}
|
||||||
|
]}')
|
||||||
|
|
||||||
|
echo "----- LOKI_PAYLOAD"
|
||||||
|
echo $LOKI_PAYLOAD
|
||||||
|
echo "-----"
|
||||||
|
|
||||||
|
# Send to Loki
|
||||||
|
curl -s -X POST "http://$LOKI_HOST:3100/loki/api/v1/push" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d "$LOKI_PAYLOAD"
|
||||||
Reference in New Issue
Block a user