Treiber-Automatik bei cups funktioniert nicht mehr

Manchmal kann, es vorkommen, dass die Treiber-Automatik beim hinzufügen eines Netzwehrdruckers über SAMBA/CUPS nicht mehr funktioniert; Windows bringt in diesem Fall die Fehlermeldung, dass der Treiber nicht auf dem Server vorhanden ist.

Dies kann z.B. passieren, wenn ein update, das printer-treiber Verzeichnis auf dem server löscht, man kann dies herausfinden, wenn man serverprint$ aufruft; darin sollte dann nebst dem CUPS-Treiber noch ein Verzeichnis: W32X863 existieren.

Den Fehler behebt man am besten mit root unter Linux:

cupsaddsmb -v -a

Manchmal kommt auch die Meldung:
Ein Treiber [TREIBERNAME], Windows 2000, Intel konnte nicht installiert werden. Der Vorgang konnte nicht abgeschlossen werden.

Dann muss überprüft werden ob man auf alle Verzeichnisse in serverprint$ schreibzugriff hat. – Denn es reicht nicht immer nur Schreibzugriff auf: W32X863 zu geben, denn manchmal will Windows auch in W32X86 schreiben, oder sogar direkt unter print$!

Ressourcen

Samba Classical Printing Support

NET SEND Nachricht aus Linux heraus schreiben

Manchmal möchte man von einem Linux Server aus die Windows Clients per Pop-Up über etwas informieren, also so wie beim Windows NET SEND Befehl.
Dies geht ganz einfach mittels:

echo "Nachrichtentext" | smbclient -M HOST

mit dem zusätzlichen Parameter -U kann man übrigens das FROM Feld frei angeben (defaultmässig steht der Name des Linux Users von dem die Message kommt)

Das ’smbclient‘-Package muss dazu installiert sein.

[stextbox id=“note“ caption=“Hinweis“]Der Nachrichtendienst ist bei allen Windows Versionen ab XP standarmässig abgeschaltet
und muss natürlich wieder angeschaltet werden, dass dies läuft.[/stextbox]

apache: Automatische SSL Umleitung

Manchmal macht es Sinn gewisse Seiten oder Unterseiten automatisch auf eine SSL Seite umzuleiten, etwa: "webmail.example.com" oder "myshop.example.com/bestellung/"

Dies geht ganz einfach mit einer .htaccess Direktive, oder alternativ global ein einem apache config file (bei Debian z.B.: /etc/apache2/conf.d/ssl-redirect.conf )
Continue reading apache: Automatische SSL Umleitung

exim: mailqueue bereinigen

Der Mailserver Exim ‚friert‘ E- Mails, die nicht Zustellbar sind, aber auch nicht gebounct werden können, ein und belässt sie in der Queue, bis sie manuell von einem Administrator gelöscht oder ‚aufgetaut‘ werden. Es sind Optionen in der Konfiguration vorgesehen, um solche ‚frozen‘ Mails nach Ablauf einer gewissen Zeitspanne automatisch aus der Queue zu entfernen. Manchal möchte man das aber auch selbst tun, bspw. dann, wenn aus irgendwelchen Gründen (bspw. weil die eigene Absenderadresse in einige tausend Spam-Mails hinein-gefälscht wurde) die Queue binnen kurzer Zeit mit sochen Mails voll läuft.

Diese "frozen-messages" kann man ganz einfach löschen mittels:

/usr/exim/bin/exipick -zi | xargs exim -Mrm

Ebenso kann man messages löschen, die z.B. schon seit über einem Tag in der queue sind:

exiqgrep -o 86400 -i | xargs exim -Mrm

Credits: http://www.th-h.de/infos/software/rmfrozen.php

Webseiten mirroren mit wget

Wget kennen viele schon, die ihre ersten Schritte mit Linux gemacht haben. 😉

Tatsächlich kann man mit dem praktischen tool, aber noch viel mehr machen, z.B. eine ganze Webseite herunterladen „spiegeln“.

Und so gehts; einfach an der Konsole diesen Befehl einfügen:

wget -mk http://www.example.com/

Der paramter ‚-m‘ sagt, dass ihr grundsätzlich die Seite mirroren wollt und ‚-k‘ wandelt in den Seite links die z.B. auf http://www.example.com/css/main.css verweise in lokale links a’la: css/main.css um.

