Dateien nach "/" hochladen

This commit is contained in:
2025-12-30 18:37:44 +01:00
parent 69eedaa23c
commit c45da891d7
5 changed files with 478 additions and 0 deletions

80
01_setup.sh Normal file
View File

@@ -0,0 +1,80 @@
#!/usr/bin/env bash
set -Eeuo pipefail
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR"
APP="raspi-backup"
STATE_DIR="${XDG_STATE_HOME:-$HOME/.local/state}/${APP}"
LOG_FILE="${STATE_DIR}/${APP}.log"
mkdir -p "$STATE_DIR"
log() {
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*" | tee -a "$LOG_FILE" >/dev/null
}
write_config_if_missing() {
local cfg="$SCRIPT_DIR/config.sh"
if [[ -f "$cfg" ]]; then
log "config.sh existiert: $cfg"
return 0
fi
cat >"$cfg" <<'EOF'
#!/usr/bin/env bash
# zentrale Konfig (auto-generated) bitte nur ändern wenn du willst.
# NAS Fixwerte
NAS_HOST="10.0.0.101"
NAS_USER="mexx"
NAS_PORT="222"
# SSH / Alias
KEY_TYPE="ed25519"
ALIAS_PREFIX="nas" # Alias wird: nas-<hostname>
# lokaler User, dem der SSH-Key gehört (NICHT root)
SSH_USER="admin"
# ---------- NAS Pfade (deine Vorgaben) ----------
# Zugriffskontrolle (Keys):
NAS_AUTH_KEYS_FILE="/var/services/homes/mexx/raspberry/sshkeys/authorized_keys"
# Backups (Daten):
NAS_BACKUP_BASE="/volume1/homes/mexx/raspberry/backup"
# Remote Ziel wird dann: ${NAS_BACKUP_BASE}/<hostname>/
# Retention (Tage)
KEEP_DAYS="21"
# Excludes
EXCLUDES=(
"/dev/*"
"/proc/*"
"/sys/*"
"/tmp/*"
"/run/*"
"/mnt/*"
"/media/*"
"/lost+found"
"/var/cache/apt/archives/*"
)
# Rsync Extras
RSYNC_EXTRA=(
"--partial"
"--partial-dir=.rsync-partial"
)
EOF
chmod +x "$cfg" || true
log "config.sh erzeugt: $cfg"
}
write_config_if_missing
log "Setup OK (ohne lib.sh)."
echo "Setup OK."
echo "Config: $SCRIPT_DIR/config.sh"
echo "Log: $LOG_FILE"