Winamp Playlists als PDF umwandeln


Nachdem ich mich in letzter Zeit mehr mit Winamp beschäftigt habe, und ich dort auch gerne mit Playlists arbeite. Habe ich nach einer Möglichkeit gesucht die Playlist so auszugeben, dass an sehen kann wann welches Lied läuft. Es gab natürlich kein passendes Tool. Also bin ich auf eine Linux-Shell ausgewichen. Das Ergebnis könnt hier sehen.


Einfach die Playlist abspeichern, und mit dem Script als Parameter aufrufen.

#!/bin/bash

PLAYLIST="$1"

# Enter Party Date here

TIME=$(date -d '2009-11-14 19:30:00' +'%s')

dos2unix < "$PLAYLIST" |\

grep EXTINF "$PLAYLIST" |\

while read -r LINE ; do

ZZ=${LINE%%,*}

let TIME=$TIME+${ZZ##*:}-5

echo "$(date -d "1970-01-01 UTC $TIME seconds" +'%a %T') ${LINE#*,}"

done | a2ps --center-title="${PLAYLIST%.*}" -R -1 -o - | ps2pdf - "${PLAYLIST%.*}".pdf

Pulp Fiction
Der Pfad der Gerechten ist zu beiden Seiten gesäumt mit Freveleien der Selbstsüchtigen und der Tyrannei böser Männer. Gesegnet sei der, der im Namen der Barmherzigkeit und des guten Willens die Schwachen durch das Tal der Dunkelheit geleitet, denn er ist der wahre Hüter seines Bruders und der Retter der verlorenen Kinder. Und ich will große Rachetaten an denen vollführen, die da versuchen, meine Brüder zu vergiften und zu vernichten und mit Grimm werde ich sie strafen, auf dass sie erfahren sollen, ich sei der Herr, wenn ich meine Rache an ihnen vollstreckt habe!

Was für ein geiler Film, ich finde immer wieder neues wenn ich Ihn sehe.

Linux Grundlagen I

Linux Grundlagen I



Vorwort



Linux ist ein frei verfügbares Betriebssystem welches auch im
Professionellen Umfeld Anwendung findet. Hierfür gibt es mindestens zwei
große Distributionen. Novell SLES und Redhat Enterprice. Beide bieten
nur eine Auswahl an Softwarepaketen. Dabei schränkt sich die Auswahl
auf Programme ein die als ausgereift und stabil gelten.



Als vollständiges Betriebssystem darf man Linux nicht auf eine seiner
Komponenten reduzieren, sondern muss die Vielfalt aller einzelnen
Programme sehen. Keines ist für sich gesehen lauffähig nur wenn alle
zusammenarbeiten entsteht ein gutes Betriebssystem.



Im weiteren Verlauf möchte ich gerne die Grundalgen erläutern um mit dem Betriebssystem Linux umzugehen. Die hier beschriebenen Vorgehensweisen und Grundlagen lassen sich Systeme übertragen. Gemeint ist hierbei vorallem auch Mac OS X.

Terminalfenster


Um mit dem Betriebssystem Kontakt aufzunehmen benötigt man eine Schnittstelle oder ein Programm. In Linux nutzt man dazu das Terminalfenster.


Benutzer und Gruppen

Neben dem Superuser root, der per Definition alles darf. Gibt es nur noch normale Benutzer. Wir arbeiten auf Linuxsystemen nur als normaler Benutzer, so kann man verhindern das man aus versehen wichtige für den Betrieb des Servers notwendige Dateien löscht. Der Systemverwalter hat so auch die Möglichkeit normale Benutzer von Systemwichtigen Bereichen fern zu halten. Um doch die Möglichkeit zu haben auch als normaler ausgewählte Funktionen als root-User auszuführen gibt es die sudo Funktion.

Dateien

Dateien liegen in Verzeichnisse und haben die folgenden Attribute: Besitzer, Gruppe, Rechte, Accesstime, Creationtime, Modificationtime. Im folgenden werden die einzelnen Attribute näher erläutert.

Befehlsübersicht

Zu jedem Befehl kann man sich Hilfe anzeigen lassen. Wenn also die Syntax nicht soft klar ist, bitte die Hilfe der Befehle nutzen.

Hilfe zu Befehlen

man befehl
Zeigt die man-Page zum Befehl an. Innerhalb der man-Page kann man sich so wie im vim bewegen
befehl --help
Fast alle Befehle haben eine kurze Übersicht der möglichen Befehle eingebaut
info befehl
Info Seiten zum Befehl. Die Navigation erfolgt

ssh Login/out und Benutzer

ssh digicol@lxsrvtest01
Remotelogin über ssh mit dem Benutzernamen Digicol auf den Server lxsrvtest01
id
Gibt den Benutzernamen aus mit dem ich gerade am System angemeldet bin.
who
Zeigt mir die anderen Benutzer an die gerade am System angemeldet sind.
sudo scanner stop
Es wird das eigene Passwort abgefragt dann darf man den Befehl der hinter sudo aufgeführt ist als root-user ausführen

Verzeichnisbaum


cd log/rls
Wechselt vom aktuellen Verzeichnis in das Unterverzeichnis log/tls
cd /tmp
Wechselt vom aktuellen Verzeichnis in das absolute Unterverzeichnis /tmp
pwd
Print woking Directory, zeigt das aktuelle Verzeichnis an in dem man sich aktuell Befindet.
cd ~ oder cd
Wechselt in das Homerverzeichnis des Benutzers

Dateien

Unter Linux arbeiten wir nur mit Dateien, auch Geräte werden als Datei angesprochen.

Finden


find -name "*.jpg"
Alle Dateien mit dem Wildcard Namen *.jpg vom aktuellen Verzeichnis aus finden.
find -type f
Nur Dateien finden
find -type d
Nur Verzeichnisse finden
find /dot/import-expoert/ -mmin +5 -type f
Finde im absoluten Pfad /dot/import-export/ nur Dateien die vor mehr als 5 Minuten verändert worden sind

Kopieren / Verschieben - Umbenennen

cp DateiA DateiB
Kopiert DateiA nach DateiB die Aktion wird dabei im aktuellen Verzeichnis durchgeführt.
cp DateiA /tmp
Die DateiA wird in das Verzeichnis /tmp Kopiert.
cp ~/Bilder/DateiA /dot/import-export
Kopiere die DateiA aus dem Absoluten Verzeichnis ~/Bilder/DateiA in den Pfad /dot/import-export.
Dabei behält die Datei ihren Namen
cp ~/bilder/DateiA /dot/import-export/DateiB
Kopiere die DateiA aus dem Absoluten Verzeichnis ~/Bilder/DateiA in den Pfad /dot/import-export.
Dabei bekommt die Datei den neuen Namen DateiB
mv DateiA DateiB
Die DateiA wird in DateiB umbennant die "alte" DateiA gibt es dann nicht mehr
mv DateiA /tmp
Die DateiA wird nach /tmp verschoben

Informationen anzeigen

Datei

ls -al DateiA
Zeigt ausführliche Informationen zur Datei DateiA an.


-rw-r--r--  1 root root  1773 2008-12-15 14:45 DateiA

012345678901234567890123456789012345678901234567890123456789


 

Stelle
Beschreibung
0-9Datei Rechte
12
Anzahl der Hardlinks auf diese Datei
14-17
Besitzer
19-22
Gruppe
25-28
Größe in Bytes
30-39
Datum
41-45
Uhrzeit (mtime)
47-52
Datei Name

Verzeichnis

ls -al VerzA
Zeigt ausführliche Informationen zum Verzeichnis VerzA an.


drw-r--r--  7 root root  1773 2007-10-11 09:05 VerzA

012345678901234567890123456789012345678901234567890123456789


 

Stelle
Beschreibung
0-9Datei Rechte
12
Anzahl der Verzeichnisse in diesem Verzeichnis minus 2
14-17
Besitzer
19-22
Gruppe
25-28
Größe in Bytes (immer 4k)
30-39
Datum
41-45
Uhrzeit (mtime)
47-52
Verzeichnis Name

Löschen

rm DateiA
Löscht diese Datei
rm -r /dirA
Löscht das Verzeichnis dirA absolut und alle darin enthaltenen Unterverzeichnisse und Dateien.
rm -r dirA
Löscht das Verzeichnis dirA relativ vom aktuellen Standort innerhalb des Verzeichnisbaums und alle darin enthaltenen Unterverzeichnisse und Dateien.

Schlusswort und Links







netbook-launcher ist langsam

Ich habe für meinen Nachbarn ein nettes kleines Netbook besorgt. Lenovo S10e. Und habe da auch gleich das neue Ubuntu 9.10 als Netbook-Remix drauf gemacht, so weit so gut, einziges Problem war das der schöne netbook-launcher das ganze Netbook exterm langsam gemacht hat.
Zuerst dachte ich es liegt am Kernel, der zur Zeit probleme mit Intel Grafikkarten hat, aber weit gefehlt.

Die Lösung war:
Dank der Autokonfiguration der xorg.conf wurde diese im Section "Screen" um folgendes erweitert:

SubSection "Display"
Virtual 2048 768
EndSubSection

Diese drei Zeilen habe ich einfach gelöscht. Abmelden - Anmelden nnd jetzt läuft es wie geschmiert. Eigentlich unglaublich oder?
crond zieht keine neue crontab aus /etc/cron.d

Auf einem Cluster verteilen wir neue crontab Einträge als Datei im Verzeichnis /etc/cron.d. Jetzt habe ich mich immer wieder gewundert warum die neue crontab-Datei nicht vom crond gezogen wurde.
Dies liegt daran das crond die modification time des Ordners überwacht und nicht die der Datei(en). Wärend ich darüber nachdenke macht ja auch nur das Sinn. Wie soll er sonst mitbekommen wenn eine neue Datei im Verzeichnis abgelegt wird.
Mein Problem ist das meine Verteilung nur bereits vorhandene Dateien überschreibt und das ändernt nicht die modifikation time des Ordners, also bekommt es der crond nicht mit.
Jetzt werde ich in mein Verteilscript einbauen das es einen touch auf den Ordner /etc/cron.d gibt.
Hoher Speicherverbrauch auf Linuxsystemen mit GPFS

ich wollte hier über meine Erfahrungen mit einem GPFS System berichten welches zu viel Speicher verbraucht. Wir hatten dazu auch einen PMR bei IBM geöffnet der uns leider nicht sehr viel weitergeholfen hat.

Um es vorweg kurz zu machen, das Augenscheinliche Problem ist gar kein Problem, sondern liegt im Blickwinkel des Betrachters. Den es wird zwar viel Arbeitsspeicher verbraucht, dieser wird aber wieder freigegeben. Dazu später mehr.

  • Wie es dazu kam das ich ein Problem vermutete
Ich habe einen neuen Nagios-Check auf den Systemen eingerichtet der den Arbeitsspeicher Verbrauch überwacht. Dieser Check hat nach sehr kurzer Laufzeit schon angeschlagen und gemeldet das mehr als 80% des verfügbaren Arbeitsspeichers verwendet wird.

  • Analyse des zu hohen Speicherverbrauchs
Ich habe dann mit top und ps nachgeforscht welche Applikation so viel Speicher verbrauchen könnte. Ich konnte auf dem ganzen System kein Programm finden welches so viel Arbeitsspeicher verbraucht das der verfügbare Arbeitsspeicher ganz verbraucht ist. Nach längerem Suchen fand ich im Internet Hinweise darauf mal im slabcache nachzuschauen. Dort wurde ich dann auch fündig. Der gpfsInodeCache ist Teil des Kernel-slab und brauchte auf einem System welches 17GB Arbeitsspeicher hat 12GB für den gpfsInodeCache. Auf diesem Cluster sind über 15 Millionen Dateien/Verzeichnes gespeichert. Und der Anstieg des Speicherverbrauchs kam immer zusammen mit dem Backup vor. Wenn also jemand sehr viele Dateien/Verzeichnisse anfasst werden auch viele Inodes gelesen. Diese wandern dann in den gpfsInodeCache.

  • Call bei IBM
Weder der Support in Deutschland noch der Support in England konnte uns bei diesem Problem helfen. Leider ist auch die im Internet verfügbare Dokumentation zum slabcache sehr dünn. Der Support hat dann unseren PMR nach USA zu den Entwicklern weitergereicht. Die erklärten das sei ein ganz normales Verhalten, und es handelt sich nicht um ein Speicherleck. Leider könnten auch die Kollegen aus den USA nicht näher erläurten wie es denn genau zu dem hohen Speicherverbrauch kommt.

  • Erklärung
Da ja der Support uns nicht wirklich weiterhelfen konnte habe ich mich selber auf die Suche nach der Lösung gemacht. Einige Hinweise hatte ich ja bereits.
Der gpfsInodeCache ist Teil des Kernel-Slabcahces und zieht sich so viel Arbeitsspeicher wie er bekommen kann. Der Arbeitsspeicher der einmal für den Slab verwendet wird wird von alleine nicht wieder freigegen. Erst wenn eine Applikation neuen Arbeitsspeicher beim Kernel anfragt wird der Slab verkleinert und der Prozess bekommt seinen angefragten Arbeitsspeicher.

  • Das habe ich wie folgt überprüft
Ich habe ein tmpfs Dateisystem angelegt welches komplett im Arbeitsspeicher gehalten wird. In diesem Dateisystem habe ich mit dd einige große Dateien angelegt (jeweils 1GB) und konnte dann beobachten das Arbeitsspeicher aus dem slab-Bereich freigegeben wird und der Chache wächst. Um das zu beobachten habe ich die Tools top und slabtop verwendet.


  • Hintergrund zum Nagios-Check
Leider sind alle Standard-Tools zur Anzeige von Arbeitsspeicher-Verbräuchen so gestrickt, das sie den slabache zum Gesamtspeicherverbrauch einfach dazu rechnen. Das Funktioniert auf Standardsystemen auch wunderbar. Die Standardtools werden auch von den Nagios-Checks verwendet.
Wenn man sich auf meinem System einmal die Ausgabe von free anschaut, sieht man das fast der ganze Arbeitsspeicher verwendet wird, und zwar als used Memory. Das verwirrt natürlich total den es sieht so aus als ob Arbeitsspeicher unsichtbar verwendet wird.

  • Fazit
Works as designed....
Farbige Shell Scripte ausgaben

Eben habe ich eine sehr schöne Seite gefunden, die viele Beispiele bietet wie man seine Shell Script ausgaben farbig gestallten kann.

Gleich mal zum ausprobieren:
echo -e "\033[1mDas ist ein fetter Text.\033[0m"
echo -e "\033[4mDas ist ein unterstrichener Text.\033[0m

http://www.faqs.org/docs/abs/HTML/colorizing.html
Vim erzeugt Html Code

Mit dem Editor Vim kann man sich den Code den man als Syntax Highlighting sehen kann auch als Html-Code erzeugen lassen.

Dazu gibt man dem Vim einfach den folgenden Befehl:

:TOhtml

Groß- Kleinschreibung ist wichtig!
Jboss Heartbeat2 OCF Script

Damit man Jboss auch als resource in einem Heartbeatcluster laufen lassen kann habe ich das Script für tomcat genommen, und es als Jboss Script umgebaut.
Da ich kein Script im Web finden konnte habe ich es hier veröffentlicht. Ich hoffe andere finden es auch gut.



#!/bin/sh
#
# Description: Manages a Jboss Server as an OCF High-Availability
# resource under Heartbeat/LinuxHA control

#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.
#
# Copyright (c) 2009 Bauer Systems KG / Stefan Schluppeck
#

#######################################################################
# OCF parameters:
# OCF_RESKEY_jboss_name - The name of the resource. Default is jboss
# OCF_RESKEY_script_log - A destination of the log of this script. Default /var/log/${OCF_RESKEY_jboss_name}.log
# OCF_RESKEY_jboss_stop_timeout - Time-out at the time of the stop. Default is 5
# OCF_RESKEY_jboss_suspend_trialcount - The re-try number of times awaiting a stop. Default is 10
# OCF_RESKEY_jboss_user - A user name to start a resource. Default is root
# OCF_RESKEY_statusurl - URL for state confirmation. Default is http://127.0.0.1:8080

# OCF_RESKEY_java_home - Home directory of the Java. Default is None
# OCF_RESKEY_jboss_home - Home directory of Jboss. Default is None
# OCF_RESKEY_jboss_pstring - String Jboss will found in procceslist. Default is "java -Dprogram.name=run.sh"
# OCF_RESKEY_jboss_sh - Options for jboss to run. Default is "-c default -l lpg4j"
###############################################################################


. ${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs

usage()

{
cat <<-!
usage: $0 action

action:
start start jboss

stop stop the jboss

status return the status of jboss, run or down

monitor return TRUE if the jboss appears to be working.
You have to have installed $WGETNAME for this to work.

meta-data show meta data message

validate-all validate the instance parameters
!
return $OCF_ERR_ARGS
}

isrunning_jboss()
{
if wget -O /dev/null $RESOURCE_STATUSURL 2>/dev/null; then

return $OCF_SUCCESS
fi
return $OCF_ERR_GENERIC
}

monitor_jboss()

{
if ! pgrep -f "$JBOSS_PSTRING" > /dev/null; then

return $OCF_NOT_RUNNING
fi
isrunning_jboss
if [ $? != $OCF_SUCCESS ]; then

return $OCF_NOT_RUNNING
fi
}

start_jboss()
{
monitor_jboss
if [ $? = $OCF_SUCCESS ]; then

return $OCF_SUCCESS
fi

echo "`date "+%Y/%m/%d %T"`: start ===========================" >> "$JBOSS_CONSOLE"

if [ "$RESOURCE_JBOSS_USER" = RUNASIS ]; then
"$JBOSS_HOME/bin/run.sh" $JBOSS_SH \
>> "$JBOSS_CONSOLE" 2>&1 &

else
su - "$RESOURCE_JBOSS_USER" \
-c "export JAVA_HOME=${OCF_RESKEY_java_home};\n

export JBOSS_HOME=${OCF_RESKEY_jboss_home};\n
$JBOSS_HOME/bin/run.sh $JBOSS_SH" \
>> "$JBOSS_CONSOLE" 2>&1 &

fi

while true; do
monitor_jboss
if [ $? = $OCF_SUCCESS ]; then

break
fi
ocf_log debug "start_jboss[$JBOSS_NAME]: retry monitor_jboss"
sleep 3

done

return $OCF_SUCCESS
}

stop_jboss()
{

echo "`date "+%Y/%m/%d %T"`: stop ###########################" >> "$JBOSS_CONSOLE"

if [ "$RESOURCE_JBOSS_USER" = RUNASIS ]; then

"$JBOSS_HOME/bin/shutdown.sh" -S \
>> "$JBOSS_CONSOLE" 2>&1 &
eval $jboss_stop_cmd >> "$JBOSS_CONSOLE" 2>&1

else
su - "$RESOURCE_JBOSS_USER" \
-c "export JAVA_HOME=${OCF_RESKEY_java_home};\n

export JBOSS_HOME=${OCF_RESKEY_jboss_home};\n
$JBOSS_HOME/bin/shutdown.sh -S" \
>> "$JBOSS_CONSOLE" 2>&1

fi

lapse_sec=0
while pgrep -f "$JBOSS_PSTRING" > /dev/null; do

sleep 1
lapse_sec=`expr $lapse_sec + 1`

ocf_log debug "stop_jboss[$JBOSS_NAME]: stop NORM $lapse_sec/$JBOSS_STOP_TIMEOUT"
if [ $lapse_sec -ge $JBOSS_STOP_TIMEOUT ]; then

break
fi
done

if pgrep -f "$JBOSS_PSTRING" > /dev/null; then

lapse_sec=0
while true; do
sleep 1

lapse_sec=`expr $lapse_sec + 1`
ocf_log debug "stop_jboss[$JBOSS_NAME]: suspend jboss by SIGTERM ($lapse_sec/$JBOSS_SUSPEND_TRIALCOUNT)"

pkill -TERM -f "$JBOSS_PSTRING"
if pgrep -f "$JBOSS_PSTRING" > /dev/null; then

ocf_log debug "stop_jboss[$JBOSS_NAME]: suspend jboss by SIGQUIT ($lapse_sec/$JBOSS_SUSPEND_TRIALCOUNT)"
pkill -QUIT -f "$JBOSS_PSTRING"
if pgrep -f "$JBOSS_PSTRING" > /dev/null; then

if [ $lapse_sec -ge $JBOSS_SUSPEND_TRIALCOUNT ]; then
break

fi
else
break
fi
else
break

fi
done
fi

lapse_sec=0
while pgrep -f "$JBOSS_PSTRING" > /dev/null; do

sleep 1
lapse_sec=`expr $lapse_sec + 1`

ocf_log debug "stop_jboss[$JBOSS_NAME]: suspend jboss by SIGKILL ($lapse_sec/@@@)"
pkill -KILL -f "$JBOSS_PSTRING"
done

return $OCF_SUCCESS
}

status_jboss()
{
return $OCF_SUCCESS

}


metadata_jboss()
{
cat <<END
<?xml version="1.0"?>

<!DOCTYPE resource-agent SYSTEM "ra-api-1.dtd">
<resource-agent name="jboss">
<version>1.0</version>

<longdesc lang="en">
Resource script for Jboss. It manages a Jboss instance as an HA resource.
</longdesc>

<shortdesc lang="en">jboss resource agent</shortdesc>

<parameters>

<parameter name="jboss_name" unique="1" required="0">

<longdesc lang="en">
The name of the resource
</longdesc>
<shortdesc>The name of the resource</shortdesc>
<content type="string" default="${OCF_RESKEY_jboss_name}" />

</parameter>

<parameter name="script_log" unique="1" required="0">
<longdesc lang="en">
A destination of the log of this script

</longdesc>
<shortdesc>A destination of the log of this script</shortdesc>
<content type="string" default="${OCF_RESKEY_script_log}" />
</parameter>

<parameter name="jboss_stop_timeout" unique="0" required="0">
<longdesc lang="en">
Time-out at the time of the stop
</longdesc>

<shortdesc>Time-out at the time of the stop</shortdesc>
<content type="integer" default="${OCF_RESKEY_jboss_stop_timeout}" />
</parameter>

<parameter name="jboss_suspend_trialcount" unique="0" required="0">
<longdesc lang="en">
The re-try number of times awaiting a stop
</longdesc>
<shortdesc>The re-try number of times awaiting a stop</shortdesc>

<content type="integer" default="${OCF_RESKEY_jboss_suspend_trialcount}" />
</parameter>

<parameter name="jboss_user" unique="0" required="0">

<longdesc lang="en">
A user name to start a resource
</longdesc>
<shortdesc>A user name to start a resource</shortdesc>
<content type="string" default="" />

</parameter>

<parameter name="statusurl" unique="0" required="0">
<longdesc lang="en">
URL for state confirmation

</longdesc>
<shortdesc>URL for state confirmation</shortdesc>
<content type="string" default="${OCF_RESKEY_statusurl}" />
</parameter>

<parameter name="java_home" unique="1" required="1">
<longdesc lang="en">
Home directory of the Java
</longdesc>

<shortdesc>Home directory of the Java</shortdesc>
<content type="string" default="" />
</parameter>

<parameter name="jboss_home" unique="1" required="1">

<longdesc lang="en">
Home directory of Jboss
</longdesc>
<shortdesc>Home directory of Jboss</shortdesc>
<content type="string" default="" />

</parameter>

<parameter name="jboss_pstring" unique="0" required="0">
<longdesc lang="en">
With this string heartbeat matches for the right process to kill.

</longdesc>
<shortdesc>pkill/pgrep search string</shortdesc>
<content type="string" default="${OCF_RESKEY_jboss_pstring}" />
</parameter>

<parameter name="jboss_sh" unique="0" required="0">
<longdesc lang="en">
Start options to start Jboss with, defaults are from the Jboss-Doku.
</longdesc>

<shortdesc>options for jboss run.sh</shortdesc>
<content type="string" default="${OCF_RESKEY_jboss_sh}" />
</parameter>

</parameters>

<actions>
<action name="start" timeout="60s" />
<action name="stop" timeout="120s" />

<action name="status" timeout="60" />
<action name="monitor" depth="0" timeout="30s" interval="10s" start-delay="10s" />

<action name="meta-data" timeout="5s" />
<action name="validate-all" timeout="5"/>
</actions>

</resource-agent>
END
return $OCF_SUCCESS
}

validate_all_jboss()
{

ocf_log info "validate_all_jboss[$JBOSS_NAME]"
return $OCF_SUCCESS
}

JBOSS_NAME="${OCF_RESKEY_jboss_name-jboss}"

JBOSS_CONSOLE="${OCF_RESKEY_script_log-/var/log/${JBOSS_NAME}.log}"
JBOSS_STOP_TIMEOUT="${OCF_RESKEY_jboss_stop_timeout-5}"

JBOSS_SUSPEND_TRIALCOUNT="${OCF_RESKEY_jboss_suspend_trialcount-10}"
RESOURCE_JBOSS_USER="${OCF_RESKEY_jboss_user-RUNASIS}"
RESOURCE_STATUSURL="${OCF_RESKEY_statusurl-http://127.0.0.1:8080}"

JBOSS_PSTRING="${OCF_RESKEY_jboss_pstring-java -Dprogram.name=run.sh}"
JBOSS_SH="${OCF_RESKEY_jboss_sh--c default -l lpg4j}"

JAVA_HOME="${OCF_RESKEY_java_home}"
JBOSS_HOME="${OCF_RESKEY_jboss_home}"

export JAVA_HOME JBOSS_HOME

JAVA=${JAVA_HOME}/bin/java

COMMAND=$1

case "$COMMAND" in

start)
ocf_log debug "[$JBOSS_NAME] Enter jboss start"
start_jboss
func_status=$?
ocf_log debug "[$JBOSS_NAME] Leave jboss start $func_status"

exit $func_status
;;
stop)
ocf_log debug "[$JBOSS_NAME] Enter jboss stop"

