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
|
||||
for name in home root opt etc bram; do
|
||||
echo $name
|
||||
/scripts/mqtt.sh "$name" >> "/log/$name.log" 2>&1
|
||||
/scripts/run_one.sh "$name" >> "/log/$name.log" 2>&1
|
||||
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