Einzelnen Beitrag anzeigen
Alt 18.01.2004, 20:03   #11
valo
Inventar
 
Registriert seit: 15.11.2000
Alter: 43
Beiträge: 7.684


Standard

Zitat:
Original geschrieben von justsmile
@sloter:

Geniale Idee!

Mein Traum-Szenario ist:

Start: scpmove
Verbindung: zu Remoteserver
Remote: Komprimieren der Dateien mit Unterverzeichnissen
Verbindung: übertragen der kompr. Datei
Lokal: Entpacken der Datei in Unterverzeichnisse
Remote: löschen der kompr. Datei / der Dateien

noch besser wäre: scpmove user@remote:/verzeichnis/* zielverzeichnis
und der rest geschieht vollautomatisch und mittels ssh-schlüssel!

Wundert mich, dass das noch niemand implementiert/programmiert hat
weils mich grad interessiert hat, hab ich ein bissl gebastelt

was hältst du davon?

aufruf ist:

./scpmove $USER $SERVER $REMOTE_DIR $LOCAL_DIR $TAR_FILENAME

REMOTE_DIR ist _OHNE_ "*" anzugeben, das macht das script!
Code:
#!/bin/sh
# v1, valo
# Username fuer die SSH/SCP Verbindung
USER=$1

# Servername von dem kopiert und geloescht werden soll
SERVER=$2

# Remote Verzeichnis, dessen Inhalt getart/kopiert und geloescht gehoert.
# Der Pfad ist OHNE einem * anzugeben!
#RDIR=$HOME/remote
RDIR=$3

# Lokales Verzeichnis in welches der Inhalt des tar-files entpackt wird.
#LDIR=$HOME/test
LDIR=$4

# Dateiname des tar-files
#TARFILE=test.tar
TARFILE=$5

# tar Aufruf am Server
TCMD="tar -cf $TARFILE $RDIR/* 2>1 >/dev/null"

# Kommando um die Dateien am Server zu leoschen
DELCMD="rm -r $TARFILE $RDIR/*"

# SSH Keys fuer die Verbindung sind unbedingt empfehlenswert, da ansonsten
# 3x das Passowrt eingeben werden muss.

# Dieses Script erstellt aus dem Verzeichnis $RDIR am Server $SERVER ein
# tar-file mit dem Namen $TARFILE. Als Benutzername fuer die SSH/SCP
# Verbindungen wird $USER verwendet.
# Anschliessend wird $TARFILE zum lokalen Computer mittels SCP kopiert
# und die Dateien aus $RDIR sowie die Datei $TARFILE auf $SERVER geloescht.
# $TARFILE wird lokal in das Verzeichnis $LDIR entpackt und anschliessend
# geloescht.


echo connect make tar
ssh -2 -l $USER $SERVER $TCMD
echo download tar
scp -q -2 $USER\@$SERVER:$TARFILE $LDIR/$TARFILE
echo remove remote files
ssh -2 -l $USER $SERVER $DELCMD
echo extract local tar
cd $LDIR
tar -xf $TARFILE
echo remove local tar
rm -f $LDIR/$TARFILE
exit 0
ich werd das noch ein bissl verfeinern, aber es funktioniert bei mir auf alle fälle...
____________________________________
Yeah, yo mama dresses you funny and you need a mouse to delete files.
Jabber-ID: valo [at] cargal \'.\' org

Infected Mushroom and Barri Saharof - Live in Eilat Desert Israel 24-10-2002
A*S*Y*S - SSL-Pickup 21-10-2002
Dj Tiesto - Forbidden Paradise 8/Mystic Swamp
valo ist offline   Mit Zitat antworten