Schlagwort-Archive: Nadeldrucker

syslog auf Nadeldrucker ausgeben

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 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.

Das mit dem Internetausdrucken

Nadeldrucker mit Tweets

Mal wieder etwas neues aus dem Hackerspace fNordeingang.

Nachdem wir einen alten Nadeldrucker geschenkt bekommen haben, entsinnten wir uns doch an das Projekt aus dem Chaosdorf mit dem Nadeldrucker und der Twitteranbindung zu finden unter: http://wiki.chaosdorf.de/index.php?title=Nadeldrucker.

Das gleiche haben wir dann auch nachgebaut. Die Projektseite vom fNordeingang ist zu finden unter: http://fnordeingang.de/wiki/Twitternadeldrucker.

Hardware

Der obligatorische Nadeldrucker wird benötigt, der dann über den Parallelport an der Rechner angeschlossen wird. Sollte im Ordner /dev kein lp0 vorhanden sein muss das Modul über

modprobe lp

von Hand geladen werden, sowie in die /etc/modules eingetragen werden damit es beim hochfahren mit startet.

Mit einem

echo "Test Test 1 2 3" > /dev/lp0

sollte der Drucker eine Zeile ausgeben.

Software

Um die Tweets abzurufen brauchen wir noch den konsolenbasierten Twitterclient der sich mittels

apt-get install twidge

installieren lässt, und danach noch mit

twidge setup

eingerichtet werden muss.

Script

Im Gegensatz zu dem Chaosdorfscript läuft unseres allerdings lokal und als cronjob. Folgend das Scipt vom fNordeingang:


#!/bin/bash
(
TWEETS=$(twidge lsreplies -u -s | iconv -f utf-8 -t cp437)
if [[ -n $TWEETS ]]; then
echo "$(date)";
echo "${TWEETS}";
echo "";
echo "";
fi
) > /dev/lp0

In der /etc/crontab wird dann noch folgende Zeile angehangen. Den Pfad natürlich so ändern das er zu dem Script führt.

* *     * * *   root    /bin/bash --login /usr/local/sbin/nadeltweet.sh

Das wars. Nun sollte der Drucker jedes mal wenn jemand eine Nachricht an den eingerichteten Twitteraccount schreibt, diese Nachricht mit Zeitstempel ausgeben. Dazu ruft der cronjob jede Minute das Script auf, welches mittels twidge die Tweets abruft.

Das ganze läuft natürlich wieder auf dem Igel Winestra. Langsam kommt es mir vor das ich über nichts anderes mehr blogge. 😉