Page 1 of 4 123 ... LastLast
Results 1 to 15 of 50

Thread: Shell Script: Datei auf Router laden

  1. #1

    Shell Script: Datei auf Router laden

    Hallo,

    ich habe schon wieder ein neues Problem. Und zwar will ich große Dateien mit meinem Router herunterladen.

    Weil Ados mit meiner Festplatte (spindown) nicht klar kommt und ich mit Oleg's FW den Asus Downloadmanager nicht mehr benutzen kann, dachte ich mir, dass ich ein Shell-Script schreiben kann welches auf meinem Computer von Opera automatisch ausgeführt wird, wenn ich rechts auf einen Link klicke.

    Das Script sieht so aus:
    Code:
    #!/bin/bash
    echo "cd /tmp/harddisk/" > ~/script/kommando.txt
    echo "screen wget " $1 $2 $3 $4 $5 $6>> ~/script/kommando.txt
    plink -ssh 192.168.1.1 -l admin -pw admin -m ~/script/kommando.txt
    Das Script wird auch ausgeführt (plink Fenster poppt auf, aber der Screen/wget Download wird abgebrochen

    Weiß einer woran das liegt?

  2. #2
    Join Date
    Feb 2005
    Location
    Germany - Frankfurt
    Posts
    1,548
    Code:
    #!/bin/bash
    echo "cd /tmp/harddisk/" > ~/script/kommando
    echo "screen -dmS MeinDownload wget " $1 $2 $3 $4 $5 $6>> ~/script/kommando
    plink -ssh 192.168.1.1 -l admin -pw admin -m ~/script/kommando
    ungetestet

    Überprüfe mal, ob in ~/script/kommando auch wirklich das Richtige drin steht.
    Was passiert, wenn Du ~/script/kommando anschließend manuell startest?
    wengi
    Last edited by wengi; 30-09-2009 at 14:09.
    Übersicht aller HowTos --- HowTo Overview (mostly german)
    WL-HDD mit diesem Setup. --- WL-HDD with this setup.
    Kein Support per PM - Frage im jeweiligen Thread! --- No support via pm - ask in the according thread!
    Eine wirklich gute Idee erkennt man daran, dass ihre Verwirklichung von vorne herein ausgeschlossen erscheint. (Albert Einstein)

  3. #3

    Fortsetzen schon probiert?

    wget -c kann einen angefangenen Download fortsetzen.

    Vielleicht hilft ein Button "Fortsetzen" etwas?

    (Oder probier mal curl statt wget
    screen curl -C - -O Dateiname (oder so ähnlich)
    mit -# erhältst du nur den Fortschritt

    Wenn es läuft kannst du die Skripte ja mal schicken!)
    Last edited by Gerdi; 30-09-2009 at 17:07.

  4. #4
    @wengi

    in der txt steht jetzt:

    cd /tmp/harddisk/
    screen wget -e --recursive=off -R?N=D,?M=A,?S=A,?D=A http://wl500g.info/showthread.php?p=162341#post162341
    wenn ich kommando.txt jetzt starte kommt:

    bauerj@bauerj-Ubuntu:~$ plink -ssh 192.168.1.1 -l admin -pw admin -m ~/script/kommando.txt -t
    /opt/var/run/utmp: No such file or directory
    [screen is terminating]
    => Es ist nichts in /tmp/harddisk/ (außer den Ordnern, die vorher schon da waren.)
    Anscheinend wird screen von plink beendet, wenn alle Befehle abgearbeitet sind.
    Last edited by bauerj; 30-09-2009 at 18:00.

  5. #5
    So, ich habe es jetzt vescuht mit cron zu machen, aber ich habe das Gefühl der Router mag mich nicht.

    Das Script ist jetzt so weit dass es
    in der crontab einen Eintrag

    "*/1 * * * * /tmp/harddisk/dl-script.sh"
    erstellt. Ist der Eintrag soweit richtig? (Jede Minute .../dl-script.sh ausführen?)

    in dl-script.sh
    Code:
    #!bin/sh
    sed '$ d' /opt/etc/crontab > /tmp/harddisk/file.tmp
    mv /tmp/harddisk/file.tmp /opt/etc/crontab
    wget $1 -o $speicherort
    schreibt (letzte Zeile crontab löschen, download $1 in $speicherort)


    Ist das alles so richtig? Bei mir führt cron es nicht richtig aus

  6. #6
    Join Date
    Feb 2005
    Location
    Germany - Frankfurt
    Posts
    1,548
    Hallo bauerj,

    entschuldige bitte, aber der Thread ist mir irgendwie durch die Lappen gegangen
    Den Ansatz mit cron finde ich eher schlecht.

    Über ssh ist da der Bessere.
    Wenn das in der txt steht stimmt schon mal was nicht,
    Code:
    cd /tmp/harddisk/
    screen wget -e --recursive=off -R?N=D,?M=A,?S=A,?D=A http://wl500g.info/showthread.php?p=162341#post162341
    Mit diesen Optionen kann wget sicherlich nichts anfangen!
    Es stellt sich die Frage, was Du mit $1 $2 $3 $4 $5 $6 übergibst....

    Was die Fehlermeldung
    Code:
    /opt/var/run/utmp: No such file or directory
    angeht, so ist auch hier der Fehler beim nicht richtig lesen
    Wenn ich das eingebe erhalte ich auch den Fehler.
    Code:
    [admin@blechbuechse root]$ screen echo hallo
    /opt/var/run/utmp: No such file or directory
    Du solltest wirklich das benutzen, was ich oben gepostet habe! Also
    Code:
    screen -dmS MeinDownload ...
    Die plink Geschichte scheint ja zu funktionieren, aber Du solltest eins nach dem Anderen machen!

    Also:
    1) Überprüfen, ob eine SINNVOLLE, AUSFÜHRBARE kommando erstellt wird.
    2) Testen, ob diese auch mit den o.g. screen Kommandos funktioniert.
    3) Erst dann den Remote-Start mit plink.

    Bei Dir hängt es schon bei 1) und 2)

    wengi
    Übersicht aller HowTos --- HowTo Overview (mostly german)
    WL-HDD mit diesem Setup. --- WL-HDD with this setup.
    Kein Support per PM - Frage im jeweiligen Thread! --- No support via pm - ask in the according thread!
    Eine wirklich gute Idee erkennt man daran, dass ihre Verwirklichung von vorne herein ausgeschlossen erscheint. (Albert Einstein)

  7. #7

    Warum nicht crontab?

    Den Ansatz mit cron finde ich eher schlecht.
    Das verstehe ich nicht.
    Ich bin ja nur ein Anfänger, aber seit es Oleg mit transmission gibt lade ich schon mit einem Cron herunter.

    Transmission-Watchdog ist doch auch ein Cronjob?

    Ich habe parallel dazu einen Download Cronjob.
    Er fragte jede Minute, ob die Datei der zu herunterladenenden Dateien aktualisiert wurde.
    Wenn ja beginnt ein wget.

    Die Datei der zu herunterladenden Dateien ist per Samba freigegeben.
    Wenn ich dort eine Datei eintrage wird sie automatisch heruntergeladen und dann der Eintrag gelöscht.
    Das funktioniert wunderbar.

    Bei ssh ist das grosse Problem, dass die Prozesse nur laufen, solange die Verbindung besteht. Wenn aber sowieso beide Computer an sein müssen, kann ich gleich mit dem grösseren downloaden.


    P.S.: Transmission funktioniert ja nun schon wunderbar. Aber könnte man nicht noch eine Downloadfunktion für gewöhnliche Dateien hinzufügen? Das wäre ja nicht schwierig, mit wget oder curl.

  8. #8
    @wengi

    Ich hab das Script noch mal völlig neu gemacht:
    Code:
    #!/bin/bash
    speicherort="/tmp/harddisk*/"
    FS=$(ls -l ./plink-kommando | tr -s " " | cut -d " " -f 5)
    if [ "$FS" = "297" ]
    
    then
    echo "echo wget $1 -o $speicherort >> /tmp/harddisk/dl-script.sh" >> ./plink-kommando
    
    else 
    rm ./plink-kommando
    wget http://bauerj.kilu.de/plink-kommando
    echo "echo wget $1 -o $speicherort >> /tmp/harddisk/dl-script.sh" >> ./plink-kommando
    fi
    
    #plink starten
    plink -ssh 192.168.1.1 -l admin -pw admin -m ./plink-kommando -t
    
    sed '$ d' ./plink-kommando > ./file.tmp
    mv ./file.tmp ./plink-kommando
    Warum findest du cron denn schlecht? Na gut das optimale ist es jetzt auch nicht (die Festplatte läuft ständig). Ich werde es also schnell nochmal mit screen probieren.

    So geht es jedenfalls auch nicht:
    #!/bin/bash
    speicherort="/tmp/harddisk/*"

    echo "screen wget $1 -o $speicherort" > ./plink-kommando


    #plink starten
    plink -ssh 192.168.1.1 -l admin -pw admin -m ./plink-kommando -t
    Dann steht im plink-kommando:
    screen wget www.web.de -o /tmp/harddisk/*
    Und es kommt wieder zurück:
    ./test.sh www.web.de
    /opt/var/run/utmp: No such file or directory
    [screen is terminating]
    Last edited by bauerj; 07-10-2009 at 17:16.

  9. #9

    Crontab und Festplatte

    Warum findest du cron denn schlecht? Na gut das optimale ist es jetzt auch nicht (die Festplatte läuft ständig).
    Das stimmt nicht.
    Meine Festplatte ruht.

    /tmp ist eine Ram-Disk.
    Solange cronjobs nur auf /tmp zugreifen bleibt die Platte ruhig.

  10. #10
    Ja, aber liegt die crontab nicht in /opt/etc ?

    Ist das eigentlich mit dem -o ... richtig so?
    Ohne scheint es jedenfalls zu klappen!

  11. #11

    crontab

    Die Crontab liegt auf /opt.

    Opt ist aber (nur bei mir?) NICHT auf die Festplatte gemountet, sondern auf einen USB-Stick.

    Zudem besteht für /opt nur dauernder Lesezugriff, sodass der USB-Stick nicht durch Schreib-Zugriffe beschädigt wird.

  12. #12
    Aha OK So gehts natürlich auch, aber ich habe gerade keinen mit dem Router funktionierenden USB-Hub zur Hand.

    Na egal, es geht ja auch mit screen

    Eine Frage hab ich noch:

    Wie kann man die Ausgabe von wget x in eine Textdatei schreiben?

    Oder gint es dafür einen log-Befehl?

    Edit: gefunden! -o
    Last edited by bauerj; 07-10-2009 at 17:38.

  13. #13
    Join Date
    Feb 2005
    Location
    Germany - Frankfurt
    Posts
    1,548
    Hallo,

    cron macht natürlich generell Sinn.
    Aber einen cron Job minütlich auszuführen ist nicht hübsch.
    Da gibt es meist bessere Wege.

    @Gerdi
    Der watchdog von transmission wird schon lange nicht mehr benötigt.
    No comment.

    @bauerj
    Ich versuche es jetzt zum Dritten und Letzten mal. Entweder Du machst jetzt die Augen auf oder suchst Dir an anderer Stelle Support:
    Dann steht im plink-kommando:
    screen wget www.web.de -o /tmp/harddisk/*
    Und es kommt wieder zurück:
    ./test.sh www.web.de
    /opt/var/run/utmp: No such file or directory
    [screen is terminating]
    Ich zitiere mich selbst:
    Du solltest wirklich das benutzen, was ich oben gepostet habe! Also
    Code:
    screen -dmS MeinDownload ...
    Mit -dmS starten und danach einen Namen vergeben. Dann erst das wget.
    Überprüfen kannst Du es anschließend mit ps axf (also sehen, ob sreen noch läuft) bzw. mit screen -r, um dich in die screen session einzuklinken.

    Und nochmal: Wer lesen kann ist klar im Vorteil!

    wengi
    Übersicht aller HowTos --- HowTo Overview (mostly german)
    WL-HDD mit diesem Setup. --- WL-HDD with this setup.
    Kein Support per PM - Frage im jeweiligen Thread! --- No support via pm - ask in the according thread!
    Eine wirklich gute Idee erkennt man daran, dass ihre Verwirklichung von vorne herein ausgeschlossen erscheint. (Albert Einstein)

  14. #14

    Transmission watchdog

    Code:
    Der watchdog von transmission wird schon lange nicht mehr benötigt.

    Das habe ich auch gemerkt. Schliesslich musste ich früher bei jedem Update von Transmission den Watchdog umschreiben damit nicht mehr jede 5 Minuten auf die Festplatte zugegriffen wurde, sondern auf die Ram-Disk. Jedes Update überschrieb diese Änderungen wieder. (Das hat sich aber jedesmal gelohnt!! Transmission ist toll!!!!)

    Ich sehe keinen grossen Unterschied, ob ein Cronjob jede Minute abgefragt wird oder ob eine TCP-IP-Verbindung jeden Bruchteil einer Sekunde abgefragt wird.

    Wie gesagt:
    SSH und PLINK bringen NICHTS.
    Beide verlangen eine dauernde Verbindung. Wenn eine dauernde Verbindung eines grossen Computers zur Box besteht, dann lädt man selbstverständlich mit dem grossen Computer herunter und nicht mit der kleinen Box.

    Der Vorteil der kleinen Box liegt gerade darin, dass sie ohne Computer herunterladen kann. Das geht mit einer SSH-Verbindung nicht. Deshalb macht auch Transmission das nicht.

    Natürlich kann ein Profi oder Snob jetzt einen TCP-IP-daemon programmieren, der auf der Box startet (mit xinet oder inetd).
    Aber wenn man es einfach haben will führt kein Weg an einem Cronjob vorbei. (Oder an einem TCP-IP-Socket mit Perl vielleicht...)

  15. #15
    Join Date
    Jul 2007
    Location
    Austria
    Posts
    1,336
    Quote Originally Posted by Gerdi View Post
    Wie gesagt:
    SSH und PLINK bringen NICHTS.
    Beide verlangen eine dauernde Verbindung. Wenn eine dauernde Verbindung eines grossen Computers zur Box besteht, dann lädt man selbstverständlich mit dem grossen Computer herunter und nicht mit der kleinen Box.

    Der Vorteil der kleinen Box liegt gerade darin, dass sie ohne Computer herunterladen kann. Das geht mit einer SSH-Verbindung nicht. Deshalb macht auch Transmission das nicht.

    Natürlich kann ein Profi oder Snob jetzt einen TCP-IP-daemon programmieren, der auf der Box startet (mit xinet oder inetd).
    Aber wenn man es einfach haben will führt kein Weg an einem Cronjob vorbei. (Oder an einem TCP-IP-Socket mit Perl vielleicht...)
    Also, so stimmt das nicht. Man kann ohne weiteres eine z.Bspl. Dropbear-Verbindung kappen und trotzdem laeuft der Script weiter, das geht sogar ganz einfach.
    z.Bspl:
    Code:
    #! /bin/sh
    #Scriptname: testjob
    while [ true ] ; do
    echo "Testfile-Ausgabe" >> /tmp/mnt/disc0_3/testfile.txt
    done
    Naja, dann ruft man den Script einfach auf der Console auf und schickt ihn in den background mit "&".

    Code:
    chmod 755 testjob
    testjob &
    Wenn der Script im gleichen Directory liegt und nicht im Pfad (echo $PATH) dann eben:
    Code:
    chmod 755 testjob
    ./testjob &
    Das war's auch schon
    have fun

    NACHTRAG: kann man ganz einfach mit 2 Consolen pruefen, einmal "top" und einmal nach Eingabe und Start die Console schliessen.
    Ach ja, den Script mit "killall testjob" stoppen oder mit "CTRL+c" wenn er nicht im Hintergrund laeuft.
    Und die Echo Ausgabe auskommentieren, wenn sie auf die Console ausgegeben wird oder mit "> /dev/null" umleiten (muesste auch gehen)...
    Last edited by newbiefan; 08-10-2009 at 16:47.
    Alle HowTo's, all howto's

    RT-N16 1.9.2.7-rtn-r3121, Samba, VSFTP, Lightthpd, PHP, Perl, MySQL, Serendipity, Aria2web, HDD 640GB
    RT-N66U, 16GB MicroSD/ 2 Partitions, 2,5" HDD 1TB, running with Merlin's FW and Entware, 16 Mbit A1,
    Netgear DGND 3700V2, QNAP TS119PII 4 TB, QNAP TS209 2 TB Raid1, Backup Synology DS107+ 1 TB, HP CP1515n

Page 1 of 4 123 ... LastLast

Similar Threads

  1. Zugriff auf Router geht nicht mehr nach Homepage-Implementierung
    By gschnedl in forum German Discussion - Deutsch (DE)
    Replies: 1
    Last Post: 22-01-2009, 12:48
  2. Kein Ping auf Router über W-lan/kein Internet
    By Tomkin in forum German Discussion - Deutsch (DE)
    Replies: 11
    Last Post: 21-10-2007, 15:22
  3. Imap auf dem Router
    By The Joker in forum German Discussion - Deutsch (DE)
    Replies: 0
    Last Post: 02-05-2007, 01:25
  4. Datei auf Router laden und Mailserver einrichten ?
    By ebird in forum German Discussion - Deutsch (DE)
    Replies: 0
    Last Post: 29-04-2006, 14:05

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •