Einfach mal viel löschen

Um viele Dateien in einem Verzeichnis zu löschen, reicht der Befehl „rm“ irgendwann nicht mehr aus. Die Anzahl der Dateien ist limitiert und man bekommt möglicherweise die Meldung

/bin/rm: Argument list too long

Doch kann man rm ja auch pro Datei aufrufen und xargs verwenden, z.B. so:

find directory -name '*' -print0 | xargs -0 rm

… wobei ‚*‘ jede Dateimaske sein kann.

Unix / Linux: was macht mein Prozess?

There are some useful tools to check the load of your box / server – even when you have just only very less permissions (ant ‚top‘ is not available):

  • ptree – all processes with pid
  • prstat – similar to top
  • kill -3 <pid> – print (java) stack strace and dump to log
  • ps -aelf – you sh’d know it. Otherwise: forget your password.

Wie man Java 1.6 auf Debian Etch Stable installiert (How to install Java 1.6 on Debian Etch Stable)

„Pocket Dope“ beschreibt auf pocketdope.blogspot.com einen interessante Weg, ein aktuelles Java auf Debian Etch zu bekommen.

Nachdem Java 1.6 auch auf „backports“ verfügbar ist, reicht allerdings auch ein Hinzufügen der Zeile
deb http://www.backports.org/debian etch-backports main contrib non-free
zu der Datei /etc/apt/sources.list.

Die Installation Erfolgt dann einfach über
aptitude update
aptitude -t etch-backports install sun-java6-jdk

Anschließend noch schnell die Default-Version auswählen:
update-alternatives –config java

OpenProj 2.1: freies Projektmanagement – neue Version veröffentlicht

Eine Alternative  zu Microsoft (R) Project gibt es nun aus dem Open-Source-Lager. Die Firma Projitiy hat heute eine neue Version der Software „OpenProj“ veröffnelticht. Das Programm arbeitet ähnlich wie MS Project und kann offenbar sogar die Project-Dateien lesen. Ein erster Test verlief sehr vielversprechend, auch wenn an einigen Stellen wohl noch Nachholbedarf besteht.

OpenProj ist in Java geschrieben und somit auch für Mac- und Linux-Nutzer interessant.  Die Software ist auf sf.net gehostet und kann unter http://sourceforge.net/projects/openproj/ geladen werden.

Apache Tomcat und mod_jk / ajp13 auf SuSE Linux

Nach wie vor ist der Apache Httpd schneller als ein Apache Tomcat, wenn es um die Auslieferung von statischen Inhalten geht. Gerade in Verbindung mit Tomcat bietet der Apache Httpd noch weitere Vorteile: durch das Modul mod_jk kann eine ganze Farm an Tomcat-Servern per Load Balancer angeschlossen werden!

Für den Betrieb benötigt man:

  • einen funktionierenden Apache Httpd-Server
  • einen funktionierenden Apache Tomcat-Server
  • das Modul mod_jk, welches auf der Tomcat-Webseite zum download erhältlich ist

Das Modul habe ich zur Vereinfachung nach dem Download in „mod_jk.so“ umbenannt und im Lib-Verzeichnis des Apache Httpd abgelegt (auf SuSE Linux 10.2: /usr/lib/apache2).

Der Apache Httpd ist auf SuSE Linux so konfiguriert, dass alle Dateien, die auf *.conf enden und in /etc/apache2/conf.d liegen, automatisch zu httpd.conf (bzw default-server.conf) included werden. Das macht die weitere Konfiguration einfach, denn nun müssen in dem o.g. Verzeichnis nur zwei Konfigurationsdateien abgelegt werden.

Die Datei tomcat.conf bindet mod_jk ein:

# Load mod_jk module
# Update this path to match your modules location
LoadModule jk_module /usr/lib/apache2/mod_jk.so
# Declare the module for <IfModule directive> (remove this line on Apache 2.x)
#AddModule mod_jk.c

# Where to find workers.properties
# Update this path to match your conf directory location (put workers.properties next to httpd.conf)
JkWorkersFile /etc/apache2/conf.d/workers.properties

# Where to put jk shared memory
# Update this path to match your local state directory or logs directory
JkShmFile /var/log/apache2/mod_jk.shm

# Where to put jk logs
# Update this path to match your logs directory location (put mod_jk.log next to access_log)
JkLogFile /var/log/apache2/mod_jk.log

# Set the jk log level [debug/error/info]
JkLogLevel debug

# Select the timestamp log format
JkLogStampFormat „[%a %b %d %H:%M:%S %Y] “

