PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Weboberfläche zur Administration erstellen



Los_Andros
17-11-2003, 08:23
Hallo Leute,
Ich habe ein paar Fragen, die jetzt zum Teil hier rein passen, ich hoffe das war richtig so.

Also.
Ich administriere ein USS (Unix System Services), ein Unix auf einem IBM Großrechner (z/OS 1.3).
Dieses Unix lässt sich ähnlich administrieren wie ein herkömmliches Unix, bis auf ein paar Eigenheiten.
Die Programme und Daten unserer Kunden werden immer per automount ins System eingebunden.

Die Administration dieses Automounts möcht ich gerne vereinfachen (anmelden am USS automount bearbeiten, Scripte ausführen, ...).

Abhilfe soll eine einfache Weboberfläche schaffen, über die man den Mointpoint und den echten Devicepfad übergibt (z.B. WEB50.XYZ.ABC.SYSA.HFS --> /m/web50)
Zusätzlich soll die Möglichkeit bestehen einige Standardparameter ändern zu können (Sync Intervall, ...)
Da man wohl mit html nicht direkt den automount ausführen kann (soweit mir zumindest bekannt ist), müsste ich wohl einen Daemon schreiben, der die Daten entgegennimmt und an den automount übergibt, der dann alles ausführt.


Könnte mir jemand helfen, in welche Richtung ich denken muß (wie man so etwas angeht)

elrond
17-11-2003, 10:25
eine Variante wäre, php zu benutzen. Mit php kannst du zb. via tcp-socket auf einen ggf. noch zu erstellenden service zugreifen.

An dieser stelle solltest du nur sehr aufpassen, daß du dir dabei keine Sicherheitslöcher ins system reißt... Man kann eine php-anwendung zwar relativ gut absichern, aber das ist immer mit einigermaßen aufwand verbunden.

Alternativ könntest du deim mailsystem mißbrauchen indem du procmail einsetzt dass dann eine mail mit den richtigen parametern ausführt.

Los_Andros
17-11-2003, 13:34
Ich hab jetzt sehr lange recherchiert und bin zu dem Entschluß gekommen, erstaml an dem Daemon zu basteln.
Dieser soll eigentlich nur gewisse Parameter entgegennehmen und dann an den automount weiterreichen, bzw den automount ausführen (mit den entsprechenden Parametern.

Nur bin ich in C nicht besonders fit, habe mir einen Beispielsdämon runtergeladen:
Das mit der PID muß ich noch entsprechend anpassen, da das unter USS etwas anders gehandhabt wird, aber prinzipiell sollte so ein Dämon ständig im Hintergrund laufen.

Wie gehe ich jetzt weiter vor?
Komme da geistig nicht weiter ;-)


#include <stdio.h>
#include <unistd.h>
#include <syslog.h>
#include <sys/types.h>

#define CHILD 0
#define ERROR -1

void start_daemon(char *log_name, int facility)
{
int i;
pid_t pid;
/*Elternprozeß beenden, somit haben wir einen Waisen
dessen sie jetzt vorerst init annimmt*/
if((pid = fork()) != CHILD) exit(0);
/*Unser Kindprozess wird zum Session-Führer. Mißlingt dies,
kann der Fehler daran liegen das der Prozeß bereits Sessionführer
ist */
if(setsid() == ERROR)
{
fprintf(stderr, "%s kann nicht Session-Führer werden!\n",log_name);
exit(0);
}
/* Gründe für das Root-Wurzelverzeichnis:
+core-Datei wird im aktuellen Arbeitsverzeichnis hinterlegt
+Damit bei Beendigung mit umount das Dateisystem sicher abgehängt
werde kann */
chdir("/");
/*Damit wir nicht die Bitmaske vom Elternprozeß erben bzw. diese
bleiben, stellen wir diese auf 0*/
umask(0);
/*Wir schließen alle geöffneten Filedeskriptoren....*/
for(i=sysconf(_SC_OPEN_MAX); i>0; i--)
close(i);
/*Da unser Dämonprozeß selbst kein Terminal für die Ausgabe hat....*/
openlog(log_name, LOG_PID, facility);
}

int main(int argc, char **argv)
{
start_daemon("meinDaemon", LOG_USER);
while(1);
/*Enlossschleifen: Hier sollte nun der Code für den
Daemon stehen, was immer er auch tun soll.
Bei Fehlermeldungen Beispiesweise:
if(dies_ist_Passiert)
syslog(LOG_WARNING, "dies_ist_Passiert");
else if(das_ist_Passiert)
syslog(LOG_INFO, "das_ist_Passiert");*/
return 0;
}

Los_Andros
18-11-2003, 15:15
Also, wieder eine kleine Planänderung.
Erstmal möchte ich jetzt mittels eines Scriptes HTML Files generieren lassen, die sich dann per Webpage aufrufen lassen.

Für jedes gemountete Filesysten (Ausgabe df) soll der Befehl confighfs ausgeführt werden und daraus ein html File generiert werden.

...
/var/tmp (SYS1.HFS.IZT1.OMVS.VAR.TMP)1155608/1440000 4294967036 Available
/m (SYS1.HFS.MOUNTS.IZT1.HFS)13832/14400 4294967270 Available
/etc (SYS1.HFS.IZT1.OMVS.ROOT.ETC)4680/7200 4294967048 Available
/ (SYS1.HFS1.IZT1.OMVS.ROOT)292248/2420640 4294958370 Available

Jetzt soll für jedes Filesystem confighfs ausgeführt werden und das Ergebnis in ein HTML File gebettet werden
Also etwa so:
confighfs -q /var/tmp --> 01.html
confighfs -q /m --> 02.html
confighfs -q / --> 03.html
...

Zusätzlich soll ein Index generiert werden, über den die einzelnen HTML Dateien erreichbar sind
Ala:
/var/tmp --> 01.html
/m --> 02.html
/ --> 03.html

Mit dem Index habe ich folgendermaßen angefangen:
#!/bin/sh
i=0;
df | awk '{printf "<a href=$i.html>%s</a>\n", $1 }'


Viel weiter bin ich noch nicht gekommen, weil ich nicht weiß, wie ich es schaffe, dass i hochzählt (i++) und somit ein brauchbarer Index entsteht.
zusätzlich möchte ich dann auch confighfs ausführen und die html files generieren.

Steh bisserl aufm Schlauch, wie kann ich weitermachen?