From ef3924cf2529146c648cb4e5fe0709922c1f1e48 Mon Sep 17 00:00:00 2001 From: FailedProxy Date: Fri, 27 Mar 2026 19:04:49 +0000 Subject: [PATCH] fuck --- Rsync/rsync.sh | 129 +++++++++++++++++-------------------------------- 1 file changed, 44 insertions(+), 85 deletions(-) diff --git a/Rsync/rsync.sh b/Rsync/rsync.sh index 68ef9b3..6deb52f 100644 --- a/Rsync/rsync.sh +++ b/Rsync/rsync.sh @@ -8,70 +8,15 @@ set -e # ---------------------------------------------------------------------------------------------- # Resolve script directory (Unraid-safe /tmp compatible) -BASE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -SCRIPT_DIR="$BASE_DIR" +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -# ----------------------------------------------------------------------------- -# MASTER CONF (must exist) -# ----------------------------------------------------------------------------- -if [[ -f "$SCRIPT_DIR/../Master.conf" ]]; then - source "$SCRIPT_DIR/../Master.conf" -else - echo "❌ Master.conf missing" - exit 1 -fi +# Load configs & helpers (UNCHANGED INTENT) +source "$SCRIPT_DIR/../Master.conf" +source "$SCRIPT_DIR/../common.sh" -# ----------------------------------------------------------------------------- -# SAFE SOURCE FUNCTION (CRITICAL FIX) -# ----------------------------------------------------------------------------- -safe_source() { - local file="$1" - - if [[ -f "$file" ]]; then - # shellcheck disable=SC1090 - source "$file" || { - echo "❌ FAILED sourcing: $file" - return 1 - } - return 0 - fi - - return 1 -} - -# ----------------------------------------------------------------------------- -# LOAD common.sh (STRICT VALIDATION) -# ----------------------------------------------------------------------------- -COMMON_LOADED=false - -COMMON_PATHS=( - "$SCRIPT_DIR/../common.sh" - "$SCRIPT_DIR/common.sh" - "/mnt/user/appdata/unraid_scripts/common.sh" -) - -for f in "${COMMON_PATHS[@]}"; do - if safe_source "$f"; then - COMMON_LOADED=true - break - fi -done - -# ----------------------------------------------------------------------------- -# HARD CHECK (THIS PREVENTS YOUR ERROR) -# ----------------------------------------------------------------------------- -if ! declare -F log_info >/dev/null 2>&1; then - echo "⚠️ [WARN] log_info not found — forcing fallback logger" - - log_info() { echo "ℹ️ [INFO] $*"; } - log_ok() { echo "✅ [OK] $*"; } - log_warn() { echo "⚠️ [WARN] $*"; } - log_error() { echo "❌ [ERROR] $*"; } -fi - -# ----------------------------------------------------------------------------- -# INIT -# ----------------------------------------------------------------------------- +# ---------------------------------------------------------------------------------------------- +# Init +# ---------------------------------------------------------------------------------------------- log_info "Sync script initialized" LOCAL_HOST="$(hostname)" @@ -79,21 +24,23 @@ REMOTE_HOST="${REMOTE_HOST:-jayred365}" log_info "Host: ${LOCAL_HOST} → ${REMOTE_HOST}" -# ----------------------------------------------------------------------------- -# RESOLVE REMOTE -# ----------------------------------------------------------------------------- -REMOTE_IP="$(getent hosts "$REMOTE_HOST" | awk '{print $1}' || true)" +# ---------------------------------------------------------------------------------------------- +# Resolve remote IP (RESTORED ORIGINAL LOGIC) +# ---------------------------------------------------------------------------------------------- +log_info "Resolving remote IP..." + +REMOTE_IP="$(getent hosts "$REMOTE_HOST" | awk '{print $1}')" if [[ -z "$REMOTE_IP" ]]; then - log_error "Remote resolve failed" + log_error "Failed to resolve remote host: $REMOTE_HOST" exit 1 fi log_info "Remote IP: $REMOTE_IP" -# ----------------------------------------------------------------------------- -# CONFIG -# ----------------------------------------------------------------------------- +# ---------------------------------------------------------------------------------------------- +# Config +# ---------------------------------------------------------------------------------------------- PROFILE="${1:-arrs_stack}" SOURCE_PATH="${SOURCE_PATH:-/mnt/user/appdata-Failover/Arrs_Stack}" @@ -101,41 +48,53 @@ REMOTE_PATH="${REMOTE_PATH:-/mnt/user/appdata-Failover/Arrs_Stack}" REMOTE_USER="${REMOTE_USER:-root}" log_info "Sync Starting" +log_info "Source: $SOURCE_PATH" +log_info "Remote: $REMOTE_IP:$REMOTE_PATH" +log_info "Profile: $PROFILE" +log_info "Dry Run: ${DRY_RUN:-false}" + +# ---------------------------------------------------------------------------------------------- +# Remote check +# ---------------------------------------------------------------------------------------------- +log_info "Checking remote..." -# ----------------------------------------------------------------------------- -# SSH CHECK -# ----------------------------------------------------------------------------- ssh -o BatchMode=yes -o ConnectTimeout=5 \ "${REMOTE_USER}@${REMOTE_IP}" "echo ok" >/dev/null 2>&1 log_ok "Remote reachable" -# ----------------------------------------------------------------------------- -# CONTAINERS -# ----------------------------------------------------------------------------- -if declare -F stop_containers >/dev/null 2>&1; then +# ---------------------------------------------------------------------------------------------- +# Stop containers (unchanged behavior) +# ---------------------------------------------------------------------------------------------- +if declare -f stop_containers >/dev/null 2>&1; then log_info "Stopping containers..." stop_containers "$PROFILE" || true fi -# ----------------------------------------------------------------------------- +# ---------------------------------------------------------------------------------------------- # RSYNC -# ----------------------------------------------------------------------------- +# ---------------------------------------------------------------------------------------------- log_info "Running rsync..." -rsync -aHAX --delete --numeric-ids \ +RSYNC_OPTS="-aHAX --delete --numeric-ids" + +if [[ "${DRY_RUN:-false}" == "true" ]]; then + RSYNC_OPTS="$RSYNC_OPTS -n" +fi + +rsync $RSYNC_OPTS \ -e "ssh" \ "$SOURCE_PATH/" \ "${REMOTE_USER}@${REMOTE_IP}:${REMOTE_PATH}/" log_ok "Rsync complete" -# ----------------------------------------------------------------------------- -# START CONTAINERS -# ----------------------------------------------------------------------------- -if declare -F start_containers >/dev/null 2>&1; then +# ---------------------------------------------------------------------------------------------- +# Start containers (unchanged) +# ---------------------------------------------------------------------------------------------- +if declare -f start_containers >/dev/null 2>&1; then log_info "Starting containers..." start_containers "$PROFILE" || true fi -log_ok "Sync finished" \ No newline at end of file +log_ok "Sync finished successfully" \ No newline at end of file