PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Perl, Shell-Skript oder Webmin-Addon? User und Verzeichnisse auf Linux anlegen ...



ClausVB
17-02-2006, 15:36
Hallo!

Ich habe für eine Domain-Installation mehrere Dinge zu machen:
- Pfade erstellen
- DNS
- Apache
- Statistiken (CONF-Datei)
- Logrotate
- MySQL
- .htaccess

das dauert manuell mit Tests ca. 1 bis 2 Stunden.

Die ganzen MKDIR in ein Skript zu tun, war nicht das Problem, danach muss aber eine Gruppe und User erstellt werden und in Abhängigkeit davon muss der
chown USER.GRUPPE /home/HOMEDIR
gemacht werden.

Welche Variante würdet Ihr nehmen:
- fertiges Skript (wenn ja welches?)
- useradd per Shell-Skript
- user-lib.pl (vom Webmin) bzw. Perl


li101s03:/usr/libexec/webmin/useradmin # ls -lah *user*
-rwxr-xr-x 1 root root 5.0K Nov 29 23:38 delete_user.cgi
-rwxr-xr-x 1 root root 23K Nov 29 23:38 edit_user.cgi
-rwxr-xr-x 1 root root 7.3K Nov 29 23:38 mass_delete_user.cgi
-rwxr-xr-x 1 root root 4.8K Nov 29 23:38 my_user_chooser.cgi
-rwxr-xr-x 1 root root 18K Nov 29 23:38 save_user.cgi
-rwxr-xr-x 1 root root 1.1K Nov 29 23:38 search_user.cgi
-rw-r--r-- 1 root root 52K Nov 29 23:35 user-lib.pl
li101s03:/usr/libexec/webmin/useradmin #

Ich überlege auch ein interaktives Skript auf Kommandozeile in Perl zu schreiben, die Problematik bleibt aber. Generell sollte man doch alles, was man per Shell-Skript machen kann, auch mit Perl machen können, oder? Mit PHP kenne ich mich sehr gut aus und die Webmin-Module sehen übersichtlich aus. Hat jemand da Erfahrung oder ein Tutorial?

Hintergrund: Ich habe sowohl per Shell-Skript als auch Perl nur kleine Skripte (ca. 20 bis 50 Zeilen) geschrieben. Ich will jetzt einen Weg gehen, der auch einfach gewartet und erweitert werden kann. Shell-Skript ist für mich manchmal kryptisch mit dem "done" und ";" aber ich würde auch das machen.

Gruß
Claus

SeeksTheMoon
23-02-2006, 00:00
Wenn Du viele Daten zu bearbeiten hast, dann ist ein Shellscript schlecht geeignet, weil Schleifen+Array-Arbeiten mit der Bash enorm langsam sind.
Perl ist da wesentlich schneller und auch flexibler, z.B. Datenbankanbindung per DBI, teilweise einfacher als diverse Shellkonstrukte mit cut/grep/awk/sed und Arrays/Hashes sind in der Bash nur schlecht implementiert oder nicht vorhanden.
Statistiken kann man sich in Perl auf verschiedene Weise ausgeben/auswerten lassen, z.B. mit GD.

=> Du kannst mit Perl mehr machen als mit der Shell

(Hmm, wenn ein Shellscript aber schon kryptisch ist... naja: kommt immer auf den Programmierer an, was er für Code erstellt; mit Perl lassen sich wüste Dinge schreiben).

Es gibt auch Tools für größere useradds, z.B. superadduser, aber ich hab mit sowas noch nie gearbeitet.

ClausVB
18-03-2006, 12:44
Danke für Deine Antwort.

Ich habe es jetzt (auch auf Deinen Rat hin) mit Perl angefangen. Ich bekomme auch die Verzeichnisse und User erstellt.

Ich finde aber auf Anhieb keine Funktion, die aus
www.domain-xy.de
ein
www_domain-xy_de
macht. (Bei PHP geht das mit "substr()" :-).

Ich google gleich mal, aber wenn jemand eine spontane Idee hat, wäre ich für Rückmeldungen dankbar.

Gruß
Claus

michael.sprick
18-03-2006, 13:18
substr() = substring

Diese Funktion gibt es in Perl auch, sie gibt Dir jeweils einen Teilstring zurück. Zum BEispiel ab dem 5 Zeichen die nächsten 10 Zeichen. Ich vermute mal in PHP macht die Funktion das gleiche.

Ein regulärer Ausdruck könnte schon eher das sein, was Du suchst.



$var =~ s/\./_/g;


wandelt Dir alle '.' in $var in '_' um...

ClausVB
18-03-2006, 16:41
Funktioniert, tausend Dank!

Gruß
Claus

PS: Sorry wegen "substr", ich meinte "str_replace", aber ich bin so tief in der Shell-Programmierung, dass ich im Moment nicht mehr klar geradeausdenken kann ... sorry nochmal.