Script, verbesserungsvorschläge?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Colttt
Beiträge: 3012
Registriert: 16.10.2008 23:25:34
Wohnort: Brandenburg
Kontaktdaten:

Script, verbesserungsvorschläge?

Beitrag von Colttt » 17.10.2011 14:18:59

Hallo,

ich lerne ja gern dazu, deswegen meine frage: hat jmd zu dem Script verbesserungsvorschläge?

NoPaste-Eintrag35984

schonmal vielen dank im voraus!
Debian-Nutzer :D

ZABBIX Certified Specialist

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: Script, verbesserungsvorschläge?

Beitrag von ThorstenS » 17.10.2011 14:48:28

Benutze bei mkdir den Schalter -p oder besser noch Debianmktemp.
Die aktuelle Versionsnummer könntest du dir per wget vom Server holen und jeweils das aktuellste Paket herunterladen.
Wenn dir das zu viel Aufwand ist, steckt die Versionsnummer in eine Variable in die ersten Zeilen des Scripts.
Ansonsten sind später Anpassungsarbeiten echt schwierig.

Colttt
Beiträge: 3012
Registriert: 16.10.2008 23:25:34
Wohnort: Brandenburg
Kontaktdaten:

Re: Script, verbesserungsvorschläge?

Beitrag von Colttt » 17.10.2011 15:20:46

ok.. vielen dank!!

hast du noch ne idee wegen checkinstall? das erstellte paket beinhaltet leider nicht die conf-dateien unter /etc/zabbix.. und auch nicht die php.ini-einstellungen
Debian-Nutzer :D

ZABBIX Certified Specialist

uname
Beiträge: 12419
Registriert: 03.06.2008 09:33:02

Re: Script, verbesserungsvorschläge?

Beitrag von uname » 17.10.2011 15:50:40

Du könntest noch überall durchgehend vollständige Pfade nutzen. Das gilt sowohl für Verzeichnisse als auch für Programme. Könnte sonst sein, dass bei unterschiedlichen Suchpfadlisten unterschiedliche Dinge passieren.

Beispiel für Programme

Code: Alles auswählen

APTGET=/usr/bin/apt-get
$APTGET update
Schau dir vielleicht einfach ein paar Scripte unter /etc/init.d an.

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Script, verbesserungsvorschläge?

Beitrag von Cae » 17.10.2011 20:21:23

Was mir auffällt: Du hast ziemlich wenig Abfragen darin, ob etwas überhaupt möglich ist. Zum Beispiel könnte es ja aus *irgendeinem* Grund passieren, dass der Benutzer/die Gruppe zabbix nicht erstellt werden konnte. Gut, dann gibt's die Fehlermeldung, aber das Skript rennt weiter und fährt spätestens in Zeile 105 gegen die Wand. Übrigens: "... could not be created" oder so ist richtiger als die angegebene sprachliche Vermurkselung. set -e am Anfang des Scripts bricht es ab, wenn ein Befehlt ret != 0 zurückgibt. Da muss man aber aufpassen und alles z.B. per || echo "fail" absichern, wenn es doch gewollt ist.

mktemp ist wichtig. Wenn sich jeder Installer willkürlich einen Pfad in /tmp/ aussucht, gibt es irgendwann Überschneidungen. Nicht gut.

Code: Alles auswählen

tmpdir=$(mktemp)
tar xf bliblablubb.tar "$tmpdir" # ... und so weiter ... am Ende:
rm -rf "$tempdir"
tmpdir='asdf' # wir sind paranoid, man könnte ja die Variable auslesen...

Code: Alles auswählen

echo '' # ist dasselbe wie
echo
Fixe Passwörter in der SQL-DB sind auch nicht der Burner.

Code: Alles auswählen

dd if=/dev/urandom bs=1 count=6 2>/dev/null | openssl base64
Dies gibt zufällige, sichere Passwörter aus: 8 Stellen, groß/klein, Sonderzeichen (z.B. +, =, /).

Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Benutzeravatar
Meillo
Moderator
Beiträge: 9241
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Script, verbesserungsvorschläge?

Beitrag von Meillo » 18.10.2011 09:09:20

Du koenntest die Ausgabe der Abschnittsueberschriften in eine Funktion auslagern.

Sind die Sleeps noetig?

Mach die beiden sed-Bearbeitungen der php.ini mit einem Aufruf, dann erzeugst du keine zwei Backupdateien dafuer.
Use ed once in a while!

