Code-Schnippsel: Upload-Script (SSH)

Ich habe hier schon mal ein kleines Script zum automatischen Upload von Dateien auf einen Webserver vorgestellt. Mittlerweile habe ich das um ein paar Funktionen erweitert.
Da ich kein Bash- oder Linux-Profi bin gilt es natürlich vorsichtig zu sein. Für mich funktioniert das Script aber seit einer Weile ohne Probleme.

+———————————–+———————————–+ | ::: {.linenodiv} | ::: {.highlight} | | 1 | #! /bin/bash | | 2 | # License GPL v3 or later | | 3 | # https://www.gnu.org/copylef | | 4 | t/gpl.html | | 5 | | | 6 | | | 7 | ZIELPFAD=‘Zielpfad auf dem Se | | 8 | rver eingeben’ | | 9 | KONTO=‘z.B. user@example.com’ | | 10 | URL=‘user.example.com’ | | 11 | | | 12 | if [ $# -ne 1 ] || [ $1 = hel | | 13 | p ] | | 14 | then | | 15 | if [ $# -eq 2 ] && [ $1 = | | 16 | delete ] | | 17 | then | | 18 | EINGABE=$(printf %q $ | | 19 | 2) | | 20 | NAME=$(basename $EING | | 21 | ABE) | | 22 | echo “Anzeige der gef | | 23 | undenen Treffer:” | | 24 | ssh $KONTO -t “find $ | | 25 | ZIELPFAD -name $NAME” | | 26 | read -s -p “Soll(en) | | 27 | die Datei(en) gelöscht werden? (j | | 28 | /N)” -N 1 ANTWORT | | 29 | if [ -z $ANTWORT | | 30 | ] | | 31 | then | | 32 | exit | | 33 | fi | | 34 | if [ $ANTWORT != | | 35 | “j” ] | | 36 | then | | 37 | exit | | 38 | fi | | 39 | echo “” #Kosmetik | | 40 | ssh $KONTO -t “find $ | | 41 | ZIELPFAD -name $NAME -delete” | | 42 | exit | | 43 | fi | | 44 | PROGRAMM=$(basename $0) | | 45 | echo “$PROGRAMM - ein ein | | 46 | faches Uploadscript.” | | 47 | echo | | 48 | echo “Benutzung:” | | 49 | echo “$PROGRAMM Datei | | 50 | - lädt die Datei auf den Ser | | 51 | ver” | | 52 | echo “$PROGRAMM delete Da | | 53 | tei - löscht die Datei vom Serve | | 54 | r” | | 55 | echo “$PROGRAMM help | | 56 | - Hilfe” | | 57 | exit | | 58 | fi | | 59 | | | ::: | EINGABE=$(printf %q $1) | | | PFAD=$(realpath $EINGABE) | | | NAME=$(basename $EINGABE) | | | DATE=$(date +%Y-%m) | | | | | | if [ -z $PFAD ] | | | then | | | exit | | | fi | | | | | | if ssh $KONTO test -e \‘$ZIEL | | | PFAD/$DATE/$NAME\’ | | | then | | | echo Datei ist schon vorh | | | anden und wurde nicht überschrieb | | | en. | | | else | | | rsync -avzP $PFAD $KONTO: | | | \‘$ZIELPFAD/$DATE/\’ | | | ssh $KONTO -t “chmod 744 | | | $ZIELPFAD/$DATE/$NAME” | | | echo “” # Kosmetik | | | echo Gespeichert unter: $ | | | URL/$DATE/$NAME | | | fi | | | ::: | +———————————–+———————————–+

[Update 2017-08-24]

Ich habe heute mal wieder in mein Updatescript geschaut und festgestellt, dass chmod 744 besser ist als chmod 755.

Inhalt

Teilen: E-Mail

Hinterlasse einen Kommentar oder diskutiere im OSBN-Chat.

In den Kommentaren können folgende Formatierungen genutzt werden.