Alle Beiträge von szadmin

CUPS Weboberfläche im Netzwerk freigeben

Problem:
Ich habe einen Druckserver und möchte das Webinterface vom lokalen Netzwerk aus nutzen.

Lösung:
Früher durfte man die cupsd.conf bearbeiten, heute aber kann man das Webinterface via sudo cupsctl --remote-admin im Netzwerk freigeben.
Wen die Paranoia plagt, der kann nach getaner Arbeit das Webinterface wieder fürs Netz deaktivieren.sudo cupsctl --no-remote-admin

Oracle Java Package erstellen unter Debian

Problem:
Oracles Java wird benötigt, ist aber in keinem Repo verfügbar.

Lösung:
Ich habe hier schon einen anderen Beitrag zur manuellen Installation von Java verfasst, dieser ist hiermit ungültig und sollte NICHT MEHR VERWENDET WERDEN!!

Um die Dinge der Installation rückgängig zu machen, empfiehlt sich die Ausführung folgender Befehle als root

Achtung, hier wird die 64bit Version genutzt! Für 32bit müssen die Pfade (amd64 –> i386) entsprechend angepasst werden!


update-alternatives --remove java /usr/lib/jvm/java-7-oracle/bin/java
update-alternatives --remove javac /usr/lib/jvm/java-7-oracle/bin/javac
update-alternatives --remove javaws /usr/lib/jvm/java-7-oracle/bin/javaws
update-alternatives --remove javadoc /usr/lib/jvm/java-7-oracle/bin/javadoc
update-alternatives --remove javah /usr/lib/jvm/java-7-oracle/bin/javah
update-alternatives --remove javap /usr/lib/jvm/java-7-oracle/bin/javap
update-alternatives --remove java_vm /usr/lib/jvm/java-7-oracle/jre/bin/java_vm
update-alternatives --remove jvisualvm /usr/lib/jvm/java-7-oracle/bin/jvisualvm
update-alternatives --remove policytool /usr/lib/jvm/java-7-oracle/jre/bin/policytool
update-alternatives --remove ControlPanel /usr/lib/jvm/java-7-oracle/jre/bin/ControlPanel
update-alternatives --remove iceweasel-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so
update-alternatives --remove firefox-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so
update-alternatives --remove mozilla-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so
update-alternatives --remove midbrowser-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so
update-alternatives --remove iceape-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so
update-alternatives --remove xulrunner-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so
update-alternatives --remove xulrunner-addons-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so

Im Anschluss sollte das aktuellste, verfügbare Paket java-package installiert werden

apt-get install java-package

Ich habe die Debian Backports eingebunden (Howto) und habe daher zusätzlich folgenden apt-get Schalter genutzt.
-t wheezy-backport
Nun ist das Tool make-jpkg bereitgestellt, mit welchem künftig das Installationspaket / Update generiert werden wird! =)

Zuerst lädt mal auf der Java-Webseite das aktuelle Paket für die verwendete Architekture (i386/amd64) herunter. Dann führt man als User (!! Wichtig, als root wirds mit Fehler enden !!)

make-jpkg jdk-7u51-linux-x64.tar.gz

aus.

Am Ende erhält man daraus ein Paket, in meinem Fall oracle-java7-jdk_7u51_amd64.deb
Dieses kann als root wie gewohnt installiert werden!

dpkg -i oracle-java7-jdk_7u51_amd64.deb

Im Anschluss sollte man sich vergewissern, welche Applikationen denn für die Bereitstellung von „java“ noch installiert sind. Diese kann man eigentlich alle Deinstallieren sofern keine Abhängkeit zu anderen Paketen besteht.
update-alternatives --list java zeigt die installiert-/registrierten Binaries. Welchem zu deinstallierendem Debian Paket die jeweilige Binary gehört, kann mit „dpkg -S“ rausgefunden werden.

Hier ein Beispiel:

user@host:~$ update-alternatives --list java
/usr/lib/jvm/jdk-7-oracle-x64/jre/bin/java
user@host:~$ dpkg -S /usr/lib/jvm/jdk-7-oracle-x64/jre/bin/java
oracle-java7-jdk: /usr/lib/jvm/jdk-7-oracle-x64/jre/bin/java

Ergebnis: oracle-java7-jdk wäre nun ein Ergebnis – aber das ist in diesem Fall auch gut so! 😉

svchost.exe 100% CPU bei Windows XP Update

Problem:
Ich habe 3 Rechner mit WinXP SP3 Slipstream neuinstalliert. Leider ist es über den IE6 nicht möglich, die ausstehenden MS Updates einzuspielen da das System mit der svchost.exe auf 100% Auslastung hängt.

