<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Dönemeier.de</title>
	
	<link>http://doenemeier.de</link>
	<description>Von Cobra_Fast</description>
	<lastBuildDate>Tue, 11 Oct 2011 20:01:54 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/cobra_fast" /><feedburner:info uri="cobra_fast" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license><item>
		<title>Ein paar Tipps zur Apache2 konfiguration</title>
		<link>http://feedproxy.google.com/~r/cobra_fast/~3/DldIMD8b6Ws/10-ein-paar-tipps-zur-apache2-konfiguration.html</link>
		<comments>http://doenemeier.de/2011/10-ein-paar-tipps-zur-apache2-konfiguration.html#comments</comments>
		<pubDate>Tue, 04 Oct 2011 16:55:42 +0000</pubDate>
		<dc:creator>Cobra_Fast</dc:creator>
				<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://doenemeier.de/?p=294</guid>
		<description><![CDATA[Apache wird nachgesagt ein eher behäbiger und vorallem speicherfressender Webserver zu sein. Das mag bei schlechter Konfiguration auch stimmen.
Ich selber betreibe Apache auf allen Webservern unter meiner Fuchtel und habe noch nie besondere Performanceprobleme bemerkt (ausser natürlich bei aufwendigen MySQL-Abfragen via PHP, aber das ist eine ganz andere Geschichte).
Zunächst sollte man sich über die Hardware, [...]]]></description>
			<content:encoded><![CDATA[<p>Apache wird nachgesagt ein eher behäbiger und vorallem speicherfressender Webserver zu sein. Das mag bei schlechter Konfiguration auch stimmen.</p>
<p>Ich selber betreibe Apache auf allen Webservern unter meiner Fuchtel und habe noch nie besondere Performanceprobleme bemerkt (ausser natürlich bei aufwendigen MySQL-Abfragen via PHP, aber das ist eine ganz andere Geschichte).</p>
<p>Zunächst sollte man sich über die Hardware, welche einem zur verfügung steht im Klaren sein. Das ist vor allem bei V-Servern nicht immer einfach, hier sollte man so kalkulieren, dass einem ein Drittel der Host-CPU-Kerne zur verfügung stehen.</p>
<p>Auf den meisten Apache2-Servern wird MPM-Prefork laufen, da die meisten Webserver mit allerlei Scriptsprachen (vor allem PHP) ausgestattet sind. Apache benutzt Forking (oder Threading) um mehrere Surfer gleichzeitig mit Internetseiten bedienen zu können, alle Anfragen die nicht sofort von einem &#8220;Worker&#8221; abgearbeiten werden können werden in eine Warteschlange gesteckt und bald möglichst bedient.</p>
<p>Folgendes ist ein Beispiel aus einem 12-Kern-System, die einzelnen Werte erkläre ich dann sofort.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;IfModule</span> mpm_prefork_module<span style="color: #000000; font-weight: bold;">&gt;</span></span>
    StartServers         12
    MinSpareServers      12
    MaxSpareServers      12
    MaxClients           24
    MaxRequestsPerChild  50
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/IfModule<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p><strong>StartServers</strong> sagt Apache wie viele Prozesse nach starten des Servers sofort verfügbar sein sollen.</p>
<p><strong>MinSpareServers</strong> sagt Apache wie viele Prozesse mindestens immer zur freien verfügung stehen sollen.</p>
<p><strong>MaxSpareServers</strong> sagt Apache wie viele Prozesse er höchstens im vorraus starten darf.</p>
<p><strong>MaxClients</strong> sagt Apache wie viele Prozesse er höchstens insgesamt starten (MixSpareServers startet bei erreichen des Wertes auch keine neuen Prozesse mehr) darf.</p>
<p><strong>MaxRequestsPerChild</strong> sagt Apache nach wievielen bedienten Anfragen ein Prozess beendet oder neu gestartet werden soll (je nach bedarf). Das schützt vorallem vor extremen Speicheranhäufungen der Apache-Prozesse.</p>
<p>Generell empfiehlt es sich im leerlauf für jeden CPU-Kern einen Prozess zu haben, so können im Beispiel schonmal 12 Surfer gleichzeitig bedient werden. Maximal darf Apache 24, also theoretisch zwei Prozesse für pro Kern starten, was auch Problemfrei funktioniert, da die wenigsten Anfragen wirklich Leistung benötigen. Bei einer 2 GHz-CPU kann man auf einem durchschnittlichen Webserver auf welchem PHP-Anwendungen laufen getrost bis zu fünf Prozesse pro Kern als Maximalwert angeben.</p>
<p>Bei HyperThreading CPUs muss man ein bisschen experimentieren und von den ganzen tollen HT-Kernen die man so hat in der Konfiguration ggf. einen oder zwei abziehen. Da habe ich leider keine Erfahrung.</p>
<p>Als letzten Tipp: Wenn Apache anfängt die Warteschlange zu benutzen steht das meistens auch im globalen Log von Apache. Wenn man einen solchen Eintrag findet nicht gleich in Panik geraten, sondern das System mal eine Runde beobachten. Sollte es sich wirklich um Prozessmangel handeln, addiert man die Kernzahl auf den MaxClients wert drauf und läd Apache neu.</p>
<p>Hoffe das gibt einigen eine Idee, eigene Erfahrungen dürfen sehr gerne in Kommentaren geteilt werden!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/_AfH60QDU8linXV1cvhvW1VIUq4/0/da"><img src="http://feedads.g.doubleclick.net/~a/_AfH60QDU8linXV1cvhvW1VIUq4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/_AfH60QDU8linXV1cvhvW1VIUq4/1/da"><img src="http://feedads.g.doubleclick.net/~a/_AfH60QDU8linXV1cvhvW1VIUq4/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://doenemeier.de/2011/10-ein-paar-tipps-zur-apache2-konfiguration.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://doenemeier.de/2011/10-ein-paar-tipps-zur-apache2-konfiguration.html</feedburner:origLink></item>
		<item>
		<title>Minecraft-Server mit Screen steuern</title>
		<link>http://feedproxy.google.com/~r/cobra_fast/~3/TqjYef54H4A/10-minecraft-server-mit-screen-steuern.html</link>
		<comments>http://doenemeier.de/2011/10-minecraft-server-mit-screen-steuern.html#comments</comments>
		<pubDate>Sat, 01 Oct 2011 15:38:13 +0000</pubDate>
		<dc:creator>Cobra_Fast</dc:creator>
				<category><![CDATA[Server]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://doenemeier.de/?p=292</guid>
		<description><![CDATA[Das man Minecraft-Server via

screen -dmS meinserver java -jar minecraft-server.jar -Xmx1G

in den Hintergrund starten lassen, man dann via

screen -r meinserver

wieder in die Minecraft-Konsole gelangt und zuletzt mit dem Tastenkürzel Ctrl+A, D die Minecraft-Konsole wieder verlässt sollte ein alter Hut sein.
Ich möchte hier vorstellen, wie man einfache Befehle (zB für Backups) auch ausführen kann ohne in die [...]]]></description>
			<content:encoded><![CDATA[<p>Das man Minecraft-Server via</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">screen</span> <span style="color: #660033;">-dmS</span> meinserver java <span style="color: #660033;">-jar</span> minecraft-server.jar <span style="color: #660033;">-Xmx1G</span></pre></div></div>

<p>in den Hintergrund starten lassen, man dann via</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">screen</span> <span style="color: #660033;">-r</span> meinserver</pre></div></div>

<p>wieder in die Minecraft-Konsole gelangt und zuletzt mit dem Tastenkürzel <i>Ctrl+A, D</i> die Minecraft-Konsole wieder verlässt sollte ein alter Hut sein.</p>
<p>Ich möchte hier vorstellen, wie man einfache Befehle (zB für Backups) auch ausführen kann ohne in die Mc-Konsole wechseln zu müssen. Diese Variante funktioniert mit allen gängigen Minecraft-Servern, wie z.B. Bukkit.</p>
<p>Im laufe des Artikels wird ein Bash-Steuerscript erstellt, welches dazu dient Befehle direkt ausführen zu können und dann ein simples Backups-Script erstellt welches das Steuerscript nutzt.</p>
<p>Fangen wir also an, zunächst schreiben wir uns das Grundgerüst des Steuerscriptes:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># der Dateiname der Server-Jar, darf auch ein absoluter Pfad sein</span>
<span style="color: #007800;">SERVER_NAME</span>=<span style="color: #ff0000;">&quot;minecraft_server.jar&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># der Name der Screen-Session die Erstellt und verwaltet wird</span>
<span style="color: #007800;">SCREEN_NAME</span>=<span style="color: #ff0000;">&quot;meinserver&quot;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$#</span> <span style="color: #660033;">-gt</span> <span style="color: #000000;">0</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
    <span style="color: #000000; font-weight: bold;">case</span> <span style="color: #007800;">$1</span> <span style="color: #000000; font-weight: bold;">in</span>
    <span style="color: #ff0000;">&quot;start&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
        <span style="color: #000000; font-weight: bold;">;;</span>
    <span style="color: #ff0000;">&quot;stop&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
        <span style="color: #000000; font-weight: bold;">;;</span>
    <span style="color: #ff0000;">&quot;restart&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
        <span style="color: #000000; font-weight: bold;">;;</span>
    <span style="color: #ff0000;">&quot;save-off&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
        <span style="color: #000000; font-weight: bold;">;;</span>
    <span style="color: #ff0000;">&quot;save-on&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
        <span style="color: #000000; font-weight: bold;">;;</span>
    <span style="color: #ff0000;">&quot;save-all&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
        <span style="color: #000000; font-weight: bold;">;;</span>
    <span style="color: #ff0000;">&quot;say&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
        <span style="color: #000000; font-weight: bold;">;;</span>
    <span style="color: #ff0000;">&quot;--help&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
        <span style="color: #000000; font-weight: bold;">;;</span>
    <span style="color: #000000; font-weight: bold;">esac</span>;
<span style="color: #000000; font-weight: bold;">else</span>
    <span style="color: #007800;">$0</span> <span style="color: #660033;">--help</span>;
<span style="color: #000000; font-weight: bold;">fi</span>;</pre></div></div>

<p>Nun kann man schon grob erahnen wo das ganze hin führen wird. Wir werden in der Lage sein, den Server von der normalen Linux-Konsole aus zu stoppen, zu starten, neu zu starten, die Welt zu speichern und etwas als <i>[SERVER]</i> zu sagen. Des weiteren schreiben wir uns auch eine Hilfe, damit wir nicht vergessen wie das Script zu bedienen sein wird.</p>
<p>Zunächst schreiben wir uns eine Helfs-Funktion, welche einen Befehl ausführt:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">mc_cmd<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
       <span style="color: #c20cb9; font-weight: bold;">screen</span> <span style="color: #660033;">-S</span> <span style="color: #007800;">$SCREEN_NAME</span> <span style="color: #660033;">-p</span> <span style="color: #000000;">0</span> <span style="color: #660033;">-X</span> stuff <span style="color: #ff0000;">&quot;<span style="color: #780078;">`printf &quot;$*\r&quot;`</span>&quot;</span>;
<span style="color: #7a0874; font-weight: bold;">&#125;</span></pre></div></div>

<p>Die Bereiche Start, Stop und Restart werden um die folgenden Zeilen ergänzt:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">        <span style="color: #ff0000;">&quot;start&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
                <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-n</span> <span style="color: #ff0000;">&quot;Starting minecraft... &quot;</span>;
                <span style="color: #c20cb9; font-weight: bold;">screen</span> <span style="color: #660033;">-dmS</span> <span style="color: #007800;">$SCREEN_NAME</span> java <span style="color: #660033;">-Xmx1536M</span> <span style="color: #660033;">-Xms64M</span> <span style="color: #660033;">-jar</span> <span style="color: #007800;">$SERVER_NAME</span> <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;OK&quot;</span>;
                <span style="color: #000000; font-weight: bold;">;;</span>
        <span style="color: #ff0000;">&quot;stop&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
                say <span style="color: #ff0000;">&quot;Stoppe in 5 Sekunden.&quot;</span>;
                <span style="color: #c20cb9; font-weight: bold;">sleep</span> <span style="color: #000000;">5</span>;
                <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-n</span> <span style="color: #ff0000;">&quot;Stopping minecraft... &quot;</span>;
                mc_cmd stop <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;OK&quot;</span>;
                <span style="color: #000000; font-weight: bold;">;;</span>
        <span style="color: #ff0000;">&quot;restart&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
                <span style="color: #007800;">$0</span> stop;
                <span style="color: #c20cb9; font-weight: bold;">sleep</span> <span style="color: #000000;">5</span>;
                <span style="color: #007800;">$0</span> start;
                <span style="color: #000000; font-weight: bold;">;;</span></pre></div></div>

<p>Zusätzlich bauen wir noch wrapper für save und say ein:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">        <span style="color: #ff0000;">&quot;save-off&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
                mc_cmd save-off <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;save-oFF.&quot;</span>;
                <span style="color: #000000; font-weight: bold;">;;</span>
        <span style="color: #ff0000;">&quot;save-on&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
                mc_cmd save-on <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;save-oN.&quot;</span>;
                <span style="color: #000000; font-weight: bold;">;;</span>
        <span style="color: #ff0000;">&quot;save-all&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
                mc_cmd save-all <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;save-ALL.&quot;</span>;
                <span style="color: #000000; font-weight: bold;">;;</span>
        <span style="color: #ff0000;">&quot;say&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
                say <span style="color: #007800;">$2</span>;
                <span style="color: #000000; font-weight: bold;">;;</span></pre></div></div>

<p>Zum Schluss die Hilfe:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">        <span style="color: #ff0000;">&quot;--help&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
                <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Usage: ./run.sh &lt;Command&gt; [&lt;Options&gt;]&quot;</span>;
                <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;&quot;</span>;
                <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Available commands are:&quot;</span>;
                <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;  start          Starts the server.&quot;</span>;
                <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;  stop           Stops the server.&quot;</span>;
                <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;  restart        Restarts the server.&quot;</span>;
                <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;  save-off       Turns level saving off.&quot;</span>;
                <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;  save-on        Turns level saving on.&quot;</span>;
                <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;  save-all       Saves the level.&quot;</span>;
                <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;  say &lt;msg&gt;      Prints &lt;msg&gt; to the game chat.&quot;</span>;
                <span style="color: #000000; font-weight: bold;">;;</span></pre></div></div>

<p>Nun das Backup-Script, welche den Ordner &#8220;world&#8221; in einen Tarball mit Timestamp packt. Das Script von oben wird unter <i>./run.sh</i> aufgerufen.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
.<span style="color: #000000; font-weight: bold;">/</span>run.sh say <span style="color: #ff0000;">&quot;[BACKUP] Starte. Speichere Welt...&quot;</span>;
.<span style="color: #000000; font-weight: bold;">/</span>run.sh save-off;
.<span style="color: #000000; font-weight: bold;">/</span>run.sh save-all;
<span style="color: #c20cb9; font-weight: bold;">cp</span> <span style="color: #660033;">-R</span> world bak_tmp <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> .<span style="color: #000000; font-weight: bold;">/</span>run.sh say <span style="color: #ff0000;">&quot;[BACKUP] Gespeichert, komprimiere ...&quot;</span>;
.<span style="color: #000000; font-weight: bold;">/</span>run.sh save-on;
<span style="color: #c20cb9; font-weight: bold;">nice</span> <span style="color: #660033;">-n</span> +<span style="color: #000000;">5</span> <span style="color: #c20cb9; font-weight: bold;">tar</span> <span style="color: #660033;">-cf</span> - bak_tmp <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">nice</span> <span style="color: #660033;">-n</span> +<span style="color: #000000;">5</span> <span style="color: #c20cb9; font-weight: bold;">gzip</span> <span style="color: #660033;">-9</span> - <span style="color: #000000; font-weight: bold;">&gt;</span> world-$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">date</span> <span style="color: #ff0000;">&quot;+%d-%m-%Y_%H-%M&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>.tar.gz;
<span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-R</span> bak_tmp;
.<span style="color: #000000; font-weight: bold;">/</span>run.sh say <span style="color: #ff0000;">&quot;[BACKUP] Alles Fertig.&quot;</span>;</pre></div></div>

<p>Nicht vergessen, beiden Scripten ausführungsrechte zu geben (via <i>chmod u+x scriptname.sh</i>). Dann Spaß beim Minecraft-Fernsteuern haben!</p>
<p>Wer rausfindet, wie man prüft ob eine Screen-Sitzung noch läuft darf das gerne in die Kommentare schreiben!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/mbrFuflOjBwg7jWZtEFKWJH6JgY/0/da"><img src="http://feedads.g.doubleclick.net/~a/mbrFuflOjBwg7jWZtEFKWJH6JgY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/mbrFuflOjBwg7jWZtEFKWJH6JgY/1/da"><img src="http://feedads.g.doubleclick.net/~a/mbrFuflOjBwg7jWZtEFKWJH6JgY/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://doenemeier.de/2011/10-minecraft-server-mit-screen-steuern.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://doenemeier.de/2011/10-minecraft-server-mit-screen-steuern.html</feedburner:origLink></item>
		<item>
		<title>Lese-/Schreib-Cache beim Dell PERC H200 aktivieren</title>
		<link>http://feedproxy.google.com/~r/cobra_fast/~3/mpjMJx5tEtk/10-lese-schreib-cache-beim-dell-perc-h200-aktivieren.html</link>
		<comments>http://doenemeier.de/2011/10-lese-schreib-cache-beim-dell-perc-h200-aktivieren.html#comments</comments>
		<pubDate>Sat, 01 Oct 2011 14:46:52 +0000</pubDate>
		<dc:creator>Cobra_Fast</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://doenemeier.de/?p=291</guid>
		<description><![CDATA[Die in Dell-Servern standardmäßig verbauten PERC RAID-Controller bieten umfangreiche Konfigurations- und RAID-Möglichkeiten. Bei den Standardeinstellungen von neuen RAID-Verbunden wurde allerdings die Failsafe-Variante gewählt, was nicht nur unperformant ist sondern auch arge Probleme auf Servern mit hoher Festplattenaktivität mit sich ziehen kann.
Der Controller bietet die Möglichkeit einen Lese- sowie Schreib-Cache zu aktivieren. Der Lesecache ist standardmäßig [...]]]></description>
			<content:encoded><![CDATA[<p>Die in Dell-Servern standardmäßig verbauten PERC RAID-Controller bieten umfangreiche Konfigurations- und RAID-Möglichkeiten. Bei den Standardeinstellungen von neuen RAID-Verbunden wurde allerdings die Failsafe-Variante gewählt, was nicht nur unperformant ist sondern auch arge Probleme auf Servern mit hoher Festplattenaktivität mit sich ziehen kann.</p>
<p>Der Controller bietet die Möglichkeit einen Lese- sowie Schreib-Cache zu aktivieren. Der Lesecache ist standardmäßig aktiviert, jedoch nicht der Schreibcache, was dazu führt, dass Schreibzugriffe das System verlangsamen oder sogar aufhalten. Beim Versuch den Schreibcache im BIOS zu aktivieren, versucht eine Warnmeldung vor möglichem Dateiverlust einem dies wieder aus zu reden. Ganz unrecht hat die Warnmeldung nicht, in abartig seltenen Fällen (z.B. bei einem Stromausfall) gehen Daten, welche sich noch im Schreibcache befanden, verloren (da die Daten ja noch im Cache und nicht auf der Festplatte waren). Da das aber ein gut kalkulierbares Risiko ist (zumindest in europäischen Rechenzentren) und man sowieso ständig Backups auf andere Server zieht, kann man den Cache getrost aktivieren.</p>
<p>Wer schon eine bestehende RAID-Konfiguration hat und nicht ins BIOS-Menü möchte, kann den Cache auch nachträglich via OpenManage aktivieren. Der Befehl über das Kommandozeilentool lautet:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">omconfig storage vdisk <span style="color: #007800;">action</span>=changepolicy <span style="color: #007800;">controller</span>=<span style="color: #000000;">0</span> <span style="color: #007800;">vdisk</span>=<span style="color: #000000;">0</span> <span style="color: #007800;">diskcachepolicy</span>=enabled
<span style="color: #666666; font-style: italic;"># die nummern für controller= und vdisk= entsprechend anpassen</span>
<span style="color: #666666; font-style: italic;"># der befehl setzt alle policy-optionen auf caching (lesen und schreiben)</span></pre></div></div>

<p>Weitere Informationen finden sich im OpenManage Manual unter <a href="http://support.dell.com/support/edocs/software/svradmin/1.9/en/stormgmt/cli.html#1093196" class="external">http://support.dell.com/support/edocs/software/svradmin/1.9/en/stormgmt/cli.html#1093196</a></p>
<p>Viel Erfolg, und wie immer eigene Erfahrungen und Infos in die Kommentare!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/prALw26g4pklKcY1icBk4gZ1GCY/0/da"><img src="http://feedads.g.doubleclick.net/~a/prALw26g4pklKcY1icBk4gZ1GCY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/prALw26g4pklKcY1icBk4gZ1GCY/1/da"><img src="http://feedads.g.doubleclick.net/~a/prALw26g4pklKcY1icBk4gZ1GCY/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://doenemeier.de/2011/10-lese-schreib-cache-beim-dell-perc-h200-aktivieren.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://doenemeier.de/2011/10-lese-schreib-cache-beim-dell-perc-h200-aktivieren.html</feedburner:origLink></item>
		<item>
		<title>Wie man eigene Dijits/Dojo Widgets schreibt (HowTo)</title>
		<link>http://feedproxy.google.com/~r/cobra_fast/~3/gtDvBCDEznQ/10-wie-man-eigene-dijits-dojo-widgets-schreibt-howto.html</link>
		<comments>http://doenemeier.de/2011/10-wie-man-eigene-dijits-dojo-widgets-schreibt-howto.html#comments</comments>
		<pubDate>Sat, 01 Oct 2011 14:12:42 +0000</pubDate>
		<dc:creator>Cobra_Fast</dc:creator>
				<category><![CDATA[Coding]]></category>

		<guid isPermaLink="false">http://doenemeier.de/?p=289</guid>
		<description><![CDATA[Dojo erfreut sich immer größerer Beliebtheit, so auch die Dijits aus der Dojo-Dijit-Bilbiothek. Nun ist man nicht auf die vor gefertigten Dijits beschränkt, sondern kann auch eigene erstellen. Dazu benötigt man HTML und JavaScript-Erfahrungen.
So, nicht viel geschwafel, sondern direkt los legen. Zuerst importiert man die Basisklassen:

dojo.require&#40;&#34;dijit._Widget&#34;&#41;;
dojo.require&#40;&#34;dijit._Templated&#34;&#41;;

dijit._Widget ist die Basisklasse für Dijits generell und dijit._Templated ist [...]]]></description>
			<content:encoded><![CDATA[<p>Dojo erfreut sich immer größerer Beliebtheit, so auch die Dijits aus der Dojo-Dijit-Bilbiothek. Nun ist man nicht auf die vor gefertigten Dijits beschränkt, sondern kann auch eigene erstellen. Dazu benötigt man HTML und JavaScript-Erfahrungen.</p>
<p>So, nicht viel geschwafel, sondern direkt los legen. Zuerst importiert man die Basisklassen:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">dojo.<span style="color: #660066;">require</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;dijit._Widget&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
dojo.<span style="color: #660066;">require</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;dijit._Templated&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><i>dijit._Widget</i> ist die Basisklasse für Dijits generell und <i>dijit._Templated</i> ist ein sehr nützlicher Dijit-Zusatz zur Markup-Verwaltung.</p>
<p>Danach erstellt man seine Klasse mittels <em>dojo.declare</em>, wobei wir uns der zuvor geladenen &#8220;Mix-Ins&#8221; bedienen. In die hinteren geschweiften Klammern kommt gleich unser eigentlicher Code.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">dojo.<span style="color: #660066;">declare</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;my.widget&quot;</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#91;</span> dijit._Widget<span style="color: #339933;">,</span> dijit._Templated <span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>In dem Beispiel hier werden wir einfach &#8220;Hallo Welt&#8221; ausgeben, um zu verstehen wie Dijits aufgebaut sind. Dazu schreiben wir uns erst ein bisschen Markup (HTML) in die Code-Klammern:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #009900;">&#123;</span>
    templateString<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;&lt;div data-dojo-attach-point='ausgabeDiv'&gt;&lt;/div&gt;&quot;</span><span style="color: #339933;">,</span>
    postCreate<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Die Namen, die man Elementen via <i>data-dojo-attach-point</i> gibt, lassen sich nach <i>postCreate</i> als Eigenschaften in <i>this</i> verwenden. <i>postCreate</i> ist also so zu sagen der Konstruktor.</p>
<p>Dennoch schreiben wir uns erst eine Funktion, welche &#8220;Hallo Welt&#8221; in unser Div schreiben soll:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">    schreibHalloWelt<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">ausgabeDiv</span>.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;Hallo Welt!&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span></pre></div></div>

<p>Dann rufen wir das ganze im <i>postCreate</i> einfach auf:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">schreibHalloWelt</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Sodass der gesamte Code am Ende so aussieht:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">dojo.<span style="color: #660066;">require</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;dijit._Widget&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
dojo.<span style="color: #660066;">require</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;dijit._Templated&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
dojo.<span style="color: #660066;">declare</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;my.widget&quot;</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#91;</span> dijit._Widget<span style="color: #339933;">,</span> dijit._Templated <span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span>
    templateString<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;&lt;div data-dojo-attach-point='ausgabeDiv'&gt;&lt;/div&gt;&quot;</span><span style="color: #339933;">,</span>
&nbsp;
    postCreate<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> 
    <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">schreibHalloWelt</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
&nbsp;
    schreibHalloWelt<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">ausgabeDiv</span>.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;Hallo Welt!&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Ein solches Dijit erstellt man später ganz normal durch den Namen, den man Ihm gegeben hat, in HTML z.B. so:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;div</span> <span style="color: #000066;">data-dojo-type</span>=<span style="color: #ff0000;">&quot;my.widget&quot;</span> <span style="color: #000066;">data-dojo-props</span>=<span style="color: #ff0000;">&quot;&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/div<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Über die <i>data-dojo-props</i> lassen sich Eigenschaften der Klasse ändern, da in diesem Beispiel aber keine Eigenschaften vorhanden sind, klappt das hier auch nicht.</p>
<p>Viel Erfolg, und eigene Erfahrungen und Infos gerne in den Kommentaren schreiben!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/e1vfcCry1GINlamIu05LxUbKWCU/0/da"><img src="http://feedads.g.doubleclick.net/~a/e1vfcCry1GINlamIu05LxUbKWCU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/e1vfcCry1GINlamIu05LxUbKWCU/1/da"><img src="http://feedads.g.doubleclick.net/~a/e1vfcCry1GINlamIu05LxUbKWCU/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://doenemeier.de/2011/10-wie-man-eigene-dijits-dojo-widgets-schreibt-howto.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://doenemeier.de/2011/10-wie-man-eigene-dijits-dojo-widgets-schreibt-howto.html</feedburner:origLink></item>
		<item>
		<title>Dell iDRAC6 Express mit Linux (Debian)</title>
		<link>http://feedproxy.google.com/~r/cobra_fast/~3/l27RWYwiNwk/09-dell-idrac6-express-mit-linux-debian.html</link>
		<comments>http://doenemeier.de/2011/09-dell-idrac6-express-mit-linux-debian.html#comments</comments>
		<pubDate>Thu, 22 Sep 2011 18:16:53 +0000</pubDate>
		<dc:creator>Cobra_Fast</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://doenemeier.de/?p=284</guid>
		<description><![CDATA[Mit Dell-Servern wird i.d.R. immer zumindest der so genannte iDRAC Express (integrated Dell Remote Access Controller), zuletzt in der Version 6, mit ausgeliefert. Dieses System erlaubt dem Administrator den Server von zu Hause, oder einem anderen Server aus, herunter zu fahren, zu starten und zu resetten (Die Enterprise-Version hat noch ein paar mehr Features, dieser [...]]]></description>
			<content:encoded><![CDATA[<p>Mit Dell-Servern wird i.d.R. immer zumindest der so genannte iDRAC Express (integrated Dell Remote Access Controller), zuletzt in der Version 6, mit ausgeliefert. Dieses System erlaubt dem Administrator den Server von zu Hause, oder einem anderen Server aus, herunter zu fahren, zu starten und zu resetten (Die Enterprise-Version hat noch ein paar mehr Features, dieser Artikel behandelt aber die Express-Variante). Bei der Einrichtung gibt es allerdings einige Fallen in die man leicht stolpern kann. Ich versuche hier kein Schritt-für-Schritt Tutorial an zu bieten, sondern viel mehr Informationen die dem Manual fehlen.</p>
<p><strong>Falle 1</strong></p>
<p>Der iDRAC soll auf einem anderen Netzwerkport (hier ist die physische Buchse gemeint) als dem ersten betrieben werden.</p>
<p>Das ist nicht möglich. Der Controller möchte unbedingt, sofern angeschlossen, das erste Interface verwenden. Dies ist meist das mit der niedrigsten Nummer gekennzeichnete on-board Interface.</p>
<p>Mein Tipp: iDRAC von vorn herein einplanen und den ersten Port frei lassen, sofern iDRAC irgendwann mal verwendet werden soll.</p>
<p><strong>Falle 2</strong></p>
<p>Der iDRAC soll auf der selben IP wie der Server selbst (oder andere Anwendungen des Servers) erreichbar sein.</p>
<p>Das geht grundsätzlich, allerdings mit einigen drastischen Einschränkungen. Der vom iDRAC6 Express belegte Netzwerkport kann auch bei aktiviertem (korrekt Konfiguriertem) iDRAC noch vom Betriebssystem aus verwendet werden, allerdings klaut sich der Remote Controller die Ports 22, 80 und 443. Also nicht erschrecken, wenn auf der einzigen öffentlichen IP auf einmal der iDRAC anstatt der Webserver dran geht. Nicht mehr lustig wird das ganze allerdings dann, wenn man sich aus SSH (Port 22) aussperrt und man ins Rechenzentrum fahren darf um die iDRAC-Konfiguration zu ändern.</p>
<p>Mein Tipp: Wenn man einen weiteren Server im selben Rechenzentrum hat, die beiden über Crossover mit ein ander verbinden. Nun kann man das iDRAC vom anderen Server aus via SSH ansprechen. Wenn man keine andere Maschine vor Ort hat und man den iDRAC gerne vom Arbeitsplatz (oder von zu Hause) aus bedienen möchte, bleibt einem wohl oder übel nichts anderes übrig, als eine zweite IP und zweite Ethernet-Verbindung zu mieten (was u.U. teuer sein kann).</p>
<p><strong>Falle 3</strong></p>
<p>Man glaubt, die dem iDRAC zugewiesene IP stellt sich automatisch ein.</p>
<p>Das ist nicht der Fall. Die IP, welche iDRAC benutzen soll, muss genau so auch im Betriebssystem eingerichtet werden. Das Betriebssystem ist für die Verwaltung des Interfaces zuständig, iDRAC &#8217;schmarotzt&#8217; lediglich. Achtung: Nachdem das Betriebssystem herunter gefahren wurde, läuft iDRAC auf dem Interface unter der eingestellten IP weiter, man kann den Server also wieder Remote-Booten, wenn man das Interface allerdings im OS mit einer anderen IP versieht funktioniert das ganze nicht mehr!<br />
<script type="text/javascript"><!--
google_ad_client = "ca-pub-7219622331415237";
/* Doene Content 5.3 */
google_ad_slot = "7356113632";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script><br />
<strong>Beispielsetup mit zwei Servern</strong></p>
<p>Wie oben beschrieben, werden beide Server möglichst im gleichen oder nebeneinander stehenden Racks verbaut und via Crossover verbunden. Hierbei ist wichtig, dass der iDRAC-Server auf NIC1 angeschlossen wird. Sollte der andere Server ebenfalls über iDRAC verfügen, sollte das Kabel dort <strong>nicht</strong> auf NIC1 gelegt werden.</p>
<p>Danach gibt man den Servern statische IP-Adressen auf den Ports (z.B. 192.168.1.1 und .2) und wiederholt diese Einstellung im iDRAC.</p>
<p><strong>Beispielsetup mit einem Server</strong></p>
<p>Bei dieser Variante kommt man ums Mieten einer zweiten IP, sowie eines zweiten Ethernet-Ports nicht drum herum.  Man richtet wie bei der Server-Server variante die zweite IP auf NIC1 ein und stellt auch den iDRAC darauf ein. Bonus dieser Variante ist allerdings, dass man nun auch das auf HTTPS laufende Web-Panel des iDRAC nutzen kann.</p>
<p><strong>Tipp</strong></p>
<p>Zum einstellen des iDRAC zur laufzeit (also ohne ins BIOS/POST-Menü zu müssen), empfiehlen sich die von Dell angebotenen <a href="http://linux.dell.com/" target="_blank">OpenManage-Softwarepakete</a> (unter Debian &#8220;srvadmin&#8221;), über welche sowohl über eine Kommandozeilen-Tool als auch eine Weboberfläche diverse Einstellungen und Überwachungen vorgenommen werden können. <em>omreport chassis remoteaccess</em> zeigt auf der Konsole die aktuellen Einstellungen des iDRAC.</p>
<p>Viel Erfolg und wie immer, eigene Erfahrungen bitte in den Kommentaren teilen!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/uDjcyFzuxToxbm3CE6hoSo-MEhA/0/da"><img src="http://feedads.g.doubleclick.net/~a/uDjcyFzuxToxbm3CE6hoSo-MEhA/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/uDjcyFzuxToxbm3CE6hoSo-MEhA/1/da"><img src="http://feedads.g.doubleclick.net/~a/uDjcyFzuxToxbm3CE6hoSo-MEhA/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://doenemeier.de/2011/09-dell-idrac6-express-mit-linux-debian.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://doenemeier.de/2011/09-dell-idrac6-express-mit-linux-debian.html</feedburner:origLink></item>
		<item>
		<title>Klickmaschine</title>
		<link>http://feedproxy.google.com/~r/cobra_fast/~3/rIWWMtttXK0/09-klickmaschine.html</link>
		<comments>http://doenemeier.de/2011/09-klickmaschine.html#comments</comments>
		<pubDate>Tue, 20 Sep 2011 14:55:15 +0000</pubDate>
		<dc:creator>Cobra_Fast</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://doenemeier.de/?p=283</guid>
		<description><![CDATA[Habe mal, ohne dass es benötigt würde, aus Spaß, eine Klickmaschine gebaut.
Diese Klickmaschine ruft jede Minute die angegebene Webseiten-URL auf um mögliche Besucherzähler zu erhöhen. Dabei werden Besucherzähler-Schutzmechanismen jedoch nicht umgangen.
Das Programm benötigt das .NET Framework Version 4.
DOWNLOAD Version 0.1
]]></description>
			<content:encoded><![CDATA[<p>Habe mal, ohne dass es benötigt würde, aus Spaß, eine Klickmaschine gebaut.</p>
<p>Diese Klickmaschine ruft jede Minute die angegebene Webseiten-URL auf um mögliche Besucherzähler zu erhöhen. Dabei werden <a href="http://doenemeier.de/2009/09-schlechte-besucherzahler-verbessern.html" target="_self">Besucherzähler-Schutzmechanismen</a> jedoch <strong>nicht</strong> umgangen.</p>
<p>Das Programm benötigt das .NET Framework Version 4.</p>
<p style="text-align: center;"><a href="http://www.wtwrp.de/upload/download.php?id=909" target="_blank"><strong>DOWNLOAD Version 0.1</strong></a></p>

<p><a href="http://feedads.g.doubleclick.net/~a/jDfzhZ4Cm5fwDFLNJk8xKwUzjIc/0/da"><img src="http://feedads.g.doubleclick.net/~a/jDfzhZ4Cm5fwDFLNJk8xKwUzjIc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/jDfzhZ4Cm5fwDFLNJk8xKwUzjIc/1/da"><img src="http://feedads.g.doubleclick.net/~a/jDfzhZ4Cm5fwDFLNJk8xKwUzjIc/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://doenemeier.de/2011/09-klickmaschine.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://doenemeier.de/2011/09-klickmaschine.html</feedburner:origLink></item>
		<item>
		<title>Standardbibliothek für Robot Karol</title>
		<link>http://feedproxy.google.com/~r/cobra_fast/~3/8Uz0q8Dnl-4/09-standardbibliothek-fur-robot-karol.html</link>
		<comments>http://doenemeier.de/2011/09-standardbibliothek-fur-robot-karol.html#comments</comments>
		<pubDate>Mon, 19 Sep 2011 16:16:25 +0000</pubDate>
		<dc:creator>Cobra_Fast</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://doenemeier.de/?p=282</guid>
		<description><![CDATA[Habe heute anlässlich des Einstiegs in Robot Karol im Fach &#8220;Anwendungsentwicklung&#8221; eine kleine aber feine Standardbibliothek mit allerlei nützlichen Anweisungen und Bedingungen geschrieben. Dabei sind zum Beispiel Anweisungen zum Drehen in eine bestimmte Himmelsrichtung, Bedingungen ob man in einer Ecke ist und natürlich Helfer wie &#8220;SchrittBisWand&#8221;.
Eine ausführliche Liste aller Anweisungen und Bedinungen liegt dem Paket [...]]]></description>
			<content:encoded><![CDATA[<p>Habe heute anlässlich des Einstiegs in <a href="http://www.schule.bayern.de/karol/" target="_blank">Robot Karol</a> im Fach &#8220;Anwendungsentwicklung&#8221; eine kleine aber feine Standardbibliothek mit allerlei nützlichen Anweisungen und Bedingungen geschrieben. Dabei sind zum Beispiel Anweisungen zum Drehen in eine bestimmte Himmelsrichtung, Bedingungen ob man in einer Ecke ist und natürlich Helfer wie &#8220;SchrittBisWand&#8221;.</p>
<p>Eine ausführliche Liste aller Anweisungen und Bedinungen liegt dem Paket als &#8220;referenz.txt&#8221; bei.</p>
<p>Viel Spaß beim &#8220;programmieren&#8221; (falls man das bei Karol so nennen kann).</p>
<p style="text-align: center;"><a href="http://www.wtwrp.de/upload/download.php?id=907" target="_blank"><strong>DOWNLOAD Version 0.1</strong></a></p>

<p><a href="http://feedads.g.doubleclick.net/~a/p-sr0sjlRQy_43eoPgJ9xSSPBK8/0/da"><img src="http://feedads.g.doubleclick.net/~a/p-sr0sjlRQy_43eoPgJ9xSSPBK8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/p-sr0sjlRQy_43eoPgJ9xSSPBK8/1/da"><img src="http://feedads.g.doubleclick.net/~a/p-sr0sjlRQy_43eoPgJ9xSSPBK8/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://doenemeier.de/2011/09-standardbibliothek-fur-robot-karol.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://doenemeier.de/2011/09-standardbibliothek-fur-robot-karol.html</feedburner:origLink></item>
		<item>
		<title>Quandary 3.4 für Minecraft 1.8</title>
		<link>http://feedproxy.google.com/~r/cobra_fast/~3/8tGhdV89Iss/09-quandary-3-4-fur-minecraft-1-8.html</link>
		<comments>http://doenemeier.de/2011/09-quandary-3-4-fur-minecraft-1-8.html#comments</comments>
		<pubDate>Sun, 11 Sep 2011 15:28:16 +0000</pubDate>
		<dc:creator>Cobra_Fast</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[Graphics]]></category>

		<guid isPermaLink="false">http://doenemeier.de/?p=281</guid>
		<description><![CDATA[Hier nun auch Quandary 3.4 für 1.8, habe wieder alles neue im Quandary-Stil gebackportet!
Quandary 3.4 with all new items, Minecraft 1.8 ready! (Download link below images)
Das Original Quandary (in der Version 4.2, auch 1.8 ready) gibt es hier, den Download unterm Bild.


» DOWNLOAD «
]]></description>
			<content:encoded><![CDATA[<p>Hier nun auch Quandary 3.4 für 1.8, habe wieder alles neue im Quandary-Stil gebackportet!<br />
Quandary 3.4 with all new items, Minecraft 1.8 ready! (Download link below images)</p>
<p>Das Original Quandary (in der Version 4.2, auch 1.8 ready) gibt es <a href="http://www.retributiongames.com/quandary/" target="_blank">hier</a>, den Download unterm Bild.</p>
<p><a href="http://doenemeier.de/wp-content/uploads/2011/07/quandary_34_cf2_landscape.jpg"><img class="aligncenter size-full wp-image-259" title="quandary_34_cf2_landscape" src="http://doenemeier.de/wp-content/uploads/2011/07/quandary_34_cf2_landscape.jpg" alt="" width="500" height="304" /></a></p>
<p><a href="http://doenemeier.de/wp-content/uploads/2011/07/quandary_34_cf2_landscape.jpg"></a></p>
<p style="text-align: center;">» <a href="http://www.wtwrp.de/upload/download.php?id=903" target="_blank">DOWNLOAD</a> «</p>

<p><a href="http://feedads.g.doubleclick.net/~a/8lkO2OuHyoqXQcaNpJF6ExrPSYs/0/da"><img src="http://feedads.g.doubleclick.net/~a/8lkO2OuHyoqXQcaNpJF6ExrPSYs/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/8lkO2OuHyoqXQcaNpJF6ExrPSYs/1/da"><img src="http://feedads.g.doubleclick.net/~a/8lkO2OuHyoqXQcaNpJF6ExrPSYs/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://doenemeier.de/2011/09-quandary-3-4-fur-minecraft-1-8.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://doenemeier.de/2011/09-quandary-3-4-fur-minecraft-1-8.html</feedburner:origLink></item>
		<item>
		<title>SysCP auf Froxlor upgraden</title>
		<link>http://feedproxy.google.com/~r/cobra_fast/~3/lQ-dfiTTh4g/09-syscp-auf-froxlor-upgraden.html</link>
		<comments>http://doenemeier.de/2011/09-syscp-auf-froxlor-upgraden.html#comments</comments>
		<pubDate>Sat, 03 Sep 2011 16:36:10 +0000</pubDate>
		<dc:creator>Cobra_Fast</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://doenemeier.de/?p=279</guid>
		<description><![CDATA[Habe heute das auf meinem Server eingesetzte SysCP auf den Froxlor-Fork geupgradet.
Dazu entschlossen habe ich mich vorallem wegen der vielen kleinen Verbesserungen die mit Froxlor hinzu kommen, von den großen Neuerungen wie Unterstützung für zusätzliche PHP-Module mache ich keinen Gebrauch.
Nun zum Upgrade sei gesagt, dass die aktuelle Version von Froxlor (0.9.x) vollständig abwärtskompatibel zu den [...]]]></description>
			<content:encoded><![CDATA[<p>Habe heute das auf meinem Server eingesetzte SysCP auf den <a href="http://www.froxlor.org/" target="_blank">Froxlor-Fork</a> geupgradet.</p>
<p>Dazu entschlossen habe ich mich vorallem wegen der vielen kleinen Verbesserungen die mit Froxlor hinzu kommen, von den großen Neuerungen wie Unterstützung für zusätzliche PHP-Module mache ich keinen Gebrauch.</p>
<p>Nun zum Upgrade sei gesagt, dass die aktuelle Version von Froxlor (0.9.x) vollständig abwärtskompatibel zu den letzten SysCP-Versionen ist. Wer also eine aktuelle SysCP-Installation hat, dürfte keine Probleme mit dem Upgrade bekommen. Wer sich unsicher ist, kann mit <em>mysqldump</em> ein backup der SysCP-Datenbank anlegen.</p>
<p>Zuerst wird die aktuelle Froxlor-Version als Tarball heruntergeladen (ein Upgrade wird vom Repository aus wahrscheinlich nicht funktionieren) und in das Verzeichnis in dem SysCP liegt entpackt, sodass man hinterher einen <em>syscp</em>- und einen <em>froxlor</em>-Ordner hat.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www <span style="color: #666666; font-style: italic;"># oder wo auch immer</span>
<span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>files.froxlor.org<span style="color: #000000; font-weight: bold;">/</span>releases<span style="color: #000000; font-weight: bold;">/</span>froxlor-latest.tar.gz
<span style="color: #c20cb9; font-weight: bold;">tar</span> <span style="color: #660033;">-xf</span> froxlor-latest.tar.gz</pre></div></div>

<p>Danach wird die alte Konfigurationsdatei von SysCP nach Froxlor kopiert. Dadurch wird das Froxlor-Setup umgangen und die meisten Einstellungen werden übernommen, um die restlichen kümmern wir uns später. Auch benennen wir den SysCP-Ordner um, und linken auf Froxlor, damit alte Browser-Bookmarks auf das neue System zeigen.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">cp</span> syscp<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>userdata.inc.php froxlor<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>userdata.inc.php
<span style="color: #c20cb9; font-weight: bold;">mv</span> syscp syscp_old
<span style="color: #c20cb9; font-weight: bold;">ln</span> <span style="color: #660033;">-s</span> froxlor syscp</pre></div></div>

<p>Danach besucht man seine neue Installation unter <em>http://SERVER_IP/froxlor/</em> oder eben wie zuvor im Unterordner <em>/syscp/</em>. Froxlor weist einen darauf hin, dass sich ein Administrator einloggen muss um das Upgrade ab zu schließen, also loggt man sich mit einem Administrator-Account ein. Die Upgrade-Konfiguration sollte man sorgfältig lesen und auswählen was man benötigt. Zum Beispiel können beim aktivieren der Domain-Wildcards ungewollte Nebeneffekte auftreten.</p>
<p>Abschließend wird in <em>/etc/cron.d/</em> der SysCP-Cronjob gelöscht oder deaktiviert und der Froxlor-Cronjob, vorzugsweise in der Datei <em>froxlor</em>, wie folgt eingetragen.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">PATH</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>sbin:<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin:<span style="color: #000000; font-weight: bold;">/</span>sbin:<span style="color: #000000; font-weight: bold;">/</span>bin:<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>sbin:<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin
<span style="color: #000000; font-weight: bold;">*/</span><span style="color: #000000;">5</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span>     root    <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>php5 <span style="color: #660033;">-q</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span>froxlor<span style="color: #000000; font-weight: bold;">/</span>scripts<span style="color: #000000; font-weight: bold;">/</span>froxlor_master_cronjob.php</pre></div></div>

<p>Dann noch den CRON-Dienst neustarten, damit die Änderungen auch angenommen werden.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>cron restart <span style="color: #666666; font-style: italic;"># bei SysVInit (sollte immer funktionieren)</span>
service cron restart <span style="color: #666666; font-style: italic;"># bei Upstart (ab Debian Squeeze oder Ubuntu 10)</span></pre></div></div>

<p>Dann ist man auch schon fertig.</p>
<p>Viel Erfolg!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/2L0l6h44BziYTOf8qo5vPVsw-Bk/0/da"><img src="http://feedads.g.doubleclick.net/~a/2L0l6h44BziYTOf8qo5vPVsw-Bk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/2L0l6h44BziYTOf8qo5vPVsw-Bk/1/da"><img src="http://feedads.g.doubleclick.net/~a/2L0l6h44BziYTOf8qo5vPVsw-Bk/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://doenemeier.de/2011/09-syscp-auf-froxlor-upgraden.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://doenemeier.de/2011/09-syscp-auf-froxlor-upgraden.html</feedburner:origLink></item>
		<item>
		<title>htop für Linux-VServer Gäste</title>
		<link>http://feedproxy.google.com/~r/cobra_fast/~3/a-wD6KTvO6s/08-htop-fur-linux-vserver-gaste.html</link>
		<comments>http://doenemeier.de/2011/08-htop-fur-linux-vserver-gaste.html#comments</comments>
		<pubDate>Sat, 27 Aug 2011 15:58:23 +0000</pubDate>
		<dc:creator>Cobra_Fast</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://doenemeier.de/?p=276</guid>
		<description><![CDATA[Da einem htop in einem Linux-VServer Gastsystem die Prozessorauslastung zeigt, welche von allen Benutzern auf dem Wirtssystem generiert wird, habe ich kurzerhand eine eigene Version geschrieben.
In dieser Version gibt es das neue &#8220;Process CPU&#8221;-Meter, welches lediglich die vom Gastsystem produzierte CPU-Durchschnittsauslastung anzeigt. Zeigt das Meter also 100% an, so benützt der eigene VServer die gesamte [...]]]></description>
			<content:encoded><![CDATA[<p>Da einem <a href="http://htop.sf.net/" target="_blank">htop</a> in einem <a href="http://linux-vserver.org/" target="_blank">Linux-VServer</a> Gastsystem die Prozessorauslastung zeigt, welche von allen Benutzern auf dem Wirtssystem generiert wird, habe ich kurzerhand eine eigene Version geschrieben.</p>
<p>In dieser Version gibt es das neue &#8220;Process CPU&#8221;-Meter, welches lediglich die vom Gastsystem produzierte CPU-Durchschnittsauslastung anzeigt. Zeigt das Meter also 100% an, so benützt der eigene VServer die gesamte verfügbare Rechenleistung.</p>
<p><img src="http://share.doenemeier.de/fugue/bonus/icons-24/box-label.png" alt="" align="absmiddle" /> <a href="http://doenemeier.de/wp-content/uploads/2011/08/htop-lvs.tar.gz">htop-lvs.tar.gz</a></p>
<p>Hoster, welche virtuelle Server auf basis von Linux-VServer anbieten, sind z.B. <a href="http://www.netcup.de/vserver/" target="_blank">netcup</a>.</p>
<p>Den Sourcecode gibt&#8217;s unter svn://doenemeier.de/ahtop/branch/htop-lvs/ .</p>
<p>Viel Spaß!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/jDGIWmsDkCZIepdGF04YKq1ML20/0/da"><img src="http://feedads.g.doubleclick.net/~a/jDGIWmsDkCZIepdGF04YKq1ML20/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/jDGIWmsDkCZIepdGF04YKq1ML20/1/da"><img src="http://feedads.g.doubleclick.net/~a/jDGIWmsDkCZIepdGF04YKq1ML20/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://doenemeier.de/2011/08-htop-fur-linux-vserver-gaste.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://doenemeier.de/2011/08-htop-fur-linux-vserver-gaste.html</feedburner:origLink></item>
	</channel>
</rss>

