Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]641[/thread]

Über cgi-Script Programm starten/stoppen



<< |< 1 2 >| >> 14 Einträge, 2 Seiten
ja.bla
 2006-01-07 20:35
#6509 #6509
User since
2006-01-07
9 Artikel
BenutzerIn
[default_avatar]
Moin Moin,

Ich möchte mit einem cgi-Script ein Shell-Script starten/stoppen, dazu hab ich mir 3 Seiten erstellt:

app_status.cgi
Code: (dl )
1
2
3
4
5
6
7
#!/usr/bin/perl -w
use strict;
use CGI::Carp qw(fatalsToBrowser);
print "Content-type: text/html\n\n";

my $ausgabe = `sh /home/jabla/sh_script/app_status.sh`;
print $ausgabe;


app_start.cgi
Code: (dl )
1
2
3
4
5
6
7
#!/usr/bin/perl -w
use strict;
use CGI::Carp qw(fatalsToBrowser);
print "Content-type: text/html\n\n";

my $ausgabe = `sh /home/jabla/sh_script/app_start.sh`;
print $ausgabe;


app_stop.cgi
Code: (dl )
1
2
3
4
5
6
7
#!/usr/bin/perl -w
use strict;
use CGI::Carp qw(fatalsToBrowser);
print "Content-type: text/html\n\n";

my $ausgabe = `sh /home/jabla/sh_script/app_stop.sh`;
print $ausgabe;


Wenn ich die Seiten "app_st*.cgi" aufrufe wird eine Meldung angezeigt "Programm läuft/läuft nich". Das funzt soweit auch alles ganz gut, nur würde ich das ganze gerne in einem Script zusammen fassen. Finde aber keinen Ansatz. Vielleicht kann mir ja jemand ein wenig auf die Sprünge helfen :D

Thx im voraus
ptk
 2006-01-07 20:49
#6510 #6510
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Mach es mit Symlinks und frag $0 ab, welche Variante aufgerufen wurde. Oder mach das Starten/Stoppen über einen CGI-Parameter.
bloonix
 2006-01-07 20:54
#6511 #6511
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=ja.bla,07.01.2006, 19:35]Ich möchte mit einem cgi-Script ein Shell-Script starten/stoppen, dazu hab ich mir 3 Seiten erstellt:[/quote]
in allen drei Skripts hast du den Taint-Modus vergessen, der haut dir
nämlich die Skripts um dir Ohren :)
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
esskar
 2006-01-08 04:10
#6512 #6512
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=opi,07.01.2006, 19:54]in allen drei Skripts hast du den Taint-Modus vergessen, der haut dir
nämlich die Skripts um dir Ohren :)[/quote]
mag sein... es gibt aber keinen (wirklichen) grund dafür!
bloonix
 2006-01-08 05:33
#6513 #6513
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=esskar,08.01.2006, 03:10]mag sein... es gibt aber keinen (wirklichen) grund dafür![/quote]
das nicht, aber nur weil ein Skript nach langem Testen sauber läuft,
kommentiert man ja auch nicht use strict und use warnings aus.

findest du nicht, dass wenn -t und $ENV{PATH} = '/bin'; gesetzt ist,
es dem Skript auf keinen Fall schadet :-)
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
opixantos
 2006-01-08 09:30
#6514 #6514
User since
2006-01-07
15 Artikel
BenutzerIn
[default_avatar]
hallo leute..

und wie sieht der vertige script dan aus ?
ja.bla
 2006-01-08 18:50
#6515 #6515
User since
2006-01-07
9 Artikel
BenutzerIn
[default_avatar]
Ich übergebe die Parameter in der Url und werte sie dann in einer if-Abfrag aus, das funzt schon ma :D

Jetzt kommt die total peinliche Noobfrage: Wie kann ich einen Link einbauen? Hab schon gegooglt aber ohne Erfolg.
Code: (dl )
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
#!/usr/bin/perl -w
use strict;
use CGI qw(param);
use CGI::Carp qw(fatalsToBrowser);

my $argument = param("argument");

print "Content-type: text/html\n\n";
print "<HTML>\n";
print "<head><title>App starten,stoppen </title></head>\n";
print "<body>\n";

###############
# Linkeinbauen#
###############
print qq(<a = href="http://www.google.de">Google</a><br>\n);
# print <BR><BR>;
# print <a href=http://google.de>Google</a>;
# print <BR><BR>;

if ($argument =~ m/start/) {
print "Argument = $argument - Programm wird gestartet.<br>\n";
my $start = `sh /home/jabla/sh_script/app_start.sh`;
print $start;
}
elsif ($argument =~ m/stop/) {
print "Argument = $argument - Programm wird gestopt.<br>\n";
my $stop = `sh /home/jabla/sh_script/app_stop.sh`;
print $stop;
}
else {
print "Argument ungueltig - Programmstatus wird angezeigt.<br>\n";
my $status = `sh /home/jabla/sh_script/app_status.sh`;
print $status;
}
print "</BODY>\n";
print "</HTML>\n";


Wenn ich die Seite aufrufe wird zwar Google angezeigt, aber nicht klickbar. Der Seitenquelltext sieht ganz normal aus:

Code: (dl )
1
2
3
4
5
6
7
8
9
<HTML>
<head><title>App starten,stoppen </title></head>
<body>
<a = href="http://www.google.de">Home</a><br>
Argument ungueltig - Programmstatus wird angezeigt.<br>

Programm rennt - PID = '3498'
</BODY>
</HTML>


Über eine zündende Idee wäre ich danbar.\n\n

<!--EDIT|ja.bla|1136739059-->
bloonix
 2006-01-08 19:01
#6516 #6516
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=ja.bla,08.01.2006, 17:50]Jetzt kommt die total peinliche Noobfrage: Wie kann ich einen Link einbauen? Hab schon gegooglt aber ohne Erfolg.
Code: (dl )
<a = href="http://www.google.de">Home</a><br>
[/quote]
Das = zwischen a und href gehört da nicht hin. Nimm es weg und dann
funktioniert es.
Code: (dl )
<a href="http://www.google.de">Home</a><br>
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
ja.bla
 2006-01-08 23:05
#6517 #6517
User since
2006-01-07
9 Artikel
BenutzerIn
[default_avatar]
@ opi
VERDAMMT und ich krieg hier fast die Kriese, wegen einem Gleichheitszeichen.

Funzt nun alles wie's soll, dank eurer Hilfe.

Werde mich jetz dran setzen, eine config-Datei und ein Template zu integrieren.

cu
bloonix
 2006-01-08 23:31
#6518 #6518
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=ja.bla,08.01.2006, 22:05]Werde mich jetz dran setzen, eine config-Datei und ein Template zu integrieren.[/quote]
Hi, ich habe mich schon fast garnicht getraut, dir diesen Tipp
zu geben.

Diese print's mit HTML Ausgabe in deinem Skript sind einfach
hässlich, dabei hast du mit use CGI... doch einen so guten
Anfang gemacht. :-)

Eine Frage:

Ist es eigentlich möglich, die Umgebung so zu manipulieren,
dass statt sh ein rm aufgerufen wird? Ich dachte da an sowas
wie

alias sh="rm"
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
<< |< 1 2 >| >> 14 Einträge, 2 Seiten



View all threads created 2006-01-07 20:35.