Da wir ja ein neues Spielzeug im fNordeingang haben, hab ich mal was gebastelt.
Ziel war es, den syslog (/var/log/messages) zu Archivierungszwecken auf einem entfernt stehenden Nadeldrucker in realtime zu sichern. Ich habe ein paar Anleitungen gefunden wie man syslog per UDP durchs lokale Netz schickt. Habe dann aber doch was eigenes gefrickelt. Der Server läuft auf Scientific Linux der Druckerserver auf Debian.
Druckerserver (DEBIAN) einrichten
Legen Sie am besten einen extra Benutzer an und fügen Sie Ihm der Gruppe lp hinzu. Als Beispiel nenne wir mal den Benutzer drucker
# adduser drucker --ingroup lp
- SSH Server muss installiert sein und laufen
- Der Login mit dem Publickey Verfahren muss aktiviert sein (standard)
- Feste IP Adresse einrichten
- Infos zu Nadeldrucker Setup in meinem vorherringen Artikel
SSH KEY erzeugen (Scientific)
Zuerst legen wir auf dem Server / Rechner dessen syslog ausgedruckt werden soll einen SSH-Schlüssel an. Mit dem Befehl
# ssh-keygen -t rsa
legen wir einen Schlüssel an. Kein Passwort eingeben. Ansonsten kann das spätere Script nicht laufen. Den öffentlichen Schlüssel kopieren Sie mit
# ssh-copy-id drucker@druckerserver-ip
auf den Druckerserver.
Server einrichten (Scientific)
Erst einmal müssen wir ein Scipt erstellen.
# vi /usr/local/sbin/drucker.sh
Das folgende Script können Sie übernehmen.
#!/bin/bash
while [ 1=1 ]
do
tail -F /var/log/messages | ssh -i /root/.ssh/id_rsa benutzername@serveradresse "cat > /dev/lp0"
done
(Die Schleife ist dafür da, falls einmal die Verbindung abbricht)
Speichern Sie das Script ab und machen Sie es mit
chmod +x drucker.sh
ausführbar.
Nun noch das Script an die rc.local hängen
vi /etc/rc.local
und am Ende eintragen
/usr/local/sbin/drucker.sh
Nach einem Neustart sollte der Drucker nun munter in Realtime den Log ausdrucken. Ausprobieren kann man dies auch indem man das Script von Hand zum testen startet.
Anmerkung
Das Script lässt sich natürlich auch auf andere Logs anweden. Ob es /var/log/secure ist oder ein IRC Log.