Dateien nach "/" hochladen
This commit is contained in:
80
01_setup.sh
Normal file
80
01_setup.sh
Normal 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"
|
||||
Reference in New Issue
Block a user