Sie sind nicht angemeldet.

Anzeigen

**Wir werden in den kommenden Tagen einen Umzug auf einen neuen Server durchführen. Im Rahmen dieser Maßnahme wird das Forum ca. 1 Stunde nicht erreichbar sein.** nslu2-info.de ist ein privates Projekt von mir, welches jeden Monat aus eigener Tasche finanziert wird. Mit einer freiwilligen Spende wird der Erhalt und der weitere Ausbau dieses Forums unterstützt. Um mich beim Erhalt des Forums zu unterstützen, kannst Du entweder via Flattr oder Paypal spenden. Ich bedanke mich schon jetzt bei allen Unterstützern.

Lieber Besucher, herzlich willkommen bei: Die NSLU2 Community****wenns ums speichern und streamen geht****. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

13.03.2006, 12:24

Problem mit RC-Skripten - bitte um Hilfe

Hallo Leute!

Ich habe ein seltsames Problem und komme einfach auf keine Lösung. Ich benutze Unslung 5.5 und habe auf einen USB-Stick ge-unsling-ed.

Über einen Cron-Job rufe ich ein shell-Skript auf, das eine Perl-Applikation aufruft (XMLTV). Das funktioniert alles wunderbar, aber NUR, wenn ich nach jedem Reboot den cron-deamon mit

Quellcode

1
/etc/rc.d/rc.crond


restarte. Wenn ich das nicht tue, läuft das shell-Skript, aber die Perl-Applikation macht einfach gar nichts (zumindest nichts, was irgendwie ersichtlich wäre).

Auch kann ich mich mit vsftpd nach einem Reboot nur dann verbinden, wenn ich vorher xinetd mit

Quellcode

1
/etc/rc.d/rc.xinetd


restarte. Davor verhält sich das ganz so, als ob vsftpd gar nicht laufen würde (ich bekomme einfach keine FTP-Verbindung auf der IP der Slug).

Woran kann das liegen?

Liebe Grüße

MJFox

Anzeigen

caplink811

Forensupporter

Beiträge: 2 200

Verwendetes NAS-Device: 64X2/8GB/Ubuntu10.04LTS

Firmwareversion / your current Firmware: anderes

Wohnort: Berlin

Beruf: TK/IT Consulting and Engineering

  • Nachricht senden

2

13.03.2006, 18:18

Tach,

poste doch mal Deine Crontab und Dein Shell Script, sowie /unslung/rc.xinetd

bye
JrB
"Supporting joe users worldwide" <- that's our motto


Anzeigen

3

14.03.2006, 08:15

hier die rc.xinetd im /unslung-Verzeichnis:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
#!/bin/sh
# Diversion script: /unslung/rc.xinetd
# Customize for your own use, do not delete your original content!
#
#if ( [ ! -f /etc/inetd.conf ] || !(grep swat /etc/inetd.conf -q) ) then
    #echo "swat stream tcp nowait root /opt/sbin/swat swat" >>/etc/inetd.conf
#fi
if [ ! -f /etc/inetd.conf ] || !(grep vsftpd /etc/inetd.conf -q) ; then
    echo "ftp stream tcp nowait root /opt/sbin/vsftpd /opt/etc/vsftpd.conf" >>/etc/inetd.conf
fi
return 1


hier die rc.xinetd im etc/rc.d/-Verzeichnis

Quellcode

1
2
3
4
5
6
7
#!/bin/sh
if ( [ -f /unslung/rc.xinetd ] && . /unslung/rc.xinetd ) ; then return 0 ; fi
if [ -n '`pidof inetd`' ] ;then
killall inetd 2>/dev/null
# killall -9 inetd &>/dev/null
fi
/bin/inetd &>/dev/null


hier meine crontab (in /etc)... ganz oben habe ich sämtliche enviroment-Variablen reingeschrieben, die mir env für root liefert

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
USER=root
MAIL=/var/spool/mail/root
TERMINFO=/opt/share/terminfo
HOME=/home/user/root
LOGNAME=root
TERM=xtermc
PATH=/opt/sbin:/opt/bin:/sbin:/bin:/usr/sbin:/usr/bin
SHELL=/bin/sh
PWD=/home/user/root
# ---------- ---------- Default is Empty ---------- ---------- #
0 0-23/8 * * * root /usr/sbin/CheckDiskFull &>/dev/null
0 0 * * * root /usr/sbin/WatchDog &>/dev/null
# 1 * * * * root /usr/sbin/hwclock -s &>/dev/null
1 * * * * root /opt/bin/ntpclient -h pool.ntp.org -s &>/dev/null
5 2 * * * root /public/tv/tv.sh &>/public/tv/tv.log
*/10 * * * * root /home/user/root/mailcheck/mailcheck &>/dev/null


und schließlich noch mein Shell-Skript, das das Perl-Skript aufruft (mit /opt/bin/perl /opt/bin/tv_grab_de_tvtoday --days 1 $SLOW --offset $day --output $XMLFILE >xmltv.log wird das Perl-Skript aufgerufen):

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
[size=10]#!/bin/bash
cd /public/tv
echo Aktuelle Uhrzeit: `date`
export PATH=/opt/sbin:/opt/bin:/sbin:/bin:/usr/sbin:/usr/bin
export LANG=C
# Der Pfad in welchem die XML-TV und die TGD Dateien gespeichert werden!
#XMLPATH=/home/user/root/xmltv
XMLPATH=/share/flash/data/public/epg
# Verzeichnis mit der xmltv Senderliste
XMLTVCONFDIR=/home/user/root/.xmltv
# Zeitzone setzen! Der xmltv Grabber bekommt sonst Hektik!
export TZ=CET
# Das Output Verzeichnis anlegen falls es noch nicht vorhanden ist!
mkdir -p $XMLPATH
# Manche Sender(?) bieten ihre Daten nicht 12 Tage im voraus an.
# Deshalb wird hier die n Tage XML-TV Datei gelscht. Diese wird
# dann garantiert noch einmal geholt und an den Topfield bermittelt!
if [ true ]
then
rm -f $XMLPATH/`date --date="5 days" +%Y%m%d`.*
rm -f $XMLPATH/`date --date="2 days" +%Y%m%d`.*
rm -f $XMLPATH/`date --date="0 days" +%Y%m%d`.*
fi
 
