Files
Home-Assistant-Backup-Script/V3
phil 6b9bd80fa8 ## 3.2.0
### Added
- File logging to `/var/log/ha-backup.log`. Each line has a full date and time,
  and the file is appended to on every run.
- New `LOG_FILE` setting in `home_assistant_backup.conf`. Set it to a custom
  path, or to `"none"` to disable file logging.
- `ssh`/`scp` error output is also written to the log file.
- Deletions of old local backups are now logged.

### Changed
- All console messages now go through the same logger, so remote cleanup,
  notification failures and config validation errors appear in the log too.
- If the log file can't be opened (for example, no write permission to
  `/var/log`), a warning is printed and the backup continues without file logging.
- The terminal progress bar stays on the console only and is not written to the log.
2026-11-06 22:40:15 +00:00
..
2026-11-05 16:28:52 +00:00
2026-11-06 22:40:15 +00:00
2026-11-06 22:40:15 +00:00
2026-11-06 22:40:15 +00:00

ha-backup v3.1.1

Go port of home_assistant_backup.sh. Uses the same home_assistant_backup.conf.

Build

CGO_ENABLED=0 go build -trimpath -ldflags="-s -w" -o ha-backup .

Override the version at build time if needed: CGO_ENABLED=0 go build -trimpath -ldflags="-s -w -X main.version=3.1.2" -o ha-backup .

Check the version: ./ha-backup -version

Cross-compile examples: GOOS=linux GOARCH=amd64 go build -o ha-backup-linux-amd64 . GOOS=linux GOARCH=arm64 go build -o ha-backup-linux-arm64 . # Raspberry Pi / ARM NAS

Logging

ha-backup writes a log to /var/log/ha-backup.log by default. Each line is timestamped, and the file is appended to on every run. The same output is still printed to the console.

Create the log file

Writing to /var/log requires elevated permissions, so create the file once and give ownership to the user that runs the backup. Replace backupuser with that user (use root if you run it as root):

If you'd rather do it in steps:

sudo touch /var/log/ha-backup.log
sudo chown backupuser:backupuser /var/log/ha-backup.log
sudo chmod 640 /var/log/ha-backup.log

If the log file can't be opened, ha-backup prints a warning and continues the backup without file logging.

Change or disable the log location

Set LOG_FILE in home_assistant_backup.conf:

LOG_FILE="/var/log/ha-backup.log"   # default
LOG_FILE="/home/backupuser/ha-backup.log"   # custom path
LOG_FILE="none"                     # disable file logging

Run

./ha-backup # looks for home_assistant_backup.conf next to the binary, then in cwd
./ha-backup -config /path/to.conf

Requires ssh and scp on the machine running it. jq and yq are no longer needed.