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.

#! /bin/bash
# License GPL v3 or later
# https://www.gnu.org/copyleft/gpl.html


ZIELPFAD='Zielpfad auf dem Server eingeben'
KONTO='z.B. user@example.com'
URL='user.example.com'

if [ $# -ne 1 ] || [ $1 = help ]
    then
    if [ $# -eq 2 ] && [ $1 = delete ]
        then 
        EINGABE=$(printf %q $2)
        NAME=$(basename $EINGABE)
        echo "Anzeige der gefundenen Treffer:"
        ssh $KONTO -t "find $ZIELPFAD -name $NAME"
        read -s -p "Soll(en) die Datei(en) gelöscht werden? (j/N)" -N 1 ANTWORT
            if [ -z $ANTWORT ]
                then
                exit
            fi
            if [ $ANTWORT != "j" ]
                then
                exit
            fi
        echo "" #Kosmetik
        ssh $KONTO -t "find $ZIELPFAD -name $NAME -delete"
        exit
    fi
    PROGRAMM=$(basename $0)
    echo "$PROGRAMM - ein einfaches Uploadscript."
    echo 
    echo "Benutzung:"
    echo "$PROGRAMM Datei         - lädt die Datei auf den Server"
    echo "$PROGRAMM delete Datei  - löscht die Datei vom Server"
    echo "$PROGRAMM help          - Hilfe"
    exit
fi

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 \'$ZIELPFAD/$DATE/$NAME\'
then
    echo Datei ist schon vorhanden und wurde nicht überschrieben.
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.