Kleine und große Linux AHAs
einfachso
alles was nicht in die anderen Kategorien passt
Fragen über Fragen
02. Mrz
Linux Problem und beim googlen noch keine Lösung gefunden ?
Also wenn es nicht gerade um Anfängerfragen – sorry – geht, könnt ihr uns ja mal fragen. Mit welchen Themen wir uns so beschäftigen könnt ihr auf unserer Seite sehen und vielleicht kann man aus einer Frage auch einen Artikel machen, der für andere ebenfalls interessant ist.
Also einfach hier als Kommentar die Frage einstellen und damit vielleicht auch anderen helfen. Mal gespannt was da kommt …
schon wieder…
27. Jan
… ein neuer Style.
Naja – was soll ich sagen. WordPress finde ich richtig gut und man kann eben auch viel mit Themes herumspielen
“service” Befehl unter Ubuntu
09. Okt
Wir arbeiten auf dem Desktop mit Ubuntu – die Server sind alle RedHat. Der “service” Befehl, mit dem man Dienste starten und stoppen kann, ist unter RedHat schon immer (?) vorhanden. Unter Ubuntu / Debian bisher nicht. Zufällig haben wir nun festgestellt, dass service mittlerweile funktioniert.
Schön. Soll noch einer sagen die Unterschiede zwischen den Distributionen wären wahnsinnig groß
Style Relaunch
06. Okt
Wir haben heute ein neues Style aus der Taufe gehoben. Das ganze hat nur einen Sinn – mehr Platz !
Das alte Stylesheet war ein wenig “beschnitten” was die Breite angeht. Das ist gerade bei Scriptbeispielen ein wenig unvorteilhaft. Deswegen ein neues schlankes Design.
Wir hoffen es gefällt.
syslog-ng und “last message repeated NN times”
07. Mai
Auch danach musste ich länger suchen. Wir betreiben einen zentralen Syslogserver mit Hilfe von Syslog-NG. Darauf loggen auch “nicht Linux” Systeme. Dabei geht es überwiegend um Security Meldungen die über die Datenbank dann ausgewertet werden, bzw. für Alarmierungen genutzt werden.
Bei Änderungen im zentralen Directory kann es unter Umständen zu mehreren hunderttausend Logeinträgen in der Stunde kommen (wir hatten auch schon knapp 1 Mio.). Das ist kein Problem für syslog-ng oder für die Datenbank. Allerdings für die Scripte die über die Datenbank laufen um irgendwelche Auffälligkeiten zu finden / melden.
Im “alten” original syslogd gab es früher immer Meldungen wie “last message repeated XX times”. Die gibt es standardmäßig im syslog-ng nicht und der Parameter ist auch nicht in der Manpage dokumentiert. Man kann ihn aber einschalten
Der Parameter heißt “suppress(X)“. Als Parameter wird die Zeit in Sekunden übergeben, die Syslog-NG warten soll ob noch weitere Meldungen mit gleichem Inhalt den Server erreichen. Der Parameter wird in der Destination mit angegeben. Das ganze sieht bei uns so aus:
destination d_mysql_win {
pipe("/var/run/phpsyslog_win.pipe"
template("INSERT INTO logs
(host, facility, priority, level, tag, datetime, program, msg)
VALUES ( '$HOST', '$FACILITY', '$PRIORITY', '$LEVEL', '$TAG', '$YEAR-$MONTH-$DAY $HOUR:$MIN:$SEC',
'$PROGRAM', '$MSG' );\n") template-escape(yes) suppress(30));
};
switchport per tcpdump bestimmen
05. Mai
Das unter Cisco verfügbare CDP Protokoll (Cisco Discovery Protocol) kann man nutzen – wenn eingeschaltet – um den Port zu bestimmen, an dem ein Server angeschlossen ist. Dazu muss man lediglich per tcpdump das CDP Paket empfangen und anzeigen. Der Rest ist an sich verständlich.
tcpdump -nn -v -i -s 1500 -c 1 'ether[20:2] == 0x2000'
Der Output dazu sieht dann beipielsweise so aus:
tcpdump: listening on bond0, link-type EN10MB (Ethernet), capture size 1500 bytes
15:16:16.901794 CDPv2, ttl: 180s, checksum: 692 (unverified), length 364
Device-ID (0x01), length: 8 bytes: 'SWITCH1'
Version String (0x05), length: 251 bytes:
Cisco IOS Software, Catalyst 4000 L3 Switch Software (cat4000-I5S-M), Version 12.2(25)EWA7, RELEASE SOFTWARE (fc1)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2006 by Cisco Systems, Inc.
Compiled Mon 16-Oct-06 18:52 by dchih
Platform (0x06), length: 14 bytes: 'cisco WS-C4948'
Address (0x02), length: 13 bytes: IPv4 (1) 192.168.151.2
Port-ID (0x03), length: 19 bytes: 'GigabitEthernet1/27'
Capability (0x04), length: 4 bytes: (0x00000029): Router, L2 Switch, IGMP snooping
VTP Management Domain (0x09), length: 2 bytes: ''''
Native VLAN ID (0x0a), length: 2 bytes: 157
Duplex (0x0b), length: 1 byte: full
AVVID trust bitmap (0x12), length: 1 byte: 0x00
AVVID untrusted ports CoS (0x13), length: 1 byte: 0x00
1 packets captured
1 packets received by filter
0 packets dropped by kernel
Daraus lässt sich der Switchname (SWITCH1) herauslesen, der Port (GigabitEthernet1/27) und auch die VLAN ID (157) uvm. Wenn das Interface per Bonding betrieben wird, bekommt man hiermit lediglich die Information des aktiven Ports.
ROAB – Run Once After Boot
04. Mai
Ich hatte oft die Anforderung, ein Skript nach dem nächsten Reboots eines Servers (genau ein mal) laufen zu lassen. Da ich ja, wie alle Admins faul bin und keine Lust hatte aufzupassen, wann ein Server neu gestartet wird, habe ich ein kleines SystemV Skript geschrieben, das mir diese Arbeit abnimmt.
ROAB – “Run Once After Boot” macht genau das was es sagt: Ein oder mehrere Skripte nach dem nächsten Reboot eines Servers genau einmal auszuführen. Dabei wird die Zeit und die Ausgaben der Skripte mit protokolliert, damit man im Nachhinein die Ausgaben auch kontrollieren kann. Außerdem kann nach erfolgter Arbeit ein weiterer automatischer Reboot konfiguriert werden.
Installation:
Ich habe ein RPM für Red Hat erstellt. Also einfach installieren.
Wer das ganze zu Fuß machen will, hier das Skript. Dieses einfach nach /etc/init.d kopieren, ausführbar machen und mit “chkconfig roab on” in den Bootvorgang einbauen.
Download: roab-0.1-1.noarch.rpm (RPM für Red Hat Enterprise Linux)
Mit ROAB arbeiten:
Nun können beliebige Skripte und Programme nach /etc/roab/run.d/ gelegt werden, die dann, nach dem nächsten Reboot alphabetisch sortiert, gestartet werden. Alle Skripte und deren Ausgaben werden im Anschluss nach /etc/roab/run.log/ verschoben. Außerdem wird das Starten jedes Skriptes im Syslog (per logger) gemeldet.
Existiert die Datei /etc/roab/forcereboot, wird nach dem Ausführen aller Skripte ein Reboot des Systems durchgeführt.
Ausprobieren:
echo "touch /tmp/das_war_ein_roab_script" >/etc/roab/run.d/testscript
reboot
Nach dem Reboot ist das testcript-Script nicht mehr im run.d Verzeichnis, sondern in run.log zu finden. Außerdem die Ausgabe in <datum>testscript.log. In diesem Beispiel gab es ja keine Ausgabe, deswegen ist die Datei leer.
Deinstallieren:
Das RPM einfach deinstallieren. Das Log Verzeichnis wird beibehalten.
Ich hoffe ROAB nimmt euch genau so viel Arbeit ab wie mir!
Da sind wir!
23. Mrz
Wir ? Das sind zwei. Ronny und Sascha. Wir sind Linux Admins und möchten auf dieser Seite von uns genannte “AHAs” sammeln. Unsere AHAs sind zum Beispiel kleine Code Scnippets, Tipps oder HowTos die alle mit Linux zu tun haben.
|
|
Unsere AHAs sind allerdings nicht einfach eine weitere Sammlung wie es schon so viele gibt. Wir möchten an dieser Stelle Informationen sammeln die wir selbst lange suchen mussten. Mal schauen was daraus wird … |