# Send everything for context /examples to worker named worker1 (ajp13)
JkMount /application/* worker1

In der Datei müssen ggf. die Pfade zu mod_jk.so sowie zu den Log-Files angepasst werden.
Mit JkWorkersFile wird auf die Konfigurationsdatei des mod_jk referenziert. Alle Anfragen im Format http://www.domain.tld/application werden nun an mod_jk übergeben.

Die Datei workers.properties ist – sofern nur ein einziger Tomcat-Server angebunden werden muss, sehr kurz:

# Define 1 real worker using ajp13
# this coud be al list in the format
# worker.list=worker1, worker2, worker3, worker4
worker.list=worker1

# Set properties for worker1 (ajp13)
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009

Das Format zum Konfigurieren der einzelnen Worker ist also worker.<workername>.<property> . In der Beispielkonfiguration wird also nur ein Worker mit dem Namen „worker1“ genutzt, der auf dem gleichen Host läuft und mittels dem Protokoll ajp13 angesprochen wird.

Über die URL http://www.<domain>.<tld>/application erreicht man nun also direkt die Application auf dem Tomcat.

Quellen & weiterführende Links:

Java-Prozesse auf der Linux töten (killall, ps, grep, awk)

Einige Prozesse lasen sich nicht ohne weiteres an „kill“ / „killall“ übergeben, da der Prozessname Leerzeichen enthält. Gerade bei Java-Anwendungen ist das meistens der Fall, da die JRE im Prozessnamen enthalten ist und ggf auch Parameter mit aufgeführt werden. Meist ist also nur ein Teil des Prozessnamens bekannt, z.B. das jar-Archiv.

Folgender Befehl extrahiert die PID, wenn nur der Name des jar-Archives bekannt ist:

ps ax | grep -v grep | grep ‚meinjavaprogramm.jar‘ | awk ‚{print $1}‘

Als Ergebis wird NUR die PID ausgegeben, z.B. 14244. Die kann kann an „kill“ angehängt werden: kill [param] 14244

CUPS: Drucker-Warteschlange neu starten

CUPS ist ein möchtiges Tool, um Drucker zentral zu verwalten. Allerdings macht CUPS in der Standard-Installation von SuSE manchmal sorgen, da der User „root“ nicht für das Admin-Interface (Erreichbar via Web-Browser unter der IP <your server>:631) freigeschaltet ist. Manchmal macht es auch Sinn, die Warteschlangen nur über die Konsole zu steuern.

  • lpstat -p zeigt die aktuellen Warteschlangen inklusive Status
  • lpstat -p -o zeigt zusätzlich auch die ausstehenden Druckaufträgean

Um eine Warteschlange neu zu starten, weil sich z.b. ein Netzwerkdrucker mal an einem Auftrag verschluckt hat und die weitere Bearbeitung der Druckaufträge nicht funktioniert, sind folgende Befehle gut:

  • /usr/bin/enable <printername> schaltet die Warteschlange wieder ein
  • /usr/sbin/accept <printername> erklärt CUPS, dass wieder Aufträge angenommen werden dürfen.

Entsprechend kann eine Warteschlange auch abgeschlatet werden, indem man folgende Befehle verwendet:

  • /usr/bin/disable <printername> schaltet die Warteschlange aus
  • /usr/sbin/reject <printername> weist CUPS an, keine weiteren Aufträge mehr anzunehmen

Ubuntu-Buch kostenlos bei Galileocomputing

Galileo Computing hat sein Angebot an kostenlos erhätlichen Büchern erweitert. Ab sofort ist nun neben den bekannten Buch „Java ist auch nur eine Insel“ auch ein Werk zur populären Linux-Distribution „Ubuntu“ erschienen. Galileo Computing schreibt:

Ubuntu Linux hat sich seit geraumer Zeit als Nummer Eins unter den Linux-Desktopsystemen etabliert. Und das hat einen guten Grund: Benutzerfreundlichkeit, leichte Bedienung, optimale Hardwareerkennung: Ubuntu macht keine Probleme. Deshalb ist es für Linux-Einsteiger und -Umsteiger interessant. Aber längst nicht nur.

Was man mit dem System alles anstellen kann, beschreibt dieses Buch ausführlich und verständlich. Die zweite Auflage wurde stark erweitert. Von Paketverwaltung über Optimierung, Programmierung, Migration und Kernelkompilierung bis hin zur Netzwerktechnik finden Sie alle wichtigen Fragen zu Ubuntu Linux in diesem Buch beantwortet.

Der Download umfasst rund 30 MB, das Buch mit über 900 Seiten ist im Fachhandel auch in gedruckter Form für 39,90 Euro erhältlich.

Kostenloses Linux-Kernel-Buch bei O’Reilly

O’Reilly hat ein weiteres aktuelles Werk zum kostenlosen Download bereitgestellt. Dieses mal handelt es sich um das Buch „Linux Kernel in a Nutshell“ von Greg Kroah-Hartman. Golem schreibt zu diesem Buch:

„Linux Kernel in a Nutshell“ widmet sich der Konfiguration eines Kernels, um beispielsweise Funktionen wie Sound und WLAN-Unterstützung zum Laufen zu bekommen. Dabei sollen alle nötigen Schritte erläutert werden, vom Download der Kernel-Quellen über die eigentliche Konfiguration bis zur Möglichkeit, Kernel-Optionen zur Laufzeit zu kontrollieren. Auch auf einzelne Treiber und die benötigten Werkzeuge geht Kroah-Hartman in seinem Buch ein, widmet sich aber explizit nicht der Kernel-Programmierung. Linux-Erfahrungen sollte der Leser dennoch mitbringen.

Das Buch ist im PDF- und im DocBook-Format zum Download erhältlich.