[stextbox id=“warning“ caption=“Achtung bei grossen Websites“]Falls ihr grosse Webseiten herunterladet solltet ihr zusätzlich den parameter ‚-w 20‘ angeben um die Webseite nicht zu überlasten![/stextbox]

[stextbox id=“tip“ caption=“Tip: Blockierte Webseiten“]Es gibt Seiten, die gewisse User-Agent wie z.B. „wget“ den Zugriff auf die Seiten verweigern.
Doch nicht verzagen: Einfach den parameter:

--user-agent Mozilla/4.0

beim wget Kommando anfügen und die Webseite lässt uns passieren! ;)[/stextbox]

Dieser Tip stammt von der Seite: FOSSwire: FOSSwire Create a mirror of a website with Wget und blog.emeidi.com: Kleine wget-Tricks

Manchmal lädt es dann Bilder, usw. nicht, so dass man einen längeren wget Befehl benötigt:

wget \
     --recursive \
     --level 5 \
     --no-clobber \
     --page-requisites \
     --adjust-extension \
     --span-hosts \
     --convert-links \
     --restrict-file-names=windows \
     --domains example.com \
     --no-parent \
         example.com

Um dies zu automatisieren kann man auch ein kleines Script schreiben.

SSH ohne Passwort

Wenn man mehrere Server hat möchte man manchmal vieleicht eine SSH Verbindung unter diesem aufbauen können, ohne das Passwort einzugeben.

-Dies hat z.B. in scripts den Vorteil, dass, auch wenn man scp oder rsync benutzt nirgendwo das Passwort hinschreiben muss.

Und so gehts:

SSH-Keys generieren:

ssh-keygen -t rsa
ssh-keygen -t dsa

Es entstehen zwei Dateien mit den Schlüsselpaaren: ~/.ssh/id_{rsa,dsa} und ~/.ssh/id_{rsa,dsa}.pub.

[stextbox id=“note“ caption=“Hinweis“]Für Protokol 2 gibt es RSA und DSA Keys, eigentlich reicht normalerweise einer von beiden.[/stextbox]

Die *.pub-Dateien können nun auf den Zielhost kopiert werden und dort an ~/.ssh/authorized_keys angehängt werden:

ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote-system
ssh-copy-id -i ~/.ssh/id_dsa.pub user@remote-system

user@remote-system steht dabei für den gewünschten user (z.B. root) auf dem system, auf das man zugreifen möchte.

Hat man am Anfang eine Passphrase eingegeben, wird immer nach dieser gefragt. Um dies zu verhindern, kann man dem ssh-agent sagen er soll die Passphrase immer automatisch eingeben:

test "$SSH_AUTH_SOCK" || exec ssh-agent $SHELL -c "ssh-add; exec $SHELL -login"

Eine genauere Beschreibung findet sich unter http://www.schlittermann.de/doc/ssh.html

clamav-freshclam: Problem with internal logger

Beim Einsatz von clamav, bzw dessen Update Tool erhält man oft Mails in der Form:

ERROR: Problem with internal logger (UpdateLogFile = /var/log/clamav/freshclam.log)

Nach einem Neustart von freshclam funktioniert alles wieder eine Zeit lang, danach wiederholt sich der Fehler.

Die Lösung hierzu ist freshclam für syslog als logger zu konfigurieren, da der interne nicht ganz ausgereift zu sein scheint (und es sowieso besser ist alles über den selben logger laufen zu lassen).

So wirds umgestellt:

In der Datei /etc/clamav/freshclam.conf den Wert:

UpdateLogFile /var/log/clamav/freshclam.log

auskomentieren, dafür "LogSyslog" auf True setzen:

LogSyslog true
LogFacility LOG_LOCAL6

Das ganze sieht dann so aus:

#UpdateLogFile /var/log/clamav/freshclam.log
LogSyslog true
LogFacility LOG_LOCAL6

Nun passt man noch den syslogd an:
/etc/syslog.conf öffnen, dann unten anfügen:

# save clamav log
local6.*                        /var/log/clamav/freshclam.log

Nun noch die beiden daemons neu starten und fertig:

/etc/init.d/sysklogd restart
/etc/init.d/clamav-freshclam restart

Info-Quelle: http://sial.org/howto/clamav/freshclam/

Abgestürtze SSH Session: Wieder verbinden zu laufenden Prozessen

