PCT: Hat jemand Interesse...?


Dawn

Registered User
Guten Tag,

Ich weiss nicht ob es daran liegt das ich faul bin ;) oder ob ich mir einfach gewisse Dinge nie merken kann, weil ich sie zwar brauche, aber doch nicht täglich. Ich hab mich etwas mit Shell-Scripting befasst und mir ein kleines Tool "geschrieben" welches mir einige Dinge erleichtert. Dies ist die ganz erste Version und ich dachte mir vielleicht hat jemand interesse das Tool zusammen weiterzuentwickeln (bisher sind nur einige "Beispiele" vorhanden).

Das Tool ist eine Datei names "pct" (Plesk/PSA Commandline Tool) und ist im order /usr/local/bin und hat die Rechte 700 und gehört root:root.

Hier der "Source":

Code:
#!/bin/sh

# Define Environment Variables
# ============================
#
# Path of WWW root; %2 is the domainname
www_root="/var/www/vhosts/$2/httpdocs/"
#
# Command to reload vhost.conf's and vhost_ssl.conf's
reload_config_command="/usr/local/psa/admin/sbin/websrvmng -a -v"
#
# Command to restart apache
restart_apache="/etc/init.d/apache2 restart"
#
# Command to train 4PSA Spam Guardian
train_spam_guardian="/usr/bin/spamlearn.sh"
#
# Command to execute Total Backup Restore
execute_total_backup_restore="/usr/local/tbackup/tbrestore"


if [ "$1" = "www-root" ]; then
    # Goto the maindir of a domain
    cd $www_root
elif [ "$1" = "reload-configs" ]; then
    $reload_config_command
elif [ "$1" = "restart-apache" ]; then
    $restart_apache
elif [ "$1" = "train-sg" ]; then
    $train_spam_guardian
elif [ "$1" = "execute-tbr" ]; then
    $execute_total_backup_restore
else
    echo ""
    echo "PSA (Plesk) Commandline Tool 0.1"
    echo "================================"
    echo "Usage: . pct [Command] [Param 1] [Param 2] [Param n]"
    echo ""
    echo "Commands:"
    echo "www-root [Param 1]  : Goto www-root of Domain ([Param 1])"
    echo "reload-configs      : Reloads the configs of vhost.conf/vhost_ssl.conf"
    echo "restart-apache      : Restarts Apache(2)"
    echo "train-sg            : Trains 4PSA Spam Guardian by commandline"
    echo "execute-tbr         : Executes 4PSA Total Backup Restore"
    echo ""
fi

Ich bin sicher man könnte einiges optimaler lösen, jedoch ist das natürlich nur ein Anfang. Ich bin gespannt ob ich nicht der einzige bin der sowas für brauchbar hält. Wer das Teil für überflüssig hält (und ich bin sicher da gibt es viele) soll mich nicht "flamen" sondern halt alles "von Hand" machen.

Gruss,
Dawn

PS: Es ist wichtig das Tool als ". pct" (bzw "source pct") auszuführen, sonst funktioniert "www-root" nicht (wer eine Lösung dafür hat, bitte melden).
PPS: Die Pfade sind für Debian angepasst, für andere Distris sind natürlich andere Pfade richtig
 
Last edited by a moderator:
Vielleicht für den Ein oder Anderen hilfreich.
Ich würde die Commando-Parameter jedenfalls deutlich verkürzen. Möglichst auf nur einen Buchstaben. :)
Der Name "reload-configs" ist außerdem fehlerhaft. Es ist eher ein "rebuild-conf".
Und auch hier wäre es sinnvoll nur einen Domain-Namen zu übergeben um nicht jedesmal alles durchziehen zu müssen.
Außerdem kannst Du vorher auf die Existenz des 2. Parameters testen.

Weitere Sinnvolle Parameter:
- Qmail neustarten oder gar stoppen und neustarten (über den mailmng).
- Xinetd starten / stoppen

huschi.
 
Erstmal besten Dank für deine konstruktive Kritik :)

Ich würde die Commando-Parameter jedenfalls deutlich verkürzen. Möglichst auf nur einen Buchstaben.

Finde ich eine gute Idee, werde ich umsetzen.

Der Name "reload-configs" ist außerdem fehlerhaft. Es ist eher ein "rebuild-conf".
Und auch hier wäre es sinnvoll nur einen Domain-Namen zu übergeben um nicht jedesmal alles durchziehen zu müssen.
Außerdem kannst Du vorher auf die Existenz des 2. Parameters testen.

Soweit ich weiss wird doch die Konfiguration neu erstellt (vo dem her wäre "rebuild" schon korrekt) aber nacher auch durch einen automatischen Neustart von Apache2 neu geladen oder täusche ich mich da? Wiso möchtest du nur die Konfiguration für einen spezifischen Domain neu laden, ich denke wenn man nicht gerade 10000 Domains hat spielt das keine Rolle. Oder übersehe ich da etwas?

Eine Überprüfung des zweiten Parameters finde ich nicht sehr sinnvoll da die Fehlermeldung z.b bei der Eingabe von "bla" als zweiter Parameter relativ eindeutig ist:

Code:
/var/www/vhosts/bla/httpdocs/: No such file or directory

Weitere Sinnvolle Parameter:
- Qmail neustarten oder gar stoppen und neustarten (über den mailmng).
- Xinetd starten / stoppen

Finde ich ebenfalls eine gute Idee, werde folgendes einbauen:
/etc/init.d/inetd restart (ich nutze inetd, ist ja default bei Debian Sarge oder?) und die Dienste unter SKom: Dienste in der Kommandozeile neu starten noch einbauen.
 
aber nacher auch durch einen automatischen Neustart
Bin mir nicht sicher; mußt Du austesten.
Aber prinzipiell geht es bei dem Aufruf um die httpd.include, oder?

Wiso möchtest du nur die Konfiguration für einen spezifischen Domain neu laden
Weil ich meistens gerade nur eine vhost.conf angelegt habe. :)

wenn man nicht gerade 10000 Domains hat
Ab 10 aufwärts wird es langweilig zu warten...

Eine Überprüfung des zweiten Parameters finde ich nicht sehr sinnvoll
Ja, aber die Zielgruppe ist doch eher der Server-Anfänger, oder?
Also solltest Du auch passend für diese Zielgruppe programmieren und entsprechende Fehlermeldungen ausspucken.

/etc/init.d/inetd restart
Bedenke, daß es auch den xinetd gibt, der z.B. bei Suse Standart ist.

ich nutze inetd, ist ja default bei Debian Sarge oder?
SWsoft selbst empfiehlt für Plesk auf Debian Sarge den Umstieg auf xinetd. (Wegen Problemen mit qmail-smtpd.) Debian Etch wird auch endlich mit xinetd ausgestattet.

Bedenkte, daß sich Plesk evtl. in einem anderen Pfad liegen kann.
Vorher testen und den Pfad in einer Variable zwischenspeichern würde Sinn machen.

huschi.
 

Back
Top