You are not logged in.

  • Login

1

Saturday, October 13th 2007, 7:08pm

Script ausführen per Cronjob

Hi,

ich hab folgendes Problem, ich hab ein Script geschrieben:

PHP Quellcode

1
2
3
4
<?php
header("Location: http://85.214.28.248:8500/admin.cgi?pass=PASSWORD&mode=updinfo&song=Track%20Update%20www.DACOOON.COM"); 
exit;
?>


Das ich eigentlich per Cronjob aufrufen wollte.
Mhh, der das script sollte unten beim Shoutcast den Current Song überblenden... Aber jetzt jedes mal wenn ich das Script aufrufe per Cronjob sagt das Ding mir:

Ausgabe des Befehls /usr/bin/php /srv/www/vhosts/dacooon.com/subdomains/static-p1/httpdocs/trackupdate/index.php ..

Es wurde keine Ausgabe erstellt


Gestartet wird es mit dem Befehl...
/usr/bin/php /srv/www/vhosts/dacooon.com/subdomains/static-p1/httpdocs/trackupdate/index.php
Naja ich weiß nicht, was ich noch alles machen soll... Ich hoffe ihr könnt mir helfen... Danke ;)

2

Saturday, October 13th 2007, 7:21pm

Header werden nur vom Browser akzeptiert. PHP sagt deinem Browser also "Bitte leite weiter"

Da du das aber nicht im Browser aufrufst hört auch keiner zu, dass weitergeleitet werden soll.
Was du suchst, ist eher etwas wie fsockopen oder in der faulen Variante einfach file_get_contents.

Eine noch bessere Möglichkeit wäre es für diese triviale Sache kein PHP Script zu benutzen, sondern das ganze mit wget zu machen.

3

Saturday, October 13th 2007, 7:23pm

Hi,

mit fsockopen, kenn ich mich nicht aus. Wäre nett wennde mir da helfen könntest.
Wenn ich das richtig in Errinnerung habe, dann lad ich mcit wget doch was runter, aber ich möchte das nicht runter laden... Oder verstehe ich das gerade falsch, das was du mir mitteilen möchtest.... ?!

4

Saturday, October 13th 2007, 7:49pm

"Herunterladen" und "Speichern" sind zwei paar Schuhe. Was du willst ist doch der Aufruf einer Internetadresse, oder?

Bash

1
wget -O - http://url.de

5

Saturday, October 13th 2007, 7:52pm

Hi,

jepp aufrufen...

Aber wenn ich das so mache, dann sagt er mir das...

Ausgabe des Befehls wget -O - http://85.214.28.248:8500/admin.cgi?pass…info&song=Track ..

--19:53:29-- http://85.214.28.248:8500/admin.cgi?pass=PW
=> `-'
Connecting to 85.214.28.248:8500... connected.
HTTP request sent, awaiting response... 200 No headers, assuming HTTP/0.9
Length: unspecified
ICY 404 Resource Not Found
icy-notice1:<BR>SHOUTcast Distributed Network Audio Server/Linux v1.9.8<BR>
icy-notice2:The resource requested was not found<BR>


0K 11.45 MB/s

19:53:29 (11.45 MB/s) - `-' saved [161]

6

Saturday, October 13th 2007, 8:48pm

naja, ich würde sagen, dass hat nichts mit wget zu tun ;) Das wird im Browser bestimmt nicht anders aussehen, oder?

Quoted


ICY 404 Resource Not Found
icy-notice1:<BR>SHOUTcast Distributed Network Audio Server/Linux v1.9.8<BR>
icy-notice2:The resource requested was not found<BR>

7

Saturday, October 13th 2007, 10:12pm

Hi,
doch, das Fenster ist blank und oben is der Link ausgeführt....
Und unter http://dacooon.com:8500/ ist unter dem Punkt Current Song der Track Update....
Gruß

8

Sunday, October 14th 2007, 10:53am

achso, ja leer ist die Seite selbstverständlich. Das steht nur in den Antwort-Headern.

Dein Passwort hat nicht zufälligerweise merkwürdige Zeichen?
Übergib deine URL mal als String

