den inhalt eines ordners auf einem linux server auflisten

  • hi
    ich würde gerne den inhalt eines ordners auf einem linux server auflisten lassen.
    geht das ?
    via telnet?
    oder ftp?

    man soll später dei datein in diesem ordner anklicken können. so soll es mal vorgesehen sein.
    danke für hilfe

  • das dauert aber , sag ich mal ziemlich lange,,, ssh ist sicher schneller...
    wie währe denn der code für
    verbinde via ftp und lese ordner aus
    und liste in einem fenster ?

  • mit ssh (plink) verbinden und dann ls- a oder ls- ah , je nach dem welche infos du brauchst man ls
    umleiten in Datei und mit scp zum Win PC kopieren.
    SSh wird ehh laufen samba will man evtl. garnicht drauf haben usw.

    Zitat

    man soll später dei datein in diesem ordner anklicken können. so soll es mal vorgesehen sein.


    dachre das gehört zur signatur, da kommst du um ftp /samba nicht herum würde dann zu samba tendieren ist dann ja wie Windowsnetzwerk

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

  • also zu anfang...ich bin absoluter anfänger in autoit aber kann ein wenig php,
    daher ist mir das prinzip schon in eienr richtung klar.
    ich möchte mich mit diesem projekt einarbeiten.

    also ich plane das so...

    verbinden zur box... egal ob ssh oder ftp und einen ordner auslesen wo die filme drinn sind die gespeichert wurden.(wohnzimmerbox nach schlafzimmer)

    diese dann auslesen und als array auflisten lassen. die files soll man auswählen können und die ausgewählten datei namen

    als wget befehl dann von der einen box automatisch zur anderen .

    aber ohne das der pc an ist.


    ich hab erfolgreich mit plink eine cmd öffnen können aber das cmd fenster sollte auch geschlossen bleiben. aber ist das der richtige weg ?

  • Hallo paraoxodn,

    der einfachste Weg ist der Weg über eine Samba. Anleitungen zum installieren und konfihrieren des Samab-Servers finden sich im Netz zu jeder Linx-Distribtion hier z.B.: Einfache Samba Freigabe unter Debian darin ist ach erklärt wie man von Windows diese Freigabe mounted.
    Du kannst danach auf dieses Netzlaufwerk zugreifen.

    Edit: übersehen:

    aber ohne das der pc an ist.

    bin wegen AutoIt davon asgegangen, dass du von einem Windows-PC aus zugreifen willst, das geht aber nur wenn er läuft,

    mfg autoBert

  • ok

    dann anderes und vieleicht genauer...

    also

    dreamboxwohnzimmer nimmt filme auf

    pc startet autitscript....das ließt den ordner aus bei der dreambox wohnzimmer.
    da kann ich dann einzelne filme auswählen die ich auf die dreamboxwohnzimmer schieben kann.

    diese werden in eine art txt datei geschrieben ala

    ""
    wget dreamboxwohnzimmer\hdd\pumuckel.avi dreamboxschlafzimmer\hdd\pumuckel.avi
    wget dreamboxwohnzimmer\hdd\alle_was_zaehlt.avi dreamboxschlafzimmer\hdd\alle_was_zaehlt.avi
    ""

    so diese txt datei wird dann auf die dreamboxschlafzimmer geschoben oder geschrieben und via ssh gestartet.

    wenn die gestartet ist kann ich den pc ausmachen und das script läuft auf der dreambox ab.

    dreamboxschlafzimmer soll sie abspielen

  • Hast Du 2 Dreamboxen ?
    Wäre es nicht einfacher die beiden via nfs zu koppeln und dann mit einem Script linuxseitig die nfsexports über Kreuz zu verlinken.
    Bei gen2vdr gibts ein nettes Partner script wenn man mehr als einen VDR hat :)

    Vielleicht kannst Du Dir etwas umbauen, kenne mich mit der Dreambox nicht aus,
    also was für ein Basissystem darauf läuft wie Du was nachinstallieren kannst usw.

    [autoit]

    #!/bin/sh
    #set -x
    # set it to cifs/smbfs/nfs
    source /etc/vdr.d/conf/gen2vdr.cfg

    [/autoit][autoit][/autoit][autoit]

    FSTYPE="smbfs"
    MOUNTPOINTS="audio video pictures film"
    USER="root"
    PW="gen2vdr"

    [/autoit][autoit][/autoit][autoit]

    PIP="$(grep "hosts all" /etc/samba/smb.conf | sed -e "s/.*=//" | tr -d " ")"
    if [ "$PIP" = "" ] ; then
    logger -s "Keine Partner-IP in smb.conf gefunden"
    exit
    fi
    PARTNERS="$(grep $PIP /etc/hosts | sed -e "s/.*$PIP//" | tr "\t" " " | tr -s " " | cut -f 2 -d " ")"
    if [ "$PARTNERS" = "" ] ; then
    logger -s "Keine Partner in /etc/hosts gefunden"
    exit
    fi

    [/autoit][autoit][/autoit][autoit]

    for i in $PARTNERS ; do
    [ "$i" = "$HOSTNAME" ] && continue
    if ( ping -c1 -t2 $i ) ; then
    echo "Verbinde ${i}"
    for j in $MOUNTPOINTS ; do
    mkdir -p /mnt/$i/${j} > /dev/null 2>&1
    if [ "$FSTYPE" = "nfs" ] ; then
    mount -t nfs ${i}:/${j} /mnt/$i/${j}
    rc=$?
    else
    mount -t $FSTYPE -o username=$USER,password=$PW //${i}/${j} /mnt/$i/${j}
    rc=$?
    fi
    if [ "$rc" = "0" ] ; then
    logger -s "$i/$j erfolgreich ueber $FSTYPE verbunden"
    rm -f /$j/_SRV_$i > /dev/null 2>&1
    ln -s /mnt/$i/${j} /$j/_SRV_$i
    else
    logger -s "Fehler $rc beim mounten von $i/$j ($FSTYPE)"
    fi
    done
    else
    logger -s "$i ist nicht online"
    fi
    done
    touch $VIDEO/.update

    [/autoit]

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

  • Hi,
    also du kannst mit RunWait und StderrRead einfach die Ausgabe auf deinen Windowsrechner holen, und dort ein Array mit deinem Beispielinhalt (Datei) erzeugen.
    Dann wieder mir Run und putty.exe eine SSH Verbindung aufbauen und dann eine Datei mit dem Arrayinhalt auf deine Dreambox erzeugen.
    Aufrufen kannst du dann auch wieder mit der offenen SSH-Verbindung ausführen.
    Schau in der Anleitung von Putty an, da steht drin wie du mehrere Befehle in eine Puttysession mitgeben kannst.
    Achso eine Schlüsseldatei musst du auch anlegen. Das steht auber auch in der ANleitung.

    Spoiler anzeigen
    [autoit]

    ;$user =
    ;$host =
    ;pass =

    [/autoit] [autoit][/autoit] [autoit]

    $command = "ls -lai /path_tp_ffime_folder"
    $pid = run ("c:\plink.exe " & $user & "@" & $host & " -pw " & $pass & " " & $scommand, "","",6)
    While 1
    if StdOutRead($pid,0,True) <> 0 then
    $ausgabe &= StdOutRead($pid)
    EndIf
    If @error Then ExitLoop
    Sleep(50)
    WEnd
    $ausgabe &= StdOutRead($pid)
    MsgBox(0,"",$ausgabe)

    [/autoit]

    Das wäre mal der Anfang.

    MfG
    Der_Doc

  • also wenn ich das so teste bekomme ich nur fehler...
    wenn ich aber die fehler behebe so das keine kommen ^^
    ist das ergebniss eine leere msg<box

    [autoit]


    $user =("root")
    $host =("ipvomhost")
    $pass =("pass")

    [/autoit][autoit][/autoit][autoit]

    $command = "ls -lai /path_tp_ffime_folder"
    $pid = run ("c:\1\plink.exe" & $user & "@" & $host & " -pw " & $pass & " " & $command, "","",6)
    While 1
    if StdOutRead($pid,0,True) <> 0 then
    $ausgabe &= StdOutRead($pid)
    EndIf
    If @error Then ExitLoop
    Sleep(50)
    WEnd
    $ausgabe = StdOutRead($pid)
    MsgBox(0,"",$ausgabe)

    [/autoit]
  • Hi.
    1. Also erstmal werden die Variablen User Host Passwort ohne die () geschrieben.
    2. In $command solltest du natürlich auch mal den Pfad zu deinem Ordner angeben den du mit ls -lai anzeigen lassen möchtest.
    So und hast du das mit der Schlüsseldatei hinbekommen?
    Die fehlt in meinem Skript. Die muss in einem Ordner .putty im Verzeichnis des Programms plink liegen.

    Ich mache das mit FileInstall und da schieben ich plink.exe und die Schlüseldatei nach @TempDir und dann funktioniert das mit plink eigentlich.

    Such mal bei Google Nach "plink private key" oder "putty private key"
    Ich habe schon seit langer Zeit keine Schlüsseldatei mehr erstellt.

    MfG
    Der_Doc

  • Versteh nicht warum du es über einen Drittrechner laufen / starten willst.
    Im Prinzip kannst Du doch direkt über Netzwerk schauen, geht doch beim VDR auch.
    Ich kopier doch auch nix vom VDR01 auf 02/03 oder anders rum.
    Ich kann direkt über Kreuz auf den Content zugreifen, das sollte die dreambox auch können.
    Brauchst halt nur Startskripte die bei vorhandensein die Laufwerke Box1 zu Box2 und anders rum mounten

    Also machst im Video Ordner von Box2 ein Ordner Box1 bei der anderen dann Box2.
    dann mountest Du den Video Ordner von Box1 auf den Box1 Ordner von Box2 und anders herum.
    Dann mausst Du nix kopieren. Wie gesagt ein Beispiel wie ich es unter gentoo nutze steht ja oben.

    Beim VDR benötigt er noch eine versteckte Datei in dem Ordner,
    da leere Verzeichnisse im Video Ordner beim Start gelöscht werden,
    muss aber bei der dreambox nicht so sein.

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o