Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ====== upload.bash ====== Aus irgendwelchen Gründen werden die Berechtigungen auf dem Server falsch gesetzt, wenn von Windows aus mit scp ganze Ordner kopiert werden. Folgendes bash-script kopiert den aktuellen Ordner rekursiv (d.h. mit allen Unterordnern) und setzt danach die Berechtigungen korrekt. Dieses soll als ''~/bin/upload.bash'' gepeichert werden. Die Tilda (~) steht für Ihr Home-Verzeichnis, normalerweise ''C:\Users\hans.muster'' (grafisch wird ''Users'' oft auch als ''Benutzer'' angezeigt). Entweder speichern Sie untenstehenden Datei mit ''Rechtklick->Link speichern unter'' direkt am richtigen Ort (eventuell ist das Verzeichnis ''bin'' noch anzulegen), oder gehen Sie dazu wie folgt vor: * git-bash öffnen (oder Powershell geht auch). * geben Sie folgende Kommandos ein: <code bash> cd mkdir -p bin code bin/upload.bash </code> Kopieren Sie dann folgenden Inhalt in die Datei: <code bash upload.bash> # Dieses bashscript kopiert den aktuellen Ordner # rekursiv auf den Server. # Optional kann ein Zielordner angegeben werden. PFAD=$(pwd) #echo Pfad ist ${PFAD} DIR=$(basename "${PFAD}") #echo Dir ist ${DIR} HOME=`realpath ~` if [ "$HOME" = "$PFAD" ]; then echo "Oops! Sie befinden sich im Verzeichnis $PFAD." echo "Dieses Verzeichnis wird nicht auf den Server kopiert!" echo "Wechseln Sie in das zu kopierende Verzeichnis!" exit fi # Entweder . (HOME) oder Argument als Zielordner if [ -z $1 ]; then TARGET="." else TARGET="$1" fi #echo Target ist ${TARGET} if [ "." != "${TARGET}" ]; then echo "ensuring target ${TARGET} exists" echo ssh ofi mkdir -p "\"${TARGET}\"" ssh ofi mkdir -p "\"${TARGET}\"" fi echo "Copying..." echo scp -r "${PFAD}" "ofi:${TARGET}" scp -r "${PFAD}" "ofi:${TARGET}" echo "Adjusting permissions..." echo ssh ofi chmod -R u+rwX,go+rX,go-w "${TARGET}/${DIR}" ssh ofi chmod -R u+rwX,go+rX,go-w "${TARGET}/${DIR}" </code> * Speichern Sie dann die Datei (File -> Save) oder einfacher <key>Ctrl</key><key>s</key>. ===== Anwendungsbeispiele ===== <code bash> upload.bash # Lädt das ganze aktuelle lokale Verzeichnis mit allen Unterverzeichnissen auf den Server hoch, in ein Verzeichnis mit gleichem Namen </code> <code bash> upload.bash hello # Lädt das ganze aktuelle lokale Verzeichnis mit allen Unterverzeichnissen auf den Server hoch, als Unterverzeichnis im Verzeichnis hello (das nötigenfalls angelegt wird). </code> ==== Ganzer Ordner kopieren ==== Voraussetzung: Sie haben den Ordner mit dem Code der aktuellen Webseite in Visual Studio Code geöffnet. Nehmen wir an, dieser Ordner heisse ''humpfdidumpf''. * Öffnen Sie ein git-bash Terminal in Visual Studio Code: {{:lehrkraefte:blc:informatik:glf24:web:pasted:20250403-095623.png}} * geben Sie das neue Kommando ''upload.bash'' ein. * Der ganze Inhalt vom aktuellen Verzeichnis ''humpfdidumpf'' wird auf den Server in den Ordner ''humpfdidumpf'' kopiert und die Berechtigungen auf dem Server automatisch gesetzt. ==== Ganzer Unterordner kopieren ==== Voraussetzung: Sie haben den Ordner mit dem Code der aktuellen Webseite in Visual Studio Code geöffnet. Nehmen wir an, dieser Ordner heisse ''humpfdidumpf''. Sie möchten den Unterordner ''images'' kopieren. * Öffnen Sie ein Terminal in Visual Studio Code (Menu ''Teminal->New Terminal'') * wechseln Sie im Terminal ins Verzeichnis ''images'' mit dem Kommando ''cd images''. * geben Sie das neue Kommando ''upload.bash humpfdidumpf'' ein. * Der ganze Inhalt vom aktuellen Verzeichnis ''images'' wird auf den Server in den Ordner ''humpfdidumpf'' kopiert und die Berechtigungen auf dem Server automatisch gesetzt. ==== Default Terminal auf git-bash setzen ==== {{:lehrkraefte:blc:informatik:glf24:web:pasted:20250512-205115.png}} [[https://stackoverflow.com/questions/44435697/change-the-default-terminal-in-visual-studio-code|Quelle]] lehrkraefte/blc/informatik/glf24/web/scp-workaround.txt Last modified: 2025/05/12 18:51by Ivo Blöchliger