mirror of
https://github.com/Death916/nixconfig.git
synced 2026-04-10 02:54:39 -07:00
50 lines
1.6 KiB
Bash
50 lines
1.6 KiB
Bash
|
|
# Ensure Kopia is in the PATH for systemd execution
|
|
PATH=/run/current-system/sw/bin:$PATH
|
|
|
|
# Exit on error
|
|
set -e
|
|
|
|
LOG_TAG="kopia-backup-nixos-server"
|
|
|
|
# --- Configuration ---
|
|
# Add full paths to directories you want to back up
|
|
DIRECTORIES_TO_BACKUP=(
|
|
"/etc"
|
|
"/srv"
|
|
"/var/log"
|
|
"/home/"
|
|
"/var/lib/"
|
|
"/root/"
|
|
"/storage"
|
|
# Be specific for home directories if not backing up all of /home
|
|
# Add more paths as needed
|
|
)
|
|
|
|
# --- Backup Logic ---
|
|
logger -t "$LOG_TAG" "Starting Kopia backup process for NixOS server."
|
|
|
|
# Connect to repository (Kopia will use existing config if already connected and valid)
|
|
# This is a safety check; normally not needed if `kopia repository connect` was successful earlier.
|
|
# If you encounter issues, you might need to ensure the environment for systemd can find the kopia config.
|
|
# For simplicity, we assume the `sudo kopia repository connect` in Step 2 established the connection.
|
|
|
|
for dir_path in "${DIRECTORIES_TO_BACKUP[@]}"; do
|
|
if [ -d "$dir_path" ]; then
|
|
logger -t "$LOG_TAG" "Backing up directory: $dir_path"
|
|
# The username and hostname from the 'connect' command will be used by default.
|
|
# You can add specific tags for better organization.
|
|
kopia snapshot create "$dir_path" --tags "path:$dir_path"
|
|
logger -t "$LOG_TAG" "Successfully backed up: $dir_path"
|
|
else
|
|
logger -t "$LOG_TAG" "Directory not found, skipping: $dir_path"
|
|
fi
|
|
done
|
|
|
|
logger -t "$LOG_TAG" "Kopia backup process completed."
|
|
|
|
# Optional: Run Kopia maintenance (can also be a separate timer)
|
|
# logger -t "$LOG_TAG" "Running Kopia maintenance."
|
|
#kopia maintenance run --full
|
|
#logger -t "$LOG_TAG" "Kopia maintenance finished."
|
|
|