Ich habe einige Dinge ausprobiert, im Internet finden sich haufenweise Beschreibungen des Fehlers, welcher wohl im Jahr 2011 unter XP SP2 schon aufgetreten ist. Dementsprechend sind die Lösungen auch nicht praktikabel, da die vorgeschlagenen Patches schon in SP3 integriert sind.

Am 3. Tag habe ich dann mal nebenbei die Lösung für das Problem gefunden – endlich!! =)

Wichtig: svchost.exe kann 100% Auslastung verursachen, das ist prinzipiell kein Fehler und „muss so sein“!
Wenn aber nach 12 Stunden keine Veränderung zu sehen ist, dann kann nachfolgendes hilfreich sein.

Workaround:
2 manuell-installierte Dinge haben die Lage entspannt und endlich Windows Updates ermöglicht.

1. Installieren der aktuellen Root Zertifikate von Microsoft
http://www.microsoft.com/de-de/download/details.aspx?id=38918

2. Installieren des Internet Explorers 8
http://www.microsoft.com/de-de/download/internet-explorer-8-details.aspx

Nach einem Neustart sollte das Windows Update Tool wieder Ergebnisse liefern!

Apache Rewrite Cheatsheet

Hier eine Auflistung sinniger und unsinniger Weiterleitungsregeln
Zu fehlerfreien Nutzung ist ein Grundwissen über Webserver Statuscodes (nach RFC 2616) nötig. Nachfolgende wichtige sind auf der Seite http://www.debianhelp.co.uk/errorcodes.htm zu finden. Auch auf Wikipedia findet sich eine detailierte Auflistung aller Codes.

Error code categories

Successful Client Requests:
200 OK
201 Created
202 Accepted
203 Non-Authorative Information
204 No Content
205 Reset Content
206 Partial Content

Client Request Redirected:
300 Multiple Choices
301 Moved Permanently
302 Moved Temporarily
303 See Other
304 Not Modified
305 Use Proxy

Client Request Errors:
400 Bad Request
401 Authorization Required
402 Payment Required (not used yet)
403 Forbidden
404 Not Found
405 Method Not Allowed
406 Not Acceptable (encoding)
407 Proxy Authentication Required
408 Request Timed Out
409 Conflicting Request
410 Gone
411 Content Length Required
412 Precondition Failed
413 Request Entity Too Long
414 Request URI Too Long
415 Unsupported Media Type

Server Errors:
500 Internal Server Error
501 Not Implemented
502 Bad Gateway
503 Service Unavailable
504 Gateway Timeout
505 HTTP Version Not Supported

1. Einfache, permanente Weiterleitung (Status 301) an eine andere Adresse (kein DocumentRoot im Vhost notwendig!)

Redirect permanent / https://www.anderedomain.de/

2. URL Umschreibung zur Kanonisierung (SEO)

RewriteCond %{HTTP_HOST} !^www.kommuniziertedomain.de
RewriteRule (.*) http://www.kommuniziertedomain.de%{REQUEST_URI} [R=301,QSA,L]

3. URL immer auf https umschreiben

RewriteCond %{HTTPS} off
RewriteRule (.*)$ https://www.meinedomain.de%{REQUEST_URI} [R=301,QSA,L]

Postgres – Datenbank und User über die Konsole anlegen

Problem:
Ich habe eine Applikation welche eine Postgres Datenbank und zugehörigen User benötigt.

Lösung:
Per ssh auf dem Server anmelden und als root zum user postgres wechseln

ssh root@server
su postgres

Damit kann die Datenbank maintained werden.

Ich verwende dazu die verfügbaren Werkzeuge von PostGres, zuerst sollte der User angelegt werden:

# Anlegen eines Users mit Passwort Abfrage und encrypted Passwortstorage
createuser -E -P neuerusername
# Anlegen einer neuen Datenbank mit Ownerzuweisung an neuerusername
createdb -O neuerusername datenbankname

Und schon kann die neue Datenbank mit dem neuen User genutzt werden.

gnome-shell nach Absturz wieder beleben unter Debian

Problem:
Ich habe in der Mittagspause meinen Rechner gesperrt, natürlich waren viele Dokumente offen und nicht gespeichert. Als ich Ihn wieder entsperren will, reagiert die Gnome-Shell nicht mehr.
Wie kann ich jetzt Datenverlust vermeiden?

Lösung:
Die hängende Obrfläche befindet sich auf tty7. Ich wechsle also zuerst in eine andere Konsole und melde mich dort an.
Nach der Anmeldung muss geprüft werden, ob der Prozess „gnome-shell“ noch existiert.
Sollte der Prozess NICHT mehr existieren, dann sollte man diesen Beitrag erst komplett durchlesen 😉