stop_jboss
func_status=$?
ocf_log debug "[$JBOSS_NAME] Leave jboss stop $func_status"
exit $func_status

;;
status)
status_jboss
exit $?
;;
monitor)

monitor_jboss
func_status=$?
exit $func_status
;;
meta-data)

metadata_jboss
exit $?
;;
validate-all)
validate_all_jboss
exit $?

;;
*)
usage
;;
esac

VOIPFUTURE Ltd.

VOIPFUTURE ist einer der führenden Anbieter von Next Generation Technology (NGT) für die Analyse und Diagnose der Sprachqualität in VoIP-Netzen. Informieren Sie sich auf unseren Seiten, wie Sie mit NGT von VOIPFUTURE die Qualität von Voice over IP zuverlässig messen und nachhaltig optimieren können.

Das VOIPFUTURE Troubleshooting Tool ermöglicht VoIP- und Netzwerk-Spezialisten eine schnelle und zuverlässige Fehler- Analyse und Diagnose.

Ist die Ursache bekannt, steht einer prompten Problemlösung nichts mehr im Weg.

Einzigartig ist die Effizienz und Genauigkeit, mit denen das Troubleshooting Tool Defizite in der Sprachqualität erkennt und deren Ursachen identifiziert. Das Tool sammelt passiv und permanent Qualitätsdaten anhand des standardisierten RTP (Realtime Transport Protocol) im VoIP-Netzwerk.


Voice over IP hat die Telefonie revolutioniert. Für die Qualitätsbeurteilung von VoIP-Netzen haben deshalb die Maßstäbe der leitungsvermittelten Telefonie nur noch bedingt Gültigkeit.

Um die hohe Sprach- und Servicequalität der traditionellen Technik auch in der VoIP-Welt sicher zu stellen, ist ein permanentes Monitoring unabdinglich. Und genau das leistet das VOIPFUTURE SLA Monitoring.


Thunderbird und Google Email Setup

Ich hatte schon früher davon berichtet wie man Thunderbird so einrichtet damit man damit Emails über Google senden kann. Vergesst was ich geschrieben das geht jetzt viel einfacher:

Gmail IMAP Account Setup

Wenn das Addon installiert ist, und man den Dialog zum erstellen eines neuen Kontos öffnet, kann man dort gleich als Kontotyp Google oder GoogleApps auswählen.

Thetford Serviceklappe umrüsten auf Druckknöpfe

 Ich wollte an meinem LMC Style 530 E aus 2021 die Serviceklappe auf der linken Seite nachrüsten. Als wir den Wohnwagen bestellt haben, konn...