Bash SSH Zugriff, Befehle senden

Diskutiere Bash SSH Zugriff, Befehle senden im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; Hallo zusammen :) Wie der Titel schon andeutet versuche ich folgendes, möchte gerne in meinem Shellscript eine SSH Verbindung zu einem anderen...

  1. cdn123

    cdn123 Grünschnabel

    Dabei seit:
    14.12.2011
    Beiträge:
    6
    Zustimmungen:
    0
    Hallo zusammen :)

    Wie der Titel schon andeutet versuche ich folgendes, möchte gerne in meinem Shellscript eine SSH Verbindung zu einem anderen Server aufbauen und dann dort einen Befehl ausführen. Leider klappt es bis jetzt nicht so wie ich es mir erhofft habe:

    Code:
    ssh -p 999 -l user1 IP "for dir in $(find /home/backup/daily/ -atime +1 -type d); do rm -rfv $dir; done"
    ...sollten also alle Ordner die älter als 1 Tag sind gelöscht werden.

    Gerne würde ich vorher noch den Befehl:
    Code:
    touch /home/backup/daily
    auf dem anderen Server via SSH ausführen.

    Viele Grüße

    cdn
     
  2. Anzeige

    Anzeige

    Wenn du mehr über Linux erfahren möchtest, dann solltest du dir mal folgende Shellkommandos anschauen.


    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 HeadCrash, 14.12.2011
    HeadCrash

    HeadCrash Routinier

    Dabei seit:
    16.05.2009
    Beiträge:
    495
    Zustimmungen:
    2
    Ort:
    Bayern
    Hallo,

    warum legst du das ganze nicht einfach direkt als Skript auf dem anderen Server ab? :think:

    mfg
    HeadCrash
     
  4. cdn123

    cdn123 Grünschnabel

    Dabei seit:
    14.12.2011
    Beiträge:
    6
    Zustimmungen:
    0
    :) auf die Idee bin ich auch vor 2 Minuten gekommen.

    Nur da kommt jetzt ein nues Problem auf mich zu:

    Code:
    touch /home/backup/daily/backup_`date +'%Y-%m-%d__%H%M%S'`
    
    Das Funktioniert ja leider nicht. Wie könnte ich es denn stattdessen lösen, sodass der Touch befehl nur auf dem gerade erstellten Ordner ausgeführt wird?
     
  5. #4 HeadCrash, 14.12.2011
    HeadCrash

    HeadCrash Routinier

    Dabei seit:
    16.05.2009
    Beiträge:
    495
    Zustimmungen:
    2
    Ort:
    Bayern
    Öhm, hier steh ich grade auf dem Schlauch, was genau willst du tun?
    Der grade erstellte Ornder hat eh nen aktuellen Zeitstempel wieso hier also nochmal Touch bemühen?
     
  6. #5 cdn123, 14.12.2011
    Zuletzt bearbeitet: 14.12.2011
    cdn123

    cdn123 Grünschnabel

    Dabei seit:
    14.12.2011
    Beiträge:
    6
    Zustimmungen:
    0
    ...also zum vorgehen:

    Möchte eigentlich nur via rsync Server1 auf Server 2 "backupen". Ich dachte mir, dass die Dateien im Backup-Folder dann noch den originalen Zeitstempel haben. [EDIT: Und ja genau so ist es auch. Sie werden dann ebenfalls gelöscht da sie >1d sind]

    Leider funktioniert der Befehl so auch nicht. Habe dann mal ein bisschen hier im Forum gesucht und etwas anderes gefunden was eig. auch klappen sollte. Leider wird dabei der Oberordner auch mit gelöscht -.-


    Code:
    find $path -mtime +1 -type d -exec rm -rf {} ';'
    


    Eigentlich soll nur der Backupordner der gestern erstellt wurden ist gelöscht werden.

    Habs jetzt so gelöst:
    Code:
    touch /home/backup/daily
    
    for i in `find /home/backup/daily  -type d -mtime +1 -print`; do echo -e "Deleting directory $i";rm -rf $i; done
    

    Nur dazwischen fehlt mir jetzt noch der touch Befehl für den neu angelegt Ordner des Backups. Weiß zufällig jemand wie ich diesen am besten ausführe?
     
  7. cdn123

    cdn123 Grünschnabel

    Dabei seit:
    14.12.2011
    Beiträge:
    6
    Zustimmungen:
    0
    Hmm keiner eine Idee? ich zermater mir gerade den Kopf darüber :)
     
  8. #7 allesmueller, 14.12.2011
    allesmueller

    allesmueller Eroberer

    Dabei seit:
    05.07.2005
    Beiträge:
    69
    Zustimmungen:
    0

    ich denke das Thema ist quoting, d.h. "\" vor dem $ damit die Variable bzw. der Ausdruck nicht lokal sondern remote ausgewertet wird
    alternativ sollte es auch klappen, wenn du " durch ' ersetzt

    Code:
    ssh -p 999 -l user1 IP "touch /home/backup/daily; for dir in \$(find /home/backup/daily/ -atime +1 -type d); do rm -rfv \$dir; done"
     
  9. #8 allesmueller, 15.12.2011
    allesmueller

    allesmueller Eroberer

    Dabei seit:
    05.07.2005
    Beiträge:
    69
    Zustimmungen:
    0
    Die Grundsatzfrage: Warum überlässt du nicht rsync das Löschen, wenn du ohnehin nur eine Backupgeneration willst?
     
  10. cdn123

    cdn123 Grünschnabel

    Dabei seit:
    14.12.2011
    Beiträge:
    6
    Zustimmungen:
    0
    Hmm wie lasse ich denn rsync die letzte Backup Generation löschen? Dazu habe ich noch nichts gefunden.

    Auf der anderen Seite bräuchte ich nur noch eine Möglichkeit den gerade erstellten (Mit uhrzeitversehendem)Ordner von rsync zu touchen.
     
  11. #10 allesmueller, 15.12.2011
    allesmueller

    allesmueller Eroberer

    Dabei seit:
    05.07.2005
    Beiträge:
    69
    Zustimmungen:
    0
    ok, wenn du ein neues Verzeichnis haben willst wird es schwieriger :)
    aber wenn du das gleiche Verzeichnis nimmst geht es so z.B.:
    (hier nur lokal getestet, ginge aber auch remote)
    Code:
    mkdir origdir 
    touch origdir/{a,b,c,d,e}
    rsync -aH --delete -v origdir backupdir
    ls -l backupdir/origdir/
    rm origdir/a
    rsync -aH --delete -v origdir backupdir
    ls -l backupdir/origdir/
    history 
    
    aber du könntest z.B. remote den Wochentag als Verzeichnis nehmen (wenn der Platz das erlaubt),
    dann hättest du auch mehrere Generationen was sowieso gut wäre.

    Noch besser: Backuplösung nicht selbst erfinden :D
     
