Kopieren per ssh mit anschließenden Codeaufruf

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von DerPate06, 18.10.2012.

  1. #1 DerPate06, 18.10.2012
    DerPate06

    DerPate06 Grünschnabel

    Dabei seit:
    18.10.2012
    Beiträge:
    4
    Zustimmungen:
    0
    Hallo,

    ich nutze die ksh und hatte folgendes vor:

    /usr/bin/ssh 'server' 'aufruf einer for-schleife'

    Er sollte auf dem Server bestimmte dateien suchen und diese auf eine andere kopieren. Wie funktioniert dies beim ssh?

    Folgendes funktionierte (aber eigentlich wollte ich das möglichst ohne zusätzliches Script auf der anderen Maschine machen):

    /usr/bin/ssh 'server' 'script mit parametern'

    Danke für die Hilfe
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 mmi, 19.10.2012
    Zuletzt bearbeitet: 19.10.2012
    mmi

    mmi Jungspund

    Dabei seit:
    23.08.2012
    Beiträge:
    16
    Zustimmungen:
    0
    "for ..." gehört ja zum Befehlsumfang einer Shell-Umgebung wie z.B. der bash, folglich muß diese auch aktiviert werden. Warum also kein Script? Evtl. geht's auch mit einem Einzeiler (z.B. "bash --login -c <command>"), habe ich aber noch nicht probiert.
     
  4. #3 floyd62, 19.10.2012
    floyd62

    floyd62 Routinier

    Dabei seit:
    01.05.2007
    Beiträge:
    309
    Zustimmungen:
    0
    Hi,

    verstehe nicht, wo das Problem liegt; ein einfaches
    Code:
    ssh server 'for F in passwd shadow group; do ls -l /etc/$F; done'
    
    funktioniert doch problemlos? Vielleicht solltest du erst genauer angeben was du bereits versucht hast, und was dabei nicht läuft ...

    Gruss, A.
     
  5. #4 DerPate06, 22.10.2012
    DerPate06

    DerPate06 Grünschnabel

    Dabei seit:
    18.10.2012
    Beiträge:
    4
    Zustimmungen:
    0
    Hi,

    erstmal danke für die Tipps, hatte irgendwie nur einen fehlerhafte Parameterübergabe. Folgendes funktioniert:

    /usr/bin/ssh 'server' 'for i in `find . -type f -ctime -1 | grep -v '^./.*/'`; do scp -p $i SERVER:$i;done'

    Gruss M.
     
  6. #5 DerPate06, 23.10.2012
    DerPate06

    DerPate06 Grünschnabel

    Dabei seit:
    18.10.2012
    Beiträge:
    4
    Zustimmungen:
    0
    Hi,

    nochmals eine Frage zur Variablenübergabe.

    Folgendes funktioniert nicht:
    /usr/bin/ssh 'server' "export $ORDNER; for i in`find $ORDNER-type f -ctime -1 | grep -v '^./.*/'`; do echo $i; done"

    Die Fehlermeldung ist Syntax ERROR.

    Ist die Parameterübergabe hier nicht richtig? Wenn ich nur den Parameter $ORDNER über ein echo testweise ausgebe,
    funktioniert es auch. Hat da vielleicht noch jemand eine Idee?

    Gruss M.
     
  7. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  8. #6 floyd62, 23.10.2012
    floyd62

    floyd62 Routinier

    Dabei seit:
    01.05.2007
    Beiträge:
    309
    Zustimmungen:
    0
    Hi,

    du könntest mal
    Code:
    /usr/bin/ssh server "export ORDNER=$ORDNER; for i in `find $ORDNER -type f -ctime -1 | grep -v '^./.*/'`; do echo $i; done"
    versuchen, oder den export-Befehl ganz weglassen: wenn du den Wert von $ORDNER nur im find-Kommando verwendest, kannst du ihn ja dort auch direkt einsetzen.

    Was du mit dem grep -v '^./.*/' eigentlich erreichen willst, ist mir allerdings unklar: wenn du einfach alle .-Files ignorieren willst, ginge evtl. auch etwas wie
    Code:
    /usr/bin/ssh server "for i in `find $ORDNER -type f -ctime -1 ! -name '.*'`; do echo $i; done"
    oder gleich (ganz ohne die for-Schleife)
    Code:
    /usr/bin/ssh server "find $ORDNER -type f -ctime -1 ! -name '.*' -exec echo {} \;"
    Gruss, A.
     
  9. #7 DerPate06, 26.10.2012
    DerPate06

    DerPate06 Grünschnabel

    Dabei seit:
    18.10.2012
    Beiträge:
    4
    Zustimmungen:
    0
    Hi,

    ich habe es jetzt wie folgt gelöst (Kopieren mit Unterordner - werden beim scp bei der Zielmaschine nicht mit angelegt)

    cd $Ordner
    touch name_backup.tar

    find $Ordner -type f -mtime -1 -exec tar rf name_backup.tar {} \; >/dev/null 2>>$Ordner/log.err


    scp -p $Ordner/name_backup.tar dirx@$TARGET:$Ordner >/dev/null 2>>$Ordner/log.err

    RMD_CMD="cd $Ordner; \
    tar xf Name_backup.tar >/dev/null 2>>$Ordner/log.err; \
    rm name_backup.tar"


    /usr/bin/ssh dirx@$TARGET $RMD_CMD

    rm $Ordner/name_backup.tar

    Gruss, M.
     
Thema:

Kopieren per ssh mit anschließenden Codeaufruf

Die Seite wird geladen...

Kopieren per ssh mit anschließenden Codeaufruf - Ähnliche Themen

  1. Kurztipp: Clonezilla: Festplatten per Klick kopieren

    Kurztipp: Clonezilla: Festplatten per Klick kopieren: Auf der bisherigen Festplatte ist kein Platz mehr, und der Inhalt soll auf eine neue Platte umziehen. Bei dieser Aufgabe und bei der...
  2. Dateien von Linux & Unix auf eine Windowsfreigabe kopieren - wie geht das?

    Dateien von Linux & Unix auf eine Windowsfreigabe kopieren - wie geht das?: Hallo, wie kann ich mit einfachen Linuxmitteln Dateien auf eine Windowsfreigabe kopieren ohne irgendwelche Tools geschweige denn die grafische...
  3. Zeilen kopieren mit SED

    Zeilen kopieren mit SED: Hallo liebe Forumsleute ich bin noch relativ unerfahren mit der Shell und bin aber fleissig am Experimentieren und Lösungen für meine Probleme...
  4. SD-Karte mit Ububtu in Datei kopieren

    SD-Karte mit Ububtu in Datei kopieren: Hallo, ich bin neu hier und brauche einen Rat. Ich möchte mit einer Live-DVD von Ubuntu eine SD-Karte komplett in eine Datei kopieren um eine...
  5. Gnome: Neues Designkonzept für Auswahl und Kopieren

    Gnome: Neues Designkonzept für Auswahl und Kopieren: Bereits seit zwei Jahren tragen sich die Entwickler damit, die Funktion der mittleren Maustaste zu verändern. Nun könnte schon bald die...