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