Colttt
Beiträge: 3012
Registriert: 16.10.2008 23:25:34
Wohnort: Brandenburg
Kontaktdaten:

Re: Script, verbesserungsvorschläge?

Beitrag von Colttt » 19.10.2011 15:45:10

@Cae: ok danke für die hilfe.. habe das mit den passwörtern so gemacht.. jedoch hakt es jetzt an folgender stelle:

Code: Alles auswählen

dbpw=$(dd if=/dev/urandom bs=1 count=6 2>/dev/null | openssl base64)
su postgres -c "echo \"create user zabbix with password '${dbpw}' createdb;\" | psql"
er scheint die variable nicht richtig weiter zu geben.. was kann ich dagegen machen?

das mit mktemp hab ich jetzt sein lassen da es doch etwas to much wäre..
das mit dem fehler müsste ich noch machen.. müsste ich das jetzt nach jedem ausdruck befehl machen oder gibts da auch was generelles!?

@Meilo: nein die sleeps waren für mich um zu gucken ob alles ok ist und wie man etwas in eine funktion pakt und welchen sinn das hätte weiss ich nicht.. das mit sed hab i gemacht..
Debian-Nutzer :D

ZABBIX Certified Specialist

uname
Beiträge: 12419
Registriert: 03.06.2008 09:33:02

Re: Script, verbesserungsvorschläge?

Beitrag von uname » 19.10.2011 16:58:44

Die Übergabe funktioniert wie dieses Beispiel mit "nobody" zeigt.

Code: Alles auswählen

#!/bin/bash
dbpw=$(dd if=/dev/urandom bs=1 count=6 2>/dev/null | openssl base64);
su nobody -c "echo '${dbpw}'";
Wobei sowohl ' als auch { } wohl unnötig sind.

Benutzeravatar
Meillo
Moderator
Beiträge: 9241
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Script, verbesserungsvorschläge?

Beitrag von Meillo » 19.10.2011 22:24:26

uname hat geschrieben:

Code: Alles auswählen

su nobody -c "echo '${dbpw}'";
Wobei sowohl ' als auch { } wohl unnötig sind.
Ersteres: Haengt davon ab was in der Variable drin steckt. Ist sicherer mit.
Zweiteres: Ja, sind unnoetig.
Use ed once in a while!

Colttt
Beiträge: 3012
Registriert: 16.10.2008 23:25:34
Wohnort: Brandenburg
Kontaktdaten:

Re: Script, verbesserungsvorschläge?

Beitrag von Colttt » 20.10.2011 08:31:07

hallo,

sorry hab gestern nicht mehr geantwortet..
der fehler liegt nicht dort.. der fehler muss eher hier stecken:

Code: Alles auswählen

su postgres -c "psql -d zabbix -f /tmp/install/${zbxver}/create/schema/postgresql.sql"
su postgres -c "psql -d zabbix -f /tmp/install/${zbxver}/create/data/data.sql"
su postgres -c "psql -d zabbix -f /tmp/install/${zbxver}/create/data/images_pgsql.sql"
denn er fügt die entsprechenden statements nicht in die zabbix-datenbank, sondern in die postgres-db
Debian-Nutzer :D

ZABBIX Certified Specialist

Colttt
Beiträge: 3012
Registriert: 16.10.2008 23:25:34
Wohnort: Brandenburg
Kontaktdaten:

Re: Script, verbesserungsvorschläge?

Beitrag von Colttt » 20.10.2011 09:20:53

soo erledigt.. es lag daran das die tabellen mit den rechten postgres ausgeführt wurden und nicht mit die von zabbix.. das hab i jetzt geändert.. das skript ist jetzt fast final.. :D
wenn es fertig ist, poste ich es
Debian-Nutzer :D

ZABBIX Certified Specialist

Colttt
Beiträge: 3012
Registriert: 16.10.2008 23:25:34
Wohnort: Brandenburg
Kontaktdaten:

Zabbix install-script

Beitrag von Colttt » 26.10.2011 09:30:51

soo erledigt..
ich finde das script ist fertig und funktioniert auch soweit, wer es nutzen möchte kann es gerne tun.. das einzige was ich noch nicht wirklich hinbekommen habe ist das checkinstall irgendwie die conf-dateien berückstichtig, aber egal.. es läuft.

NoPaste-Eintrag36018
Debian-Nutzer :D

ZABBIX Certified Specialist

Antworten