Der Anlass war messbar. Der Live-Stand vor dem Skript:
/OR/ 200
/OR/anhang-glossar-literatur.html 200 <- Leiche des vorigen Stands
/OR/anhang-glossar.html 404
/OR/notebooks.html 404
/OR/Notebooks_04.zip 404
/OR/Notebooks_04/ 403
scp -r ueberschreibt nur, es loescht nie - die alte Glossar-Seite bliebe
dauerhaft erreichbar. Das Zielverzeichnis vorher zu leeren waere die grobe
Antwort: Bricht die Uebertragung von 23 MB in 213 Dateien ab, ist die Website
tot. rsync --delete uebertraegt nur Geaendertes und entfernt genau das, was
verschwunden ist.
Der zweite Grund wiegt schwerer: Die Website hing wochenlang einen Bau
zurueck, ohne dass es auffiel. Vier Schritte:
1. Vorpruefung - ist eine Quelldatei neuer als die gebaute Website, Abbruch.
Ebenso: PDF der Website byte-genau wie das gebaute, Verzeichnis-
Weiterleitungen vorhanden (der Grund fuer den 403).
2. Probelauf - zaehlt Uebertragungen und Loeschungen. Mehr als 30 Loeschungen
brechen ab; das ist der Schutz gegen einen falschen Zielpfad, mit dem
--delete sonst ein fremdes Verzeichnis ausraeumt. --loeschgrenze hebt an.
3. Uebertragung (rsync -rltz --chmod=D755,F644 ueber ssh).
4. Nachpruefung - 14 Adressen per HTTP, Statuscode gegen Erwartung. Darunter
die Probe, dass die entfernte Seite wirklich 404 liefert.
Anmeldung per SSH-Schluessel, nicht per Passwort in der .env: rsync und scp
haben keine Passwort-Option, ein Passwort braeuchte sshpass und staende
waehrend der Uebertragung in der Prozessliste. Die .env (in .gitignore,
Vorlage .env.beispiel) enthaelt nur Host, Benutzer, Zielpfad und URL.
Beim ersten Test lief die Pruefung in eine irrefuehrende Meldung ("kein rsync
installiert"), waehrend in Wahrheit schon die Anmeldung fehlschlug. Die
Pruefung unterscheidet die Faelle jetzt am ssh-Rueckgabewert 255 und nennt
ssh-copy-id.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
29 lines
823 B
Text
29 lines
823 B
Text
# Gilt fuer die Version 04. Alle Pfade sind relativ zu diesem Verzeichnis -
|
|
# damit funktioniert die Datei unveraendert weiter, sobald Version_04 die
|
|
# Wurzel eines eigenen Repositorys ist.
|
|
|
|
__pycache__/
|
|
*.pyc
|
|
venv/
|
|
.venv/
|
|
|
|
# LaTeX/xelatex-Nebenprodukte des PDF-Baus (build_version_04.py --pdf)
|
|
build_v04.log
|
|
build_v04.tex
|
|
build_v04.aux
|
|
build_v04.toc
|
|
build_v04.out
|
|
build_v04.idx
|
|
build_v04.ilg
|
|
build_v04.ind
|
|
svg-inkscape/
|
|
|
|
# Von den Beispielprogrammen beim Lauf erzeugte Dateien
|
|
Operations_Research_mit_Python_Version_04_Programme/output/
|
|
produktionsmix.xlsx
|
|
produktionsmix_ergebnis.xlsx
|
|
|
|
# Zugangsdaten fuers Veroeffentlichen (veroeffentliche_04.py). Enthaelt zwar
|
|
# kein Passwort - die Anmeldung laeuft ueber den SSH-Schluessel -, aber Host,
|
|
# Benutzer und Serverpfad gehen niemanden etwas an. Vorlage: .env.beispiel
|
|
.env
|