![]() |
![]() |
|
|
|||||||
| Registrieren | Hilfe/Forumregeln | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
| Linux, UNIX, Open Source Rat & Tat bei Problemen und Fragen rund um GNU/Linux, BSD und sonstige UNIXe |
![]() |
|
|
Themen-Optionen | Ansicht |
|
|
#11 | |
|
Inventar
![]() Registriert seit: 15.11.2000
Alter: 43
Beiträge: 7.684
|
Zitat:
![]() 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
____________________________________
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 |
|
|
|
|
|
|
#12 | |
|
Inventar
![]() Registriert seit: 05.01.2000
Beiträge: 3.812
|
Zitat:
Sloter |
|
|
|
|
|
|
#13 |
|
Inventar
![]() Registriert seit: 15.11.2000
Alter: 43
Beiträge: 7.684
|
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 |
|
|
|
|
|
#14 |
|
Senior Member
![]() Registriert seit: 15.12.2003
Beiträge: 150
|
@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 ![]() |
|
|
|
|
|
#15 | |
|
Inventar
![]() Registriert seit: 15.11.2000
Alter: 43
Beiträge: 7.684
|
Zitat:
![]() 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 |
|
|
|
|
|
|
#16 |
|
Elite
![]() |
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 -"
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) |
|
|
|
![]() |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
| Ansicht | |
|
|