Bash

1
wget -O - 'http://85.214.28.2....'

9

Sunday, October 14th 2007, 5:06pm

Ausgabe des Befehls wget -O - 'http://dacooon.com:8500/admin.cgi?pass=PASSWORD&mode=updinfo&song=Track%20Update%20www.DACOOON.COM' ..

--16:58:21-- http://dacooon.com:8500/admin.cgi?pass=P…www.DACOOON.COM
=> `-'
Resolving dacooon.com... 85.214.28.248
Connecting to dacooon.com|85.214.28.248|:8500... connected.
HTTP request sent, awaiting response... 200 No headers, assuming HTTP/0.9
Length: unspecified
ICY 404 Resource Not Found
icy-notice1:<BR>SHOUTcast Distributed Network Audio Server/Linux v1.9.8<BR>
icy-notice2:The resource requested was not found<BR>



0K 12.21 MB/s

16:58:21 (12.21 MB/s) - `-' saved [161]

SO das ist jetzte Aktuelle der Fehler, der da rauskam wie ich den Link als String eingeben habe... und ich habe schon die Leerzeichen hinten mit %20 gemacht, aber das bringt auch nicht irgendwie nichts.
Ich hatte auch schon ne Datei geschriebn, html.. 2 Frames drinne mit dem Link und dann per meta tag nen reload der datei, das geht ja auch so, nur halt anders net... und dafür müsste denn mein rechner die ganze zeit anbleiben, das das ding immer Reloaded...
Gruß
P.S. Nein das Passwort hat keine Sonderzeichen

10

Sunday, October 14th 2007, 5:16pm

meta Angaben genau wie header Befehle werden vom Browser behandelt. Auf diese Art hast du also keine Chance.

Also wenn die URL wirklich 1:1 existiert, dann ists mir unerklärlich warum es nicht funktioniert. Probiers halt mal mit file_get_contents.

11

Tuesday, October 16th 2007, 11:15am

Quoted from "dehne"


Mhh, der das script sollte unten beim Shoutcast den Current Song überblenden...

hi ! ich nehme stark an das du auf ner webseit etc. ne ausgabe machen willst für einen shoutcast stream bzw. die ausgabe von dem shoutcast haben möchtest... habe das mal so im netz gefunden frag mich jetzt aber net wo ^^

PHP 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
<?php
$server = "0000"; //hier deinen server eintragen z.b. musik.de oder 213.61.885.8
$port = "8000"; //hier den port eintragen (ist standart 8000)
$fp = @fsockopen($server, $port, $errno, $errstr, 30);
 
if ($fp) {
fputs($fp, "GET /7.html HTTP/1.0\r\nUser-Agent: XML Getter (Mozilla Compatible)\r\n\r\n");
while(!feof($fp))
$page .= fgets($fp, 1000);
fclose($fp);
$page = ereg_replace(".*<body>", "", $page);
$page = ereg_replace("</body>.*", ",", $page);
$numbers = explode(",", $page);
$shoutcast_currentlisteners = $numbers[0]; //variable ueber die aktuelle anzahl der zuhoerer
$connected = $numbers[1]; //variable zum anzeigen ob ein sender verbunden sind
if($connected == 1) {
$radio_status = 1; //variable zum anzeigen ob radio an ist oder nicht
$wordconnected = "yes"; //zusaetzliche variable die ich brauchte;)
}
else
$wordconnected = "no"; //zusaetzliche variable die ich brauchte
$shoutcast_peaklisteners = $numbers[2]; //variable die die anzahl der peaks angiebt
$shoutcast_maxlisteners = $numbers[3]; //variable ueber die maximal moegliche anzahl der zuhoerer
$shoutcast_reportedlisteners = $numbers[4]; //
$shoutcast_bitrate = $numbers[5]; //bitrate;)
$shoutcast_cursong = $numbers[6]; //aktueller song
$shoutcast_curbwidth = $shoutcast_bitrate * $shoutcast_currentlisteners; //gesamtbandbreite
$shoutcast_peakbwidth = $shoutcast_bitrate * $shoutcast_peaklisteners; //gesamtpeakbandbreite
}
 