Thema: Bash SSH Zugriff, Befehle senden
Besucher kamen mit folgenden Suchen
  1. bash script ssh

    ,
  2. befehle über ssh senden

    ,
  3. ssh befehle senden

Die Seite wird geladen...

Bash SSH Zugriff, Befehle senden - Ähnliche Themen

  1. Warum funktioniert mein BASH - Dialog nicht ?

    Warum funktioniert mein BASH - Dialog nicht ?: Hallo, ich habe hier eine kleine Funktion in BASH geschrieben, die den Benutzer nach einer Lokalen IP Adresse Fragt, und diese dann angpingt....
  2. Frage zu Bash Script mit Grep Ausgabe

    Frage zu Bash Script mit Grep Ausgabe: Hallo Zusammen, ich schreibe gerade in Bash ein Script, mit dem ich eine Ausgabe per Grep filtere, nun ist es so - dass ich allerdings zwei...
  3. Falsches Heimatverzeichnis in der Bash

    Falsches Heimatverzeichnis in der Bash: Hallo Leute, wenn ich ein Terminal öffne und mich via "su marcel" anmelde startet die Promt im /root verzeichnis. Gebe ich echo $HOME ein kommt...
  4. [gelöst] bash, cut - wahrscheinlich die 1000.

    [gelöst] bash, cut - wahrscheinlich die 1000.: Hallo Forum, seit mehr als drei Tagen drehe ich mich im Kreis, da ich bei google & co augenscheinlich nicht die richtigen Fragen stelle. Mein...
  5. Minimal bash-like...hilfe

    Minimal bash-like...hilfe: Hi erstmal^^ Habe probiert mint zu installieren auf meinen Acer Travelmate b118. Nun, es hat irgendwie funktioniert und der gute wollte mal...
  1. Diese Seite verwendet Cookies um Inhalte zu personalisieren. Außerdem werden auch Cookies von Diensten Dritter gesetzt. Mit dem weiteren Aufenthalt akzeptierst du diesen Einsatz von Cookies.
    Information ausblenden