Manchmal passiert es: Die SSH session bricht ab, sei es aufgrund längerer Inaktivität, oder Verbindungsunterbruch. Vor allem, wenn man wichtige Kommandos eingegeben hatte, möchte man diese zwecks Rückverfolgung in der history behalten. – Dies ist bei einem Session-Unterbruch normalerweise nicht der Fall, da die bash-history immer erst beim logout geschrieben wird.

Oder man hat z.B. eine Datei mit vim geöffnet und möchte diese nach dem neu verbinden weiter bearbeiten.

Continue reading Abgestürtze SSH Session: Wieder verbinden zu laufenden Prozessen

TSM Client auf diversen Linux Distributionen einrichten

IBM liefert für ihren TSM Client RPM-Packete für Linux.
Diese lassen sich auf Red Hat Enterprise Linux (RHEL) und SUSE Linux Enterprise Server (SLES) problemlos installieren. Auf anderen Linux’en, vor allem den nicht zertifizierten gibt es hingegen kleinere Hürden, die man überwinden muss.

PREREQS

Benötigt werden immer die original RPM-Pakete von IBM: TIVsm-API.i386.rpm, TIVsm-BA.i386.rpm und TIVsm-msg.de_DE.i386.rpm (optional)

DEBIAN / UBUNTU

Hier muss man die Abhängigkeiten installieren (libstdc) und das .rpm Paket in ein .deb Paket umwandeln; dies geht ganz einfach mit dem tool: ‚alien‘:

apt-get update
apt-get install libstdc++.so.5
apt-get install alien
alien -i TIVsm-API.i386.rpm
alien -i TIVsm-BA.i386.rpm
alien -i TIVsm-msg.de_DE.i386.rpm
dpkg -i TIVsm-API.i386.deb
dpkg -i TIVsm-BA.i386.deb

Danach müssen noch einige Lib-Pfade in die Datei /etc/ld.so.conf aufgenommen werden:

echo "/opt/tivoli/tsm/client/ba/bin" >> /etc/ld.so.conf
echo "/opt/tivoli/tsm/client/api/bin" >> /etc/ld.so.conf

Mit dem Befehl ldconfig -v werden diese Pfade übernommen:

ldconfig -v

Dann müssen einige Links richtig gelegt werden, damit TSM seine Sprachdateien findet:

cd /opt/tivoli/tsm/client/ba/bin/
ln -s ../../lang/en_US en_US
cd /opt/tivoli/tsm/client/api/bin/
ln -s ../../lang/en_US en_US

FERTIG.

FEDORA CORE

Fedora arbeitet schon mit dem RPM, eine umwandlung ist also nicht nötig. Es gillt, aber vorher noch die Abhängigkeiten aufzulösen:

yum check-update
yum install compat-libstdc++*

Nun gibt es noch abhängigkeiten, die man nicht auflösen kann, aber auch nicht dringend sind. Drum installieren wir das RPM mit der "–nodeps" Option

rpm -ihv TIVsm-API.i386.rpm --nodeps
rpm -ihv TIVsm-BA.i386.rpm --nodeps

Da hier das Startscript nicht mitkopiert wird, muss noch ein universal dsmcad startscript (anhang) ins init.d verzeichnis kopiert-, und die rc.?-Links erstellt werden:

ln -s ../init.d/dsmcad /etc/rc3.d/S08dsmcad
ln -s ../init.d/dsmcad /etc/rc4.d/S08dsmcad
ln -s ../init.d/dsmcad /etc/rc5.d/S08dsmcad
ln -s ../init.d/dsmcad /etc/rc0.d/K08dsmcad
ln -s ../init.d/dsmcad /etc/rc1.d/K08dsmcad
ln -s ../init.d/dsmcad /etc/rc6.d/K08dsmcad

Rechner im Netzwerk finden

Manchmal steht man vor dem Problem, dass man nicht mehr weiss, welches Gerät welche IP hat, oder man will einfach sehen, welche Rechner im Netzwerk gerade erreichbar sind.

Diese kann man sich unter Linux mit einem broadcast-ping anzeigen lassen:

ping -b 192.168.0.0
arp -a

Der erste Befehl sendet ein ping, an alle erreichbaren Rechner, der zweite wertet die Namensauflösungen aus und zeigt so den evtl. vorhandenen Domainnamen an.