user@workstation:~$ ps uax | grep gnome-shell
user 7168 0.3 4.4 946116 174620 ? Rl Jul05 27:32 /usr/bin/gnome-shell

Dieser Prozess muss nun also ersetzt werden. Wie geht man vor?
Zuerst muss man rausfinden, auf welchem Display der aktive Xorg Server läuft

user@workstation:~$ ps uax | grep Xorg
root 5534 0.3 1.2 160088 49264 tty7 Rs+ Jul05 28:20 /usr/bin/Xorg :0 -br -verbose -novtswitch -auth /var/run/gdm3/auth-for-Debian-gdm-htekEo/database -nolisten tcp vt7

Der Server läuft auf dem Display „:0“
Die Display Variable muss auf der Konsole exportiert werden, ich prüfe auch gleich auf die Existenz der Variablen

user@workstation:~$ export DISPLAY=:0
user@workstation:~$ env | grep DISPLAY
DISPLAY=:0

Jetzt sind die Vorraussetzungen geschaffen, um die Oberfläche zu ersetzen.
Nun ersetze ich die kaputte Oberfläche auf tty7

user@workstation:~$ gnome-shell --replace &

Sollte oben festgestellt worden sein, dass der Prozess komplett fehlt, muss der Befehl wie folgt lauten

user@workstation:~$ gnome-shell &

Gutes Gelingen! – ansonsten kann man nur noch den Desktopmanager neu starten was jedoch Datenverlust bedeutet!

„LSR safety check engaged“ unter Linux

Problem:
Beim Starten von „setserial“ wird folgende Meldung in die Konsole geprintet

"LSR safety check engaged"

Lösung:
In der Regel besagt diese Meldung, dass die Einstellungen von „setserial“ nicht zum System passen.

Man sollte also die Einstellungen von setserial (unter Debian in „/etc/serial.conf“ zu finden) mit der Ausgabe von

dmesg | grep tty

vergleichen, um Klarheit zu bekommen.

HOWTO – FFMpeg Komprimierung unter Linux – WMV

Problem:
Ich habe verschiedene Videos encodiert in verschiedenen Codecs, welche nun für Windows bereit gestellt werden müssen.
Der betroffene WindowsUser hat keine Rechte auf seinem PC und kann somit selbstständig keine zusätzlichen Codecs installieren.

Lösung:
Ich nutze vom Mediaplayer unterstützte Formate und encodiere die Videos mit FFMpeg neu. Ich nutze einen recht niedrigen qscale Wert um keine Qualitätseinbußen zu bekommen.

Weitere Infos zum Thema „qscale“ finden sich auch auf dieser informativen Seite
http://www.kilobitspersecond.com/2007/05/24/ffmpeg-quality-comparison/

Die Installation von FFMpeg wird hier natürlich voraus gesetzt.


ffmpeg -i input.mp4 -qscale 2 -vcodec msmpeg4 -acodec wmav2 output.wmv

Bei Bedarf kann noch getunt werden =)

SQL Schema Dump erstellen und in neues Schema einspielen unter Oracle

Problem:
Ich habe ein Datenbank auf dem Oracle welche für die Entwicklung geclont werden soll

Lösung:
Über die Kommandozeile wird ein „Oracle Data Pump“ erstellt.
Ich melde mich als Systemuser an, erstelle ein Backup Directory und erstelle darin den Dump

sqlplus SYSTEM/oracle@ORCL
## Ab hier in SQLPLUS
SQL> desc DBA_DIRECTORIES
Name Null? Type
----------------------------------------- -------- ----------------------------
OWNER NOT NULL VARCHAR2(30)
DIRECTORY_NAME NOT NULL VARCHAR2(30)
DIRECTORY_PATH VARCHAR2(4000)

SQL> CREATE DIRECTORY tmp as '/home/oracle/EXPORTS' ;

Directory created.
SQL> exit
Disconnected from Oracle Database 11g
## Ab hier wieder in der Shell

# dieser Dump wird nun in /home/oracle/EXPORTS erstellt
expdp USER/PASS schemas=USER directory=tmp dumpfile=myDB.dmp logfile=myDB.log

Das Backup ist nun vom gewünschten Schema erstellt worden, nun wird der neue User erstellt und der Dump in ein neues Schema eingespielt. Wichtig ist hier das Remappen beim Importieren!!

sqlplus SYSTEM/oracle@ORCL
##Ab hier SQL Plus
SQL> CREATE USER TESTUSER IDENTIFIED BY TESTUSER;
SQL> GRANT CREATE SESSION TO TESTUSER;
SQL> exit
## Ab hier wieder in der Shell
impdp TESTUSER/TESTUSER schemas=USER directory=tmp dumpfile=myDB.dmp remap_schema=USER:TESTUSER

Das müsste es auch schon gewesen sein