Dateien nach "/" hochladen
This commit is contained in:
32
05_status.sh
32
05_status.sh
@@ -7,17 +7,24 @@ CFG="$SCRIPT_DIR/config.sh"
|
||||
# shellcheck disable=SC1090
|
||||
source "$CFG"
|
||||
|
||||
# User, der das Script gestartet hat (auch wenn via sudo)
|
||||
RUN_USER="${SUDO_USER:-$USER}"
|
||||
|
||||
LOG_FILE="$SCRIPT_DIR/raspi-backup.log"
|
||||
|
||||
host_short(){ hostname -s 2>/dev/null || hostname 2>/dev/null || echo "raspi"; }
|
||||
nas_alias(){ echo "${ALIAS_PREFIX}-$(host_short)"; }
|
||||
|
||||
# validate config vars (OHNE SSH_USER)
|
||||
: "${NAS_HOST:?}" "${NAS_USER:?}" "${NAS_PORT:?}" "${NAS_BACKUP_BASE:?}" "${KEY_TYPE:?}" "${ALIAS_PREFIX:?}"
|
||||
|
||||
hn="$(host_short)"
|
||||
alias="$(nas_alias)"
|
||||
remote_root="${NAS_BACKUP_BASE%/}/${hn}"
|
||||
|
||||
echo "== Backup Status =="
|
||||
echo "Script-Ordner : $SCRIPT_DIR"
|
||||
echo "Run user : $RUN_USER"
|
||||
echo "Host : $hn"
|
||||
echo "NAS : ${NAS_USER}@${NAS_HOST}:${NAS_PORT}"
|
||||
echo "Remote Root : $remote_root"
|
||||
@@ -27,17 +34,8 @@ echo
|
||||
# Log-Info (letzter Lauf)
|
||||
if [[ -f "$LOG_FILE" ]]; then
|
||||
echo "-- Letzter Log-Block (kurz) --"
|
||||
# Zeige die letzten ~25 Zeilen, aber etwas "smart" ab BACKUP START wenn vorhanden
|
||||
if grep -q "BACKUP START" "$LOG_FILE"; then
|
||||
awk '
|
||||
BEGIN{start=0}
|
||||
/BACKUP START/{start=1}
|
||||
{buf[NR]=$0}
|
||||
END{
|
||||
# gib die letzten 80 Zeilen aus, aber nur wenn start irgendwann vorkam
|
||||
from = (NR-80>1)?NR-80:1
|
||||
for(i=from;i<=NR;i++) print buf[i]
|
||||
}' "$LOG_FILE" | tail -n 25
|
||||
tail -n 120 "$LOG_FILE" | tail -n 25
|
||||
else
|
||||
tail -n 25 "$LOG_FILE"
|
||||
fi
|
||||
@@ -47,15 +45,13 @@ else
|
||||
echo
|
||||
fi
|
||||
|
||||
# NAS Status (ohne Passwort möglich nur wenn Key-Auth passt)
|
||||
echo "-- NAS Check --"
|
||||
echo "Alias (nur Info): $alias"
|
||||
echo "Hinweis: Dieser Status nutzt direkten SSH Host/Port/User. Falls Passwortabfrage kommt, ist Key-Auth noch nicht sauber."
|
||||
echo "Hinweis: Status nutzt direkten SSH Host/Port/User/Key."
|
||||
echo
|
||||
|
||||
# Keypfad für SSH_USER
|
||||
hn2="$hn"
|
||||
key_path="$(eval echo "~${SSH_USER}/.ssh/id_${KEY_TYPE}_${hn2}")"
|
||||
# Keypfad für RUN_USER
|
||||
key_path="$(eval echo "~${RUN_USER}/.ssh/id_${KEY_TYPE}_${hn}")"
|
||||
|
||||
if [[ ! -f "$key_path" ]]; then
|
||||
echo "Local Key fehlt: $key_path"
|
||||
@@ -71,16 +67,16 @@ SSH_BASE=(ssh -p "$NAS_PORT" -i "$key_path"
|
||||
)
|
||||
|
||||
# Remote listing
|
||||
if sudo -u "$SSH_USER" "${SSH_BASE[@]}" "${NAS_USER}@${NAS_HOST}" "test -d '$remote_root'" >/dev/null 2>&1; then
|
||||
if sudo -u "$RUN_USER" "${SSH_BASE[@]}" "${NAS_USER}@${NAS_HOST}" "test -d '$remote_root'" >/dev/null 2>&1; then
|
||||
echo "Remote erreichbar: OK"
|
||||
echo
|
||||
|
||||
echo "-- Remote Inhalt --"
|
||||
sudo -u "$SSH_USER" "${SSH_BASE[@]}" "${NAS_USER}@${NAS_HOST}" "ls -la '$remote_root' | sed -n '1,40p'"
|
||||
sudo -u "$RUN_USER" "${SSH_BASE[@]}" "${NAS_USER}@${NAS_HOST}" "ls -la '$remote_root' | sed -n '1,40p'"
|
||||
echo
|
||||
|
||||
echo "-- latest Ziel + Größe (wenn vorhanden) --"
|
||||
sudo -u "$SSH_USER" "${SSH_BASE[@]}" "${NAS_USER}@${NAS_HOST}" \
|
||||
sudo -u "$RUN_USER" "${SSH_BASE[@]}" "${NAS_USER}@${NAS_HOST}" \
|
||||
"if [ -L '$remote_root/latest' ]; then \
|
||||
echo -n 'latest -> '; readlink '$remote_root/latest' || true; \
|
||||
echo -n 'Size(latest): '; du -sh '$remote_root/latest' 2>/dev/null || echo 'n/a'; \
|
||||
|
||||
Reference in New Issue
Block a user