Upload-Script für den eigenen Webspace

Häufig habe ich schon Screenshots bei One-Click-Hostern hochgeladen um Probleme zu illustrieren. Mittlerweile bin ich aber bei uberspace und habe dort auch SSH-Zugriff also habe ich mir ein kleines Script geschrieben, das einzelne Dateien (sollte auch bei Ordnern funktionieren) direkt hochlädt. Da ich mich über einen public key authenifiziere kann ich das ganze auch schön automatisieren.

Ich bin jetzt nicht der Shell-Script-Profi, von daher hat das Ganze bestimmt noch Verbesserungspotenzial. Ich weiß auch nicht, ob man über falsche Eingaben evtl. Code zur Ausführung übergeben kann. Da ich das für mich selbst geschrieben habe und keine anderen es auf meinem Rechner nutzen können, habe ich es nicht darauf getestet. Schließlich werde ich mich nicht bemühen einen Weg dazu zu finden um meinen eigenen Rechner zu manipulieren. ;)

Vielleicht ist das Script aber für Leute, die noch weniger Ahnung vom scripten haben als ich, auch hilfreich oder vielleicht kann irgendjemand etwas hübscheres, besseres daraus basteln, weshalb ich beschlossen habe es hier zu veröffentlichen.

Damit das Script funktioniert wird realpath benötigt.

+———————————–+———————————–+ | ::: {.linenodiv} | ::: {.highlight} | | 1 | #! /bin/bash | | 2 | | | 3 | ZIELPFAD=‘/var/www/upload’ | | 4 | # Upload-Verzeichnis auf dem | | 5 | Server | | 6 | KONTO=‘user@example.de’ | | 7 | # SSH Zugangsdaten | | 8 | URL=‘http://upload.example.de | | 9 | ‘ # Zieladresse | | 10 | | | 11 | if [ $# -ne 1 ] | | 12 | then | | 13 | echo Dieses Skript is | | 14 | t nur für die Übergabe einer Date | | 15 | i, bzw. eines Ordners, ausgelegt. | | 16 | exit | | 17 | fi | | 18 | | | 19 | EINGABE=$(printf %q $1) | | 20 | PFAD=$(realpath $EINGABE) | | 21 | NAME=$(basename $EINGABE) | | 22 | DATE=$(date +%Y-%m) | | 23 | | | 24 | if [ -z $PFAD ] | | 25 | then | | 26 | exit | | 27 | fi | | 28 | | | 29 | if ssh $KONTO test -e \‘$ZIEL | | 30 | PFAD/$DATE/$NAME\’ | | ::: | then | | | echo Datei ist schon vorhan | | | den und wurde nicht überschrieben | | | . | | | else | | | rsync -avP –ignore-existin | | | g $PFAD $KONTO:\‘$ZIELPFAD/$DATE/ | | | \’ | | | echo | | | echo Gespeichert unter: $UR | | | L/$DATE/$NAME | | | fi | | | ::: | +———————————–+———————————–+

Jahr-Monat hoch und gibt die URL aus. Beispiel:
Jahr-Monat hoch und gibt die URL aus. Beispiel:
URL aus. Beispiel:

::: {.highlight} $ upload foo.bar
sending incremental file list foo.bar 0 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=0/1)

sent 101 bytes  received 34 bytes  90.00 bytes/sec
total size is 0  speedup is 0.00

Gespeichert unter: http://upload.example.de/2014-01/foo.bar

:::

[Update 2014-09-20]

Ich habe das Script mittlerweile etwas erweitert.

Inhalt

Teilen: E-Mail

Hinterlasse einen Kommentar oder diskutiere im OSBN-Chat.

In den Kommentaren können folgende Formatierungen genutzt werden.