# Nun die Dateien der letzten Tage lschen. Sie werden nicht mehr bentigt.
for day in 2 3 4 5 6 7 8 9
do
DATECODE=`date --date="-$day days" +%Y%m%d`
rm -f $XMLPATH/$DATECODE*
done
 
# Mittels xmltv das TV Programm fr die nchsten 7 bis 14 Tage holen.
# Anmerkung: 14 Tage fr 12 Sender sind zuviel fr den Topfield!
# Anmerkung 2: Der 8. Tag kann nicht geholt werden. Dieser wird von
# tvtoday als "Gestern" interpretiert!
for day in 0 1 2
do
# Die xmltv Senderliste kopieren. Dies wird hier ausserhalb des if..fi Blocks
# gemacht, damit die Senderliste auf jeden Fall kopiert wird.
if [ -f $XMLTVCONFDIR/tv_grab_de_tvtoday.$day.conf ]
then
cp $XMLTVCONFDIR/tv_grab_de_tvtoday.$day.conf $XMLTVCONFDIR/tv_grab_de_tvtoday.conf
fi
 
# Den Basisnamen fr die TGD Datei schaffen. Dieser besteht aus dem Datum in der Art yyyymmdd
DATECODE=`date --date="$day days" +%Y%m%d`
 
XMLFILE=$XMLPATH/$DATECODE.xml
TGDFILE=$XMLPATH/$DATECODE.tgd
# Testen, ob es die entsprechende TGD Datei gibt.
echo Teste, ob es $TGDFILE schon gibt
if [ ! -f $TGDFILE ]
then
# Runter laden der XML-TV Daten fr einen Tag mittels xmltv.
echo TGD Datei fr $DATECODE fehlt und wird geholt!
 
# Fr die nchsten Tage werden die erweiterten Infos geladen. Ab dem 3. Tag nicht mehr!
if [ $day -eq 0 -o $day -eq 1 -o $day -eq 2 ]
then
echo Die Sendungen werden MIT den erweiterten Infos geholt.
SLOW=--slow
unset MAXLONGDESC
else
echo Die Sendungen werden OHNE die erweiterten Infos geholt.
unset SLOW
MAXLONGDESC=-maxLongDesc=0
fi
 
if [ ! -f $XMLFILE ]
then
echo Hole XML-File mit tv_grab_de_tvtoday nach $XMLFILE
/opt/bin/perl /opt/bin/tv_grab_de_tvtoday --days 1 $SLOW --offset $day --output $XMLFILE >xmltv.log
else
echo XML-File $XMLFILE schon vorhanden
fi
 
# Konvertieren der XML-TV Datei in das TGD Format!
FROMDATECODE=`date --date="$day days" +%Y-%m-%d`
#/opt/bin/jamvm -cp /opt/share/classpath -jar xmltv2tgd.jar:dom4j-1.6.1.jar xmltv2tgd.Starter -startDate=$FROMDATECODE $MAXLONGDESC $XMLFILE $TGDFILE
gawk -f MakeTGD.awk $XMLFILE | gawk -f swap-1-2.awk | sort | gawk -f swap-1-2.awk | sort >$TGDFILE
 
# echo Aktuelle Uhrzeit: `date`
# Lschen und dann kopieren der TGD Datei auf den Topfield!
puppy -c put $TGDFILE EPGdata\\$DATECODE.tgd
else
echo gibt es schon!
fi
done
echo Aktuelle Uhrzeit: `date` [/SIZE]


Hilft das irgendwie weiter?

Bin für jede Hilfe dankbar!

Liebe Grüße

MJFox

4

15.03.2006, 21:03

irgendwer irgendwelche Tipps? habe mich heute schon wieder gut eine Stunde mit dem Thema herumgespielt und nichts herausfinden können :(

Liebe Grüße

MJFox

caplink811

Forensupporter

Beiträge: 2 200

Verwendetes NAS-Device: 64X2/8GB/Ubuntu10.04LTS

Firmwareversion / your current Firmware: anderes

Wohnort: Berlin

Beruf: TK/IT Consulting and Engineering

  • Nachricht senden

5

17.03.2006, 19:54

N'Abend,

Hm, /unslung/rc.xinetd sieht gut aus, es wird die /etc/inetd.conf geschrieben, und dann via return 1 die /etc/rc.xinetd ausgeführt, wo dann der inetd gestartet wird.
- Läuft denn nach einem Neustart dann auch der inetd ? (ps -ef|grep inetd)
- Wenn ja, steht denn auch das obige wirklich in /etc/inetd.conf ?

Zum 2. Problem, /bin/bash sollte es eigentlich nicht geben, wenn doch, hast Du krumm installiert... Wenn das Script läuft, auch wenn es via crond gestartet wird, dann hat Perl evtl. ein Problem...

bye
JrB
"Supporting joe users worldwide" <- that's our motto


Social Bookmarks