einschlafen des Macbooks verhindern
This commit is contained in:
1 parent
3e1c561559
commit
f035a3dc0c
1 file changed
+19
-2
@@ -13,6 +13,11 @@
|
||||
PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/homebrew/bin"
|
||||
export PATH
|
||||
|
||||
# Schlaf verhindern, solange dieses Script laeuft (-w $$ endet mit dem Script).
|
||||
# -i Idle-Sleep, -m Platten-Sleep, -s System-Sleep (nur am Netzteil wirksam).
|
||||
# Der Bildschirm darf ausgehen.
|
||||
caffeinate -i -m -s -w $$ &
|
||||
|
||||
SHARES=(
|
||||
photos
|
||||
rob
|
||||
@@ -115,6 +120,7 @@ fi
|
||||
EXIT_CODE=0
|
||||
PROBE_TIMEOUT="${PROBE_TIMEOUT:-20}"
|
||||
RSYNC_TIMEOUT="${RSYNC_TIMEOUT:-60}"
|
||||
RSYNC_RETRIES="${RSYNC_RETRIES:-3}"
|
||||
|
||||
# Fuehrt einen Befehl mit Zeitlimit (Sekunden) aus; macOS hat kein timeout.
|
||||
# Ein haengender Prozess (z.B. ls auf toter SMB-Verbindung) wird nicht
|
||||
@@ -180,8 +186,19 @@ run_rsync() {
|
||||
# -r Unterverzeichnisse inkl. leerer, -l Symlinks, -t Zeitstempel (wie /COPY:DAT),
|
||||
# --partial setzt abgebrochene Uebertragungen fort (wie /z). Kein --delete:
|
||||
# robocopy /E spiegelt ebenfalls nicht. --timeout bricht bei SMB-Haengern ab.
|
||||
rsync -rlt -h -v --progress --partial --stats --timeout="$RSYNC_TIMEOUT" --exclude=".DS_Store" --exclude="._.DS_Store" "$source/" "$MOUNT_POINT/$share/"
|
||||
local rc=$?
|
||||
# Bei Abbruch (z.B. SMB-Timeout) bis zu RSYNC_RETRIES mal weiter; --partial und
|
||||
# der Zeitstempelvergleich sorgen dafuer, dass Fertiges nicht neu kopiert wird.
|
||||
local rc attempt=1
|
||||
while :; do
|
||||
rsync -rlt -h -v --progress --partial --stats --timeout="$RSYNC_TIMEOUT" --exclude=".DS_Store" --exclude="._.DS_Store" "$source/" "$MOUNT_POINT/$share/"
|
||||
rc=$?
|
||||
[ "$rc" -eq 0 ] && break
|
||||
[ "$attempt" -lt "$RSYNC_RETRIES" ] || break
|
||||
attempt=$((attempt + 1))
|
||||
log "rsync fuer $share endete mit Code $rc, neuer Versuch $attempt/$RSYNC_RETRIES in 15s"
|
||||
sleep 15
|
||||
run_with_timeout "$PROBE_TIMEOUT" probe_source "$source" || { log "WARNUNG: $source weiterhin nicht lesbar"; break; }
|
||||
done
|
||||
if [ "$rc" -ne 0 ]; then
|
||||
log "WARNUNG: rsync fuer $share endete mit Code $rc"
|
||||
EXIT_CODE=1
|
||||
|
||||
Reference in new issue
Block a user