## output on ##
echo '<html><title>Shoutcast</title><body>';
if ($radio_status == 1) {
echo 'Anzahl der hoerer: ' . $shoutcast_currentlisteners . '<br />';
echo 'Gesamtbandbreite: ' . $shoutcast_curbwidth . ' kb/s<br />';
echo 'Bitrate: ' . $shoutcast_bitrate .' kb/s <br />';
echo 'Zuhoerer Peak: ' . $shoutcast_peaklisteners . '<br />';
echo 'Bandbreite Peak: ' . $shoutcast_peakbwidth . ' kb/s<br />';
echo 'Max. moegliche Zuhoerer: ' . $shoutcast_maxlisteners . '<br />';
echo 'Aktueller Song: >>' . $shoutcast_cursong . '<< <br />';
}
else {
echo '<h1>Sorry aber das radio ist zur zeit offline!</h1>';
}
echo '</body></html>';
## output off ##
?>

12

Saturday, December 1st 2007, 11:14pm

Hey,
nein sry, das ist nicht das was ich wirklich suche, bzw das kenn ich schon. Aber ich habe dir das mal per ICQ geschrieben wie ich das meinte, aber jetzt mal eine Anfrage.
Wäre es möglich das ganze irgendwie in MySQL abzuspeichern, und das die Datenbank irgendwie per Cronjob aufgerufen wird u die Datenbank das ausführt ?!
Oder hättete jemand von euch noch eine andere Lösung ?!

13

Sunday, December 2nd 2007, 11:42am

Wenn der Shoutcast Server Open Source ist, kannst du bestimmt einen MySQL Updater (vermutlich in C?) einbinden. Aber einfach stelle ich mir das nicht vor.
Dann doch lieber eine andere Shoutcast Schnittstelle: http://www.php-resource.de/scripte/show/6761/

Ob die Software eine Telnet Verbindung aufbaut oder wie du nur mit Browser Requests arbeitet weiß ich nicht.

14

Sunday, December 2nd 2007, 2:44pm

Mit dem Script da das ihr mir die ganze Zeit schickt, hat das garnichts zu tun... :( das ist was total anderers.
Ich hab diesen Code geschrieben:

HTML Code

1
2
3
4
5
6
7
8
9
<html>
<head>
<meta http-equiv="refresh" content="15; URL=refresh.html">
</head>
<body>
<iframe height="200" width="200" src="http://85.214.28.248:8000/admin.cgi?pass=PW&mode=updinfo&song=Track%20Update%20@%20www.DACOOON.COM" scrolling="no">
</iframe>
</body>
</html>

Das funktioniert au wunderbar im FF, halt nur so lange die der Browserauf ist, was ja au irgendwie klar ist, nur halt genau den gleiche effekt sollte er jetzt machen, nichts anders oder so.

15

Sunday, December 2nd 2007, 5:48pm

Ach stimmt.. du wolltest ja nur updaten. Nix ausgeben.
Ist halt sehr merkwürdig, dass wget nicht funktioniert, aber hier nochmal die file_get_contents Lösung:

PHP Quellcode

1
2
3
<?php
echo file_get_contents('http://85.214.28.248:8000/admin.cgi?pass=PW&mode=updinfo&song=Track%20Update%20@%20www.DACOOON.COM');
?>

16

Thursday, December 6th 2007, 1:08pm

Hey,
nein das geht au nicht, i verzeifel langsam, i muss doch irgendwie gehn ?!
Habt ihr irgendwie ne andere Lösung für das Problem... ?!

17

Thursday, December 6th 2007, 6:39pm

Wenn ich auf die URL gehe, erhalte ich eine HTTP Auth Abfrage. Mach es doch darüber.
Das Passwort per GET zu übergeben, halte ich sowieso für unsicher. Steht sogar in den Logfiles.

FUnktionieren tut das mit einer Header-Zeile:

Source code

1
Authorization: Basic ".base64_encode("$user:$pass")


Weiteres: fsockopen, fsockopen Authorization Basic base64

Similar threads

Social bookmarks