WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Linux, UNIX, Open Source

Linux, UNIX, Open Source Rat & Tat bei Problemen und Fragen rund um GNU/Linux, BSD und sonstige UNIXe

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
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
Alt 18.01.2004, 20:03   #12
Sloter
Inventar
 
Registriert seit: 05.01.2000
Beiträge: 3.812


Standard

Zitat:
Original geschrieben von justsmile

und das Ganze funktioniert dann ohne rsync oder ähnliches mit jedem Server, der SSH/SCP unterstützt!



Sloter
Sloter ist offline   Mit Zitat antworten
Alt 18.01.2004, 20:31   #13
valo
Inventar
 
Registriert seit: 15.11.2000
Alter: 43
Beiträge: 7.684


Standard

noch ein kleines update, damit das script nicht mit falschen daten arbeitet, wenn man eine der angaben vergessen hat:

und wenn man jetzt noch die "echo ..." im if-block herausnimmt, dann arbeitet das script ganz leise, ausser es passiert ein fehler.

Code:
#!/bin/sh
# v1.1, valo
# Username fuer die SSH/SCP Verbindung
#USER=valo
USER=$1

# Servername von dem kopiert und geloescht werden soll
#SERVER=shangrila.lan.valo.at
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. SSHv2 wird als Protokoll erzwungen.

# 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.

if [ $USER -a $SERVER -a $RDIR -a $LDIR -a $TARFILE ]
    then
        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
    else
        echo Eine oder mehrere Argumente nicht angegeben
fi
exit 0
____________________________________
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
Alt 19.01.2004, 00:52   #14
justsmile
Senior Member
 
Registriert seit: 15.12.2003
Beiträge: 150


Standard

@valo

Genial!


So hab ich mir das vorgestellt!!

Mein Problem ist, dass ich ein bissi programmieren kann, aber eben nicht gut genug

Dein Script funktioniert schon mal vom Hinsehen
Danke für Deine Mühe!
Ich werde es in Kürze testen!

Long life
justsmile ist offline   Mit Zitat antworten
Alt 19.01.2004, 12:02   #15
valo
Inventar
 
Registriert seit: 15.11.2000
Alter: 43
Beiträge: 7.684


Standard

Zitat:
Original geschrieben von justsmile
@valo

Genial!


So hab ich mir das vorgestellt!!


freut mich, dass es gut funktioniert. es gibt sicher noch einige sachen die man verbessern könnte... zb automatische erkennung ob von einem server kopiert werden soll, oder von lokal nach server...
____________________________________
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
Alt 02.02.2004, 12:51   #16
citizen428
Elite
 
Registriert seit: 04.04.2001
Beiträge: 1.358


citizen428 eine Nachricht über ICQ schicken
Standard

Das Topic ist zwar schon älter, tauchte aber grade heute auch in der Newsgroup de.comp.os.unix.shell auf. Es wurden 2 interessante Antworten präsentiert:

Von Marcel Meckel:
Code:
Robert K. schrieb:

> gibt es eine Möglichkeit ein VZ per tar zu packen und ohne temporäre
> Datei gleich per scp oder ssh auf einen entfernten Rechner abzulegen
                                                                                                                                                
tar cvf - dir/ | buffer | ssh -c blowfish ssh user@host "cd /path/to/dest/
&&  buffer | tar xvf -"
Von Jürgen P. Meier:
Code:
mknod /tmp/fifo p
tar cjf /tmp/fifo XXX & scp /tmp/fifo us@rech:ziel.tbz
                                                                                                                                                
oder:
tar cjf - xxx | ssh -e none us@rech cat '>ziel.tbz'
                                                                                                                                                
(Viele tar Inkarnationen verwenden /dev/rmt oder $TAPE als default
wenn nicht per -f <archive> explizit angegeben)
____________________________________
citizen428.blog() | CARGAL | open.source.mac
citizen428 ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:16 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag