Updated the script so it now has a separate config file and also fixed issue calculating the storage on the server

This commit is contained in:
phil committed 2026-10-17 18:33:35 +01:00
1 parent ce835ec488
commit cab5d0cfda
2 files changed
+42 -30

No files matched your search

+32
View File
@@ -0,0 +1,32 @@
### Global Settings ###
# Set your Home Assistant SSH credentials
HA_SSH_KEY="SSH_PRIVATE_KEY" # Replace with your SSH Private key for HomeAssistant
HA_SSH_USER="SSH_USER" # Replace with your HomeAssistant server username (Default is root)
HA_SSH_HOST="SSH_HOST_IP_OR_HOSTNAME" # Replace with your HomeAssistant server IP address
HA_SSH_PORT="SSH_PORT" # Replace with your HomeAssistant server port
## Storage
# Set the backup destination path
BACKUP_DEST="BACKUP_FILE_DESTINATION" # Replace with the location for the backup files
# Set the location of the Home Assistant backups (Set to default location /backup)
# If you have a custom install, using the likes of Supervised
# this location should normally be /usr/share/hassio/backup
BACKUP_FILE_LOCATION="/backup"
# Storage threshold (in KB) for triggering cleanup
STORAGE_THRESHOLD_KB=2097152 # 2GB = 2 * 1024 * 1024 KB
# Set clean up old backups (adjust the number of days to keep)
LOCAL_BACKUP_CLEANUP="90" # Set the number of days that local backup files will be kept for (Default 90 days)
REMOTE_BACKUP_CLEANUP="30" # Set the number of days that backups on the Home Assistant server will be kept for (Default 30 days)
## Notification Settings
# ntfy settings
NTFY_ENABLED=false # Set to 'true' to enable ntfy notifications
NTFY_SERVER="NTFY_SERVER_FQDN_ADDRESS" # Replace with your ntfy server address
NTFY_TOPIC="NTFY_TOPIC" # Replace with your ntfy topic
# Discord webhook settings
DISCORD_ENABLED=false # Set to 'true' to enable Discord notifications
DISCORD_WEBHOOK_URL="DISCORD_WEBHOOK_URL" # Replace with your Discord webhook URL
+10 -30
View File
@@ -1,37 +1,17 @@
#!/bin/bash #!/bin/bash
#set -x #set -x
### Global Settings ### SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# Set your Home Assistant SSH credentials CONFIG_FILE="$SCRIPT_DIR/home_assistant_backup.conf"
HA_SSH_KEY="SSH_PRIVATE_KEY" # Replace with your SSH Private key for HomeAssistant
HA_SSH_USER="SSH_USER" # Replace with your HomeAssistant server username (Default is root)
HA_SSH_HOST="SSH_HOST_IP_OR_HOSTNAME" # Replace with your HomeAssistant server IP address
HA_SSH_PORT="SSH_PORT" # Replace with your HomeAssistant server port
## Storage if [ ! -f "$CONFIG_FILE" ]; then
# Set the backup destination path echo "Error: Config file not found: $CONFIG_FILE"
BACKUP_DEST="BACKUP_FILE_DESTINATION" # Replace with the location for the backup files exit 1
fi
# Set the location of the Home Assistant backups (Set to default location /backup) # Load variables
# If you have a custom install, using the likes of Supervised # shellcheck disable=SC1090
# this location should normally be /usr/share/hassio/backup source "$CONFIG_FILE"
BACKUP_FILE_LOCATION="/backup"
# Storage threshold (in KB) for triggering cleanup
STORAGE_THRESHOLD_KB=2097152 # 2GB = 2 * 1024 * 1024 KB
# Set clean up old backups (adjust the number of days to keep)
LOCAL_BACKUP_CLEANUP="90" # Set the number of days that local backup files will be kept for (Default 90 days)
REMOTE_BACKUP_CLEANUP="30" # Set the number of days that backups on the Home Assistant server will be kept for (Default 30 days)
## Notification Settings
# ntfy settings
NTFY_ENABLED=false # Set to 'true' to enable ntfy notifications
NTFY_SERVER="NTFY_SERVER_FQDN_ADDRESS" # Replace with your ntfy server address
NTFY_TOPIC="NTFY_TOPIC" # Replace with your ntfy topic
# Discord webhook settings
DISCORD_ENABLED=false # Set to 'true' to enable Discord notifications
DISCORD_WEBHOOK_URL="DISCORD_WEBHOOK_URL" # Replace with your Discord webhook URL
### Script ### ### Script ###
## Sanity Check## ## Sanity Check##
@@ -158,7 +138,7 @@ send_ntfy_notification "Backup process started at $TIMESTAMP"
send_discord_notification "Backup process started at $TIMESTAMP" send_discord_notification "Backup process started at $TIMESTAMP"
# Check available disk space on Home Assistant server # Check available disk space on Home Assistant server
AVAILABLE_SPACE=$(ssh -i "$HA_SSH_KEY" -p "$HA_SSH_PORT" "$HA_SSH_USER@$HA_SSH_HOST" "df --output=avail / | tail -n 1") AVAILABLE_SPACE=$(ssh -i "$HA_SSH_KEY" -p "$HA_SSH_PORT" "$HA_SSH_USER@$HA_SSH_HOST" "df -k / | tail -n 1 | tr -s ' ' | cut -d ' ' -f 4")
if [ "$AVAILABLE_SPACE" -lt "$STORAGE_THRESHOLD_KB" ]; then if [ "$AVAILABLE_SPACE" -lt "$STORAGE_THRESHOLD_KB" ]; then
echo "Disk space is less than 2GB on Home Assistant server. Proceeding with remote backup cleanup..." echo "Disk space is less than 2GB on Home Assistant server. Proceeding with remote backup cleanup..."
# Remove old backups on Home Assistant server if less than 2GB available # Remove old backups on Home Assistant server if less than 2GB available