tutorials.de Buch-Aktion 05/2012
Like Tree4Danke
  • 1 Beitrag von Mirar
  • 1 Beitrag von EasyEagle
  • 1 Beitrag von gorefest
  • 1 Beitrag von gorefest
ERLEDIGT
JA
ANTWORTEN
8
ZUGRIFFE
463
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    ChrizZel ChrizZel ist offline Mitglied
    Registriert seit
    Sep 2009
    Beiträge
    19
    Hallo Leute,

    ich habe mal eine Frage vllt. kann mir jemand von euch helfen.
    Und zwar schreibe ich grad an einem Plugin welches mir lediglich einen Wert zurück gibt, um genauer zu sein den genutzten Speicher auf meiner Festplatte/ Partition/Bereich.

    Der Plan mit dem befehl:

    echo du -sh . | lftp -u user,password user.your-backup.de

    wird einem unter Linux sofern man lftp installiert hat der genutze Speicher zurück gegeben als wert z.B. 43 G. Nun ist mein Problem, dass er wenn ich

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    try {
               Process ausgabe = Runtime.getRuntime().exec("echo du -sh . | lftp -u "+user+","+password+" "+user+".your-backup.de");
                
                BufferedReader in = new BufferedReader(new InputStreamReader(ausgabe.getInputStream()));
                text = text+in.readLine();System.out.println(text);
            } catch (IOException ioe) {
              
                System.out.println("Unbekannter Befehl");
                System.exit(3);
            }

    wenn ich nun aber das unter linux ausführe baut er mir den Befehl schon richtig zusammen mit den Variablen. Aber er führt den Befehl nicht aus. Er ignoriert das echo und dann hab ich versucht vor der pipe zu escapen ( \ | ) aber bei java ist ja nen backslash automatisch nen befehl.. sogar in nem String ... -.-

    Nun meine frage vllt. kennt ja jemand von euch eine einfachere lösung einfach über Java den genutzten speicher auslesen zu lassen (von nem FTP).
     

  2. #2
    Avatar von Mirar
    Mirar Mirar ist offline Mitglied
    Registriert seit
    Oct 2011
    Beiträge
    20
    Guten Abend.

    Ich kenn mich leider nicht ganz so gut mit Shell aus aber in Java musst du wenn du einen \ als String nutzen willst eben diesen Escapen. Also würdest du statt "\ |" "\\ |" schreiben.

    Probiers mal damit.

    Gruß Mirar
    ChrizZel bedankt sich. 
    Man kann niemanden überholen, wenn man in seine Fußstapfen tritt...

  3. #3
    ChrizZel ChrizZel ist offline Mitglied
    Registriert seit
    Sep 2009
    Beiträge
    19
    Danke erst einmal, habe gestern auch schon versucht mit \\ er hat es dann auch übernommen, aber der befehl wurde trotzdem nicht ausgeführt.

    Das Programm tut sonst alles was es tun soll, aber er führt den Befehl anscheinend auf der Shell einfach nicht aus. Ich habe mir auch schon den Befehl ausgeben lassen den er gebaut hat und 1:1 so in die shell kopiert und enter gedrückt. Und er liefert mir das gewünschte Ergebnis, Problem ist ja nur das ich das nicht immer per Hand machen will, das Script soll schließlich unsere BackUp Server in regelmäßigen Abständen prüfen.

    Also ist es notwendig das er das von alleine macht. Ich habe schon von nem Kollegen den Tipp bekommen ich solle mich mit Python versuchen, aber jetzt extra eine neue Programmiersprache zu lernen..... -.-
     

  4. #4
    EasyEagle EasyEagle ist offline Mitglied
    Registriert seit
    Jan 2012
    Ort
    München
    Beiträge
    19
    Hi,

    ich hab mich auch kürzlich mit der Script-aus-Java-Thematik befasst, allerdings mit Schwerpunkt Batch (also unter Windows).
    Soweit ich weiß musst du die entsprechende Schell mit in den command aufnehmen.
    Also so etwa:

    JavaCode:
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    try {
        String[] command = {"/bin/bash", "echo du -sh . | lftp -u "+user+","+password+" "+user+".your-backup.de"};
        Process ausgabe = Runtime.getRuntime().exec(command);
        
        BufferedReader in = new BufferedReader(new InputStreamReader(ausgabe.getInputStream()));
            while((text=in.readLine())!=null){
                log.info(text);
            }
        } catch (IOException ioe) {
            System.out.println("Unbekannter Befehl");
            System.exit(3);
        }
    }
    ChrizZel bedankt sich. 
    http://brain.yubb.de/
    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    „Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren.“

  5. #5
    ChrizZel ChrizZel ist offline Mitglied
    Registriert seit
    Sep 2009
    Beiträge
    19
    Ich guck mal nachher nach, danke erstmal =)

    Ich sag dann bescheid ob es geklappt hat.
     

  6. #6
    gorefest gorefest ist offline Mitglied Brokat
    Registriert seit
    Apr 2009
    Beiträge
    256
    Mal ne doofe Frage, warum machst Du nicht einfach das direkt mit ner Java-FTP-Library?
    ChrizZel bedankt sich. 

  7. #7
    ChrizZel ChrizZel ist offline Mitglied
    Registriert seit
    Sep 2009
    Beiträge
    19
    würde ich auch lieber machen =) hab da nur keine Ahnung, also hatte mich bisher nicht mit beschäftigt. Sitze grad noch an ein paar anderen Sachen kam leider noch nicht dazu hier weiter zu machen.

    Wenn du mir sagst wie ich das am besten mit der Java-FTP-Libary mache wäre ich dir sehr dankbar. D.h. wie funktioniert das mit dem Login oder mit dem ausgeben des genutzten Speichers.
     

  8. #8
    gorefest gorefest ist offline Mitglied Brokat
    Registriert seit
    Apr 2009
    Beiträge
    256
    Hi,

    schau doch mal hier

    http://www.torsten-horn.de/techdocs/java-ftp.htm

    ist afaik mit der apache commons ftp lib gemacht

    Grüße,
    gore
    ChrizZel bedankt sich. 

  9. #9
    ChrizZel ChrizZel ist offline Mitglied
    Registriert seit
    Sep 2009
    Beiträge
    19
    =) okay nen Kollege macht das jetzt mit reiner Shell. Habe es immerhin zum laufen bekommen. Danke an alle.
     

Ähnliche Themen

  1. Java-Shell-Probleme
    Von OberPinsel im Forum Java
    Antworten: 5
    Letzter Beitrag: 25.03.10, 16:27
  2. Dateien auf anderen Server spiegeln - LFTP
    Von deostift im Forum Linux & Unix
    Antworten: 1
    Letzter Beitrag: 13.06.07, 13:12
  3. Shell Skript mit Java starten
    Von desaster0505 im Forum Java
    Antworten: 2
    Letzter Beitrag: 09.03.07, 14:23
  4. Java-Programm ohne Shell
    Von warlike im Forum Java
    Antworten: 5
    Letzter Beitrag: 15.06.05, 18:51
  5. FTP-Verbindung über Shell
    Von uwee im Forum Sonstige Sprachen
    Antworten: 2
    Letzter Beitrag: 18.04.05, 11:23

Stichworte