Results 1 to 6 of 6

Thread: Script über cron aufrufen klappt nicht :(

  1. #1

    Script über cron aufrufen klappt nicht :(

    Hallo zusammen

    Nachdem ich jetzt schon den halben Feiertag recht erfolglos hier rumprobiere, frage ich mal nach Hilfe.

    Ich habe einen 500gP nach dem tollen Tutorial von wengi eingerichtet und bin eigentlich auch ganz zufrieden, allerdings scheitere ich daran, über cron ein Skript aufzurufen, das über ssh wunderbar funktioniert. Das Skript heisst sr2_rip.sh ist ausführbar und liegt unter /usr/local/bin/.
    Der entsprechende Abschnitt der crontab sieht so aus:

    Code:
    SHELL=/bin/sh
    PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/sbin:/opt/bin:/usr/local/bin
    MAILTO=""
    HOME=/
    # ---------- ---------- Default is Empty ---------- ---------- #
    #M S  T  M  W   Befehl
    
    #SR 2 Kulturradio
    50 16 *  *  *    admin sr2_rip.sh > /dev/null 2>&1
    Leider passiert dadurch gar nichts. Das Statusfenster im Webif meldet bringt zwar folgende Meldung,
    Code:
    Jan  6 16:50:01 /opt/sbin/cron[243]: (admin) CMD (sr2_rip.sh > /dev/null 2>&1)
    sonst ist aber tote Hose (ps axf zeigt keine entsprechenden Prozesse).

    Den Router nutze ich hauptsächlich für Radioaufnahmen mit dem streamripper, die über cron auch wunderbar klappen. Ziel des sr2_rip Skripts ist die Aufnahme eines mms-Senders, dessen URL zu allem Überfluss auch noch jedes Mal neu abgefragt werden muss. Wie gesagt, das Skript lässt sich über das ssh-Terminal ohne Probleme aufrufen und das Aufnahmeprogramm (mmsrip) verrichtet brav seinen Dienst.

    Der Vollständigkeit halber hier noch der Inhalt von sr2_rip.sh:
    Code:
    #!/bin/sh
    
    wget http://live01.sr-online.de/sr/sr2_wm_64.pl
    sleep 2
    URL=$(egrep -o -m 1 mms://............................................................................................................................................abcd sr2_wm_64.pl)
    DATE=$(date  -d now +%F).wma
    mmsrip -d60 -o/tmp/mnt/disc1_1/raw/sr2_lesung/$DATE $URL
    rm sr2_wm_64.pl
    Nicht gerade elegant, aber immerhin mein erstes Skript und es funktioniert (aus dem Terminal heraus..).
    Last edited by Mokake; 06-01-2009 at 22:45.

  2. #2
    Join Date
    Feb 2006
    Location
    Düsseldorf
    Posts
    277
    Hi Mokake,

    hast Du die letzte Zeile in der crontab mit einem Return abgeschlossen? Wenn nicht, dann wird Dein cron nichts ausführen. Ich glaube das ist der Fehler. Darauf bin ich auch schon reingefallen.

    Norbert

  3. #3
    Ja, Return ist gesetzt, daran liegt es leider nicht.

    In der crontab sind auch noch eine Menge anderer Streamripper-Befehle, die alle wunschgemäß ausgeführt werden. Nur das Skript verweigert seinen Dienst.

  4. #4
    Join Date
    Jul 2007
    Location
    Austria
    Posts
    1,336
    Wo ist der Streamripper-Script gespeichert?
    Gib jedenfalls den vollstaendigen Pfad in der Crontab an.

    Du schreibst, auf der Konsole geht der Script. Von wo aus rufst du (wie) den Script auf und als welcher user?
    Setze den script einmal auf chmod 777 /pfad/script

    Naja ob dein cron geht siehst du ja schnell. Wenn dein Logrotate durchgefuehrt wird, geht auch der Cron.
    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

  5. #5
    Hi newbiefan

    Danke für die Antwort, ich habe am Samstag selber noch etwas rumprobiert, mich hier dann allerdings noch nicht gemeldet. Das Skript wird ausgeführt, hat jedoch Probleme mit dem Befehl "date -d now +%F". Ich nehme an, dass cron das % als Zeichen für eine neue Linie interpretiert. Siehe hier. (Obwohl der date Befehl ja nur im Skript steht..)

    Ich habe das Skript inzwischen so abgeändert, dass mmsrip in eine fixe datei schreibt und das klappt auch wie gewünscht.

    Gibt es eine einfache Möglichkeit, einen variablen Dateinamen (am liebsten das Datum) generieren zu lassen, ohne date zu benutzen?

    Bin gerade nicht zuhause, ich melde mich heute abend noch mal..

  6. #6

    Talking

    Es klappt.

    Immer wenn das Skript per cron aufgerufen wird, wird das "date" verwendet, das unter /bin liegt. Und diese Version hat Probleme mit "date -d now". Als Antwort kommt dann:
    Code:
    date: invalid date `now'
    Mit /opt/bin/date funktioniert das Ganze jedoch. Allem Anschein nach wurde bei Aufruf aus dem Terminal (mit der Shell) das /opt/bin/date verwendet, beim Aufruf über cron stattdessen aber /bin/date.

    Die entsprechende Zeile im Skript sieht jetzt so aus:
    Code:
    DATE=$(/opt/bin/date -d now +%F)

Similar Threads

  1. Cron startet nicht
    By Pay87 in forum German Discussion - Deutsch (DE)
    Replies: 2
    Last Post: 27-11-2008, 12:32
  2. Verbinden von zwei WL500GP klappt nicht
    By marrrtin in forum German Discussion - Deutsch (DE)
    Replies: 13
    Last Post: 09-08-2007, 15:34
  3. manche Seiten gehen über ASUS WL500g nicht
    By Drachentoeter in forum German Discussion - Deutsch (DE)
    Replies: 10
    Last Post: 06-03-2006, 22:07
  4. Dateien >2 GB über Samba nicht sichtbar?
    By akbor in forum German Discussion - Deutsch (DE)
    Replies: 4
    Last Post: 07-02-2006, 22:08

Posting Permissions

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