<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	>

<channel>
	<title>evølutiøn-515.net &#187; Administratives</title>
	<atom:link href="http://blog.evolution515.net/article/category/administer/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.evolution515.net</link>
	<description>Chaos ist nur eine andere Bezeichung für steigende Komplexität.</description>
	<lastBuildDate>Wed, 03 Jun 2009 22:55:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>How to setup HTTPS for your Apache2</title>
		<link>http://blog.evolution515.net/article/how-to-setup-https-for-your-apache2/</link>
		<comments>http://blog.evolution515.net/article/how-to-setup-https-for-your-apache2/#comments</comments>
		<pubDate>Mon, 23 Feb 2009 15:32:56 +0000</pubDate>
		<dc:creator>Blu:RayNe</dc:creator>
				<category><![CDATA[Administratives]]></category>
		<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.evolution515.net/?p=555</guid>
		<description><![CDATA[Basic Information
First off, you need a SSL-Certificate for HTTPS. This certificates are usualy checked by your browser against SSL providers such as VeriSign for validity. If the outcame is invalid, some website may have been replaced with a fake-version by a hacker. The result is, that your browser warns you that the certificate for the [...]]]></description>
			<content:encoded><![CDATA[<h2>Basic Information</h2>
<p>First off, you need a SSL-Certificate for HTTPS. This certificates are usualy checked by your browser against SSL providers such as VeriSign for validity. If the outcame is invalid, some website may have been replaced with a fake-version by a hacker. The result is, that your browser warns you that the certificate for the site is invalid and it probalby was hacked or stuff like this (there was also a bug on creating invalid certificates on Debian-Linux some time ago *G*).</p>
<p>Anyway, you can still add the certificate as exception and get SSL-connection to the website, so no one is seeing what you are actually doing on that site or what data is beeing transferred (e.g. your E-Mail Client).</p>
<h2>Basic Setup</h2>
<p><strong>The easiest way to setup this stuff is as of following (assuming using Debian/Ubuntu and Apache2):</strong></p>
<blockquote><p>$ apt-get install openssl<br />
$ mkdir  -P /etc/apache2/ssl/<br />
$ openssl req $@ -new -x509 -days 365 -nodes -out server.crt -keyout server.key</p></blockquote>
<p><strong>Then add something like this to your Apache2-Configuration:</strong></p>
<blockquote><p>NameVirtualHost 443</p>
<p>&lt;VirtualHost *:443&gt;</p>
<p>SSLEngine on<br />
SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire<br />
SSLCertificateFile /etc/apache2/ssl/server.crt<br />
SSLCertificateKeyFile /etc/apache2/ssl/server.key<br />
# SSLProtocol -all +TLSv1 +<em>SSLv3<br />
</em>SSLProtocol all -SSLv2 <em><br />
</em></p>
<p><em>[...]</em></p>
<p>&lt;/VirtualHost&gt;</p></blockquote>
<p>Basically, that&#8217;s it! Don&#8217;t forget to restart apache and also note that SSL2 is outdated and therefore unsecure. Be aware of that on using MSIE-Browsers from Microsoft! So i just disallowed it here in the example above. It also has opions set for using Basic HTTP-Auth on HTTPS and sets also some SSL-specific apache environmental veriables.</p>
<p>If Apache doesn&#8217;t start up look under /var/log/apache2/ for error messages!</p>
<h2>Extended Setup</h2>
<p>Some snippets if you already have a server key or want need to create your own, for having it signed and so on. If you set a password for a server key – which is indeed required for secuerity reasons – note, that Apache asks for it on startup.</p>
<p><strong>Create a server key</strong></p>
<blockquote><p>openssl genrsa -des3 -out server.key 1024</p></blockquote>
<p><strong>You can convert the secure key to an unsecure („without password“):</strong></p>
<blockquote><p>$ openssl rsa -in server.key -out server.key.insecure</p></blockquote>
<p><strong>Create a basic  certificate for your key by using this:</strong></p>
<blockquote><p>$ openssl req -new -key server.key -out server.csr</p></blockquote>
<p><strong>Then sign it:</strong></p>
<blockquote><p>$ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt</p></blockquote>
<p><strong>Same stuff with insecure key:</strong></p>
<blockquote><p>$ openssl x509 -req -days 365 -in server.csr -signkey server.key.insecure -out server.crt</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.evolution515.net/article/how-to-setup-https-for-your-apache2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>MSIE &#8211; Dante&#8217;s Inferno for Linux (or Web Developers)</title>
		<link>http://blog.evolution515.net/article/msie-dantes-inferno-for-linux-or-web-developers/</link>
		<comments>http://blog.evolution515.net/article/msie-dantes-inferno-for-linux-or-web-developers/#comments</comments>
		<pubDate>Sun, 21 Dec 2008 01:22:13 +0000</pubDate>
		<dc:creator>Blu:RayNe</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[msie]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.evolution515.net/article/msie-dantes-inferno-for-linux-or-web-developers/</guid>
		<description><![CDATA[ies4linux is a nice project that brings MSIE 5.0, 5.5, 6.0 and 7 to Linux under WINE.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.tatanka.com.br/ies4linux/">ies4linux</a> is a nice project that brings MSIE 5.0, 5.5, 6.0 and 7 to Linux under WINE.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.evolution515.net/article/msie-dantes-inferno-for-linux-or-web-developers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>.htaccess zum Schutz gegen BND Terror-Kracken (Teil2)</title>
		<link>http://blog.evolution515.net/article/htaccess-zum-schutz-gegen-bnd-terror-kracken-teil2/</link>
		<comments>http://blog.evolution515.net/article/htaccess-zum-schutz-gegen-bnd-terror-kracken-teil2/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 17:53:13 +0000</pubDate>
		<dc:creator>Blu:RayNe</dc:creator>
				<category><![CDATA[Administratives]]></category>
		<category><![CDATA[Netzwelt]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[bnd]]></category>
		<category><![CDATA[ip-ranges]]></category>

		<guid isPermaLink="false">http://blog.evolution515.net/?p=336</guid>
		<description><![CDATA[Nachdem gestern das BKA-Gesetz durchgewunken wurde, und uns einen Schritt n&#228;her an die Neue Weltordnung Banenrepublik DDR. 2.0 bringt, mal eine positive Nachricht: Soeben sind auf Wikileaks die IP Ranges des BND geleakt!
Endlich kann der B&#252;rger sein virtuelles Hausrecht wieder etwas st&#228;rken. Nach der .htaccess zum BKA Terror-Bot, nun die .htaccess gegen den BND Terror-Kracken. [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem gestern das <a href="http://www.mmnews.de/index.php/200811131497/MM-News/Stasi-2.0.html#comments">BKA-Gesetz</a> durchgewunken wurde, und uns einen Schritt n&#228;her an die Neue Weltordnung <a href="http://www.mmnews.de/index.php/200811131497/MM-News/Stasi-2.0.html#comments">Banenrepublik DDR. 2.0</a> bringt, mal eine positive Nachricht: Soeben sind auf Wikileaks die <a href="https://secure.wikileaks.org/wiki/T-Systems_BND_network_assignments%2C_13_Nov_2008">IP Ranges des BND geleakt</a>!</p>
<p>Endlich kann der B&#252;rger sein virtuelles Hausrecht wieder etwas st&#228;rken. Nach der<a href="http://blog.evolution515.net/article/htaccess-zum-schutz-gegen-bka-terror-bot/"> .htaccess zum BKA Terror-Bot</a>, nun die .htaccess gegen den BND Terror-Kracken. Das hilft nur nix gegen Sch&#228;ubles neue Schn&#252;ffelbeh&#246;rde nach NSA Vorbild, aber seien wir wenigstens froh, dass unsere Bundeskanzlerin keine eigenen ihr unterstellten Geheimdienste á TALON &amp; Co. hat  &#8211; oder doch?.</p>
<p>Alle anderen Stellen sind ja gott-sei-dank von inkompetenten Pack und Internetausdruckern besetzt. Tja, da klappt es dann doch nicht so schnell mit dem Polizeistaat <img src='http://blog.evolution515.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<div class="dean_ch" style="white-space: wrap;"># Deny access from BND Servers<br />
# https://secure.wikileaks.org/wiki/T-Systems_BND_network_assignments%2C_13_Nov_2008</p>
<p>RewriteEngine on<br />
RewriteCond %{HTTP_REFERER} bvoe [NC,OR]<br />
RewriteCond %{HTTP_USER_AGENT} bvoe [NC,OR]<br />
RewriteCond %{REMOTE_HOST} bvoe [NC,OR]<br />
RewriteCond %{HTTP_REFERER} lvp [NC,OR]<br />
RewriteCond %{HTTP_USER_AGENT} lvp [NC,OR]<br />
RewriteCond %{REMOTE_HOST} lvp [NC]<br />
RewriteRule ^.*$ http://www.google.de/search?hl=de&amp;amp;q=fema+death+camps+bush+nazi+fascist [R=301,L]</p>
<p>Order Allow,Deny<br />
Deny from 195.243.248.226/32<br />
Deny from 195.243.248.228/32<br />
Deny from 62.156.187.234/32<br />
Deny from 62.156.187.236/32<br />
Deny from 62.159.60.150/32<br />
Deny from 193.159.228.32/29<br />
Deny from 193.159.238.168/29<br />
Deny from 194.25.184.16/29<br />
Deny from 194.25.42.232/29<br />
Deny from 195.145.128.56/29<br />
Deny from 195.145.163.64/26<br />
Deny from 195.145.182.96/28<br />
Deny from 195.145.182.96/28<br />
Deny from 195.145.31.252/30<br />
Deny from 195.145.57.176/28<br />
Deny from 195.243.157.184/29<br />
Deny from 195.243.248.224/29<br />
Deny from 212.185.184.224/29<br />
Deny from 212.185.191.128/29<br />
Deny from 217.7.155.168/29<br />
Deny from 217.89.74.208/28<br />
Deny from 62.153.59.192/27<br />
Deny from 62.153.65.32/29<br />
Deny from 62.153.80.208/29<br />
Deny from 62.153.87.0/28<br />
Deny from 62.154.211.152/29<br />
Deny from 62.154.226.64/26<br />
Deny from 62.156.187.232/29<br />
Deny from 62.157.136.64/27<br />
Deny from 62.157.144.0/26<br />
Deny from 62.157.193.128/26<br />
Deny from 62.157.193.192/27<br />
Deny from 62.157.194.32/29<br />
Deny from 62.157.194.32/29<br />
Deny from 62.159.19.208/29<br />
Deny from 62.159.104.160/28<br />
Deny from 62.159.209.144/29<br />
Deny from 62.159.209.152/29<br />
Deny from 62.159.21.152/29<br />
Deny from 62.159.60.144/29<br />
Deny from 62.159.63.72/29<br />
Deny from 62.225.139.248/29<br />
Deny from 62.225.74.128/29<br />
Deny from 80.146.198.88/29<br />
Deny from 62.159.104.160/28<br />
Allow from all</div>
<p><strong>How to calculate CIDR:</strong></p>
<div class="dean_ch" style="white-space: wrap;"><span class="co1">#!/usr/bin/perl</span><br />
<span class="kw2">use</span> Net::<span class="me2">CIDR</span>;<br />
<span class="re0">$range</span> = <a href="http://perldoc.perl.org/functions/shift.html"><span class="kw3">shift</span></a>;<br />
<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="br0">&#40;</span><a href="http://perldoc.perl.org/functions/join.html"><span class="kw3">join</span></a><span class="br0">&#40;</span><span class="st0">&quot;n&quot;</span>, Net::<span class="me2">CIDR</span>::<span class="me2">range2cidr</span><span class="br0">&#40;</span><span class="st0">&quot;$range&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> . <span class="st0">&quot;n&quot;</span> <span class="br0">&#41;</span>;</div>
<p><strong>Usage:</strong></p>
<div class="dean_ch" style="white-space: wrap;">$ ./iprange2cidr <span class="nu0">192.168</span><span class="nu0">.0</span><span class="nu0">.0</span><span class="nu0">-192.168</span><span class="nu0">.0</span><span class="nu0">.255</span><br />
<span class="nu0">192.168</span><span class="nu0">.0</span><span class="nu0">.0</span>/<span class="nu0">24</span></div>
<p><strong>Alternativ vll. ma auf diese Seite gucken:</strong><br />
<a href="http://www.ipaddresslocation.org/"> http://www.ipaddresslocation.org/</a></p>
<p><strong>Log-Files nach IPs durchsuchen:</strong></p>
<pre><strong>grep -E ":(`cat bnd-ips.txt | sed 's/\./\\./g' | tr '\n' '|'`)"  access_log_2008-*
</strong></pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.evolution515.net/article/htaccess-zum-schutz-gegen-bnd-terror-kracken-teil2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Ubuntu: Is the intrepid ibex still jumping?</title>
		<link>http://blog.evolution515.net/article/ubuntu-is-the-intrepid-ibex-still-jumping/</link>
		<comments>http://blog.evolution515.net/article/ubuntu-is-the-intrepid-ibex-still-jumping/#comments</comments>
		<pubDate>Fri, 31 Oct 2008 09:11:45 +0000</pubDate>
		<dc:creator>Blu:RayNe</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.evolution515.net/?p=322</guid>
		<description><![CDATA[Or update day: it still jumps over the rocks, but seems it got one foot hurt: keyboard mapping doesn&#8217;t work for me anymore &#8211; the arrow keys are not mapped rightly.
At least Ubuntu is a big distro, so there are already tickets for it: 
https://bugs.launchpad.net/ubuntu/+bug/255861
https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/255008
Damn. I should have waited another week, but i don&#8217;t want [...]]]></description>
			<content:encoded><![CDATA[<p>Or update day: it still jumps over the rocks, but seems it got one foot hurt: keyboard mapping doesn&#8217;t work for me anymore &#8211; the arrow keys are not mapped rightly.</p>
<p><strong>At least Ubuntu is a big distro, so there are already tickets for it: </strong><a href=" https://bugs.launchpad.net/ubuntu/+bug/255861"></p>
<p>https://bugs.launchpad.net/ubuntu/+bug/255861</p>
<p>https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/255008</a></p>
<p>Damn. I should have waited another week, but i don&#8217;t want to go back anymore. At least all other things still seem to work and my Nautilus now has tabs. The update took about 40mins and worked fine. Good job!</p>
<div class="dean_ch" style="white-space: wrap;">setxkbmap -model evdev<br />
setxkbmap -model evdev -layout de -option lv3:ralt_switch</div>
<p>Hmmm.. works&#8230; partly <img src='http://blog.evolution515.net/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>If i just knew that Fedora works now better. I tested out the latest version a month ago and it made up a very stable and fresh impression. Perhaps i&#8217;ll give it another try one day.</p>
<p>Well, i guess i&#8217;ll make up a new version of my <em>xmodmap.rc</em> now :/</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.evolution515.net/article/ubuntu-is-the-intrepid-ibex-still-jumping/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>YouTube and transcoding video with vixy.net</title>
		<link>http://blog.evolution515.net/article/youtube-and-transcoding-video-with-vixynet/</link>
		<comments>http://blog.evolution515.net/article/youtube-and-transcoding-video-with-vixynet/#comments</comments>
		<pubDate>Tue, 12 Aug 2008 10:57:19 +0000</pubDate>
		<dc:creator>Blu:RayNe</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Netzwelt]]></category>
		<category><![CDATA[mpeg4]]></category>
		<category><![CDATA[video converter]]></category>
		<category><![CDATA[video transcoding]]></category>
		<category><![CDATA[vixy]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://blog.evolution515.net/?p=263</guid>
		<description><![CDATA[I hate all those low quality videos from YouTube. You know there is that trick to concenate &#38;fmt=18 to YouTube-URLs to have it access the new servers with higher quality videos and better bandwidth performance, but still that does not makes me happy.
Having FLV is ok for me, although I dislike non-standard container formats. But [...]]]></description>
			<content:encoded><![CDATA[<p>I hate all those low quality videos from YouTube. You know there is that trick to concenate <em>&amp;fmt=18</em> to YouTube-URLs to have it access the new servers with higher quality videos and better bandwidth performance, but still that does not makes me happy.</p>
<p>Having FLV is ok for me, although I dislike non-standard container formats. But the point is copying those FLVs for friends often ends up by them complaining not beeing able to play the files on their Windows or Mac. The same problem persists on the iPod or my mobile phone that just understands 3GP in the moment.</p>
<p>So i end up having to convert the files… or transcoding them.</p>
<h3>Conversion vs. Transcoding</h3>
<p>Converting usally means decoding the video to a full video-picture – probably with or without any post-processing– and loosing the visual information that was artifically added again by encoding. Also, most of the  bitstream-information on the decoded stream is also lost, because you only see a the picture and not what abstract data is behind.</p>
<p>That is the place where transcoding comes into play: It transcodes the data be going deep into the input stream directly translating it the the output stream. The “visual step“ between encoding and deocoding is skipped, because not necessary. In the end we have not only faster conversion process, but have also retained all possible quality. </p>
<p>Ok, if input and output en/decoding algorithms differ too much or you wanna resize the video you still have to convert the videos. Point is that the algorithms used in input and output stream have to be similar to each other (beeing often MPEG4 on nowadays video material).</p>
<p>I discovered <a href="http://www.vixy.net">vixy</a> (which is based on <a href="http://www.ffmpeg.com">ffmpeg</a>) und does a nice job on transcoding. On windows and Mac you have a GUI limited to YouTube. The Online-Converter itself seems to be always overloaded. So, time to compile our FLV 2 MPEG4 Tool ourselves (for Ubuntu/Debian):</p>
<div class="dean_ch" style="white-space: wrap;">$ apt-get <span class="kw2">install</span> apt-get <span class="kw2">install</span> libavcodec-dev libavformat-dev libavutil-dev ffmpeg subversion<br />
$ apt-get build-dep ffmpeg<br />
$ <span class="kw2">mkdir</span> flv2mpeg4<br />
$ <span class="kw3">cd</span> flv2mpeg4<br />
$ svn <span class="kw2">co</span> https://vixynet.svn.sourceforge.net/svnroot/vixynet/trunk/flv2mpeg4/ .<br />
$ <span class="kw3">cd</span> src<br />
$ <span class="kw2">gcc</span> -O3 -o flv2mpeg4 avformat_writer.c dcprediction.c flv2mpeg4.c fetch.c flvdecoder.c m4vencode.c mp3header.c -lavformat -lavcodec -lavutil -I/usr/include/ffmpeg -L/usr/lib<br />
$ <span class="kw2">cp</span> flv2mpeg4 /usr/bin</div>
<p>A last word to YouTube. I don&#8217;t suggest uploading to it in no way!</p>
<ul>
<li>They manipulate view counters on videos with strong political content (e.g. 200 views and 300 comments?)</li>
<li>Everything you upload, belongs to them! Read the terms!</li>
<li>Quality still sucks  (it&#8217;s for the american market; but we have broadband here in germany!)</li>
<li>Servers are often damn slow, espacially at 23:00 CEST+1 when all americans go on the site</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.evolution515.net/article/youtube-and-transcoding-video-with-vixynet/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>„Sehr geehrter Kunde, Ihre Mail ist Spam!“</title>
		<link>http://blog.evolution515.net/article/%e2%80%9esehr-geehrter-kunde-ihre-mail-ist-spam%e2%80%9c/</link>
		<comments>http://blog.evolution515.net/article/%e2%80%9esehr-geehrter-kunde-ihre-mail-ist-spam%e2%80%9c/#comments</comments>
		<pubDate>Wed, 16 Jul 2008 08:41:49 +0000</pubDate>
		<dc:creator>Blu:RayNe</dc:creator>
				<category><![CDATA[Berufsalltag]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[e-mail]]></category>
		<category><![CDATA[spam]]></category>

		<guid isPermaLink="false">http://blog.evolution515.net/?p=223</guid>
		<description><![CDATA[Und das sag ich immer wieder, da es anscheinend noch unz&#228;hlige Leute in der Druck/IT-Branche gibt, die eigentlich hier nichts zu suchen h&#228;tten. Ich erhalte immer noch viel zu Mails ohne Subject und ohne eindeutigen Bodytext, der mir beschreiben w&#252;rde, um was es eigentlich geht. Manchmal fehlt sogar die Ansprache, oder Footer mit Firmenadresse.
Selbst ist [...]]]></description>
			<content:encoded><![CDATA[<p>Und das sag ich immer wieder, da es anscheinend noch unz&#228;hlige Leute in der Druck/IT-Branche gibt, die eigentlich hier nichts zu suchen h&#228;tten. Ich erhalte immer noch viel zu Mails ohne Subject und ohne eindeutigen Bodytext, der mir beschreiben w&#252;rde, um was es eigentlich geht. Manchmal fehlt sogar die Ansprache, oder Footer mit Firmenadresse.</p>
<p>Selbst ist man damit oft zu R&#252;cksprachen gezwungen, die oft lange &#252;berfl&#252;ssige Telefongespr&#228;che nach sich ziehen. Aber besser wenn der Kunde von selbst anruft, da gibt es noch andere M&#246;glichkeiten…</p>
<blockquote><p>–„Neee.. ich habe Ihre E-Mail nicht gesehen.. ich glaube ich hab da nichts bekommen… moment… ich guck mal… ah.. hier.. Spam.. naja.. die Mail is ja auch Spam&#8230;“<br />
– „Wie! Spam?! Meine Mail ist doch keine Spam… !“ <em>(sichtlich verbl&#252;fft)</em><br />
– „Kein Subject, kein Inhalt und nur eine PDF als Anhang w&#228;re unter meiner Sichtweise auch Spam… und schlie&#223;lich ist die Absenderadresse f&#228;lschbar. Oder was w&#252;rde sie unter Sichtweise des Anti-Spam-Programms sagen?“</p></blockquote>
<p>Und dann gab es gestern noch die Frage an mich: „Warum hast du die UPS-Mail nicht bearbeitet, die ich dir weitergeleitet habe?“. Und ich sagte nur „UPS-Mails haben keine .EXE-&#196;nhange und kommen nicht von tfds.vddseew@hotmail.com“<strong> </strong><em>*seufz*</em></p>
<p>Hierbei handelte es sich wieder einmal um Vorgesetzte…</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.evolution515.net/article/%e2%80%9esehr-geehrter-kunde-ihre-mail-ist-spam%e2%80%9c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>1&amp;1: Update versaut &#8211; GNU Database compat-Bibliotheken f&#252;r Perl 5.8.8 fehlen!</title>
		<link>http://blog.evolution515.net/article/11-update-versaut-gnu-database-compat-bilbiotheken-fur-perl-588-fehlen/</link>
		<comments>http://blog.evolution515.net/article/11-update-versaut-gnu-database-compat-bilbiotheken-fur-perl-588-fehlen/#comments</comments>
		<pubDate>Wed, 05 Mar 2008 16:59:37 +0000</pubDate>
		<dc:creator>Blu:RayNe</dc:creator>
				<category><![CDATA[Administratives]]></category>
		<category><![CDATA[1&1]]></category>
		<category><![CDATA[Debian Update]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[schlund]]></category>

		<guid isPermaLink="false">http://blog.evolution515.net/article/11-update-versaut-gnu-database-compat-bilbiotheken-fur-perl-588-fehlen/</guid>
		<description><![CDATA[So und wieder mal &#196;rger mit 1&#38;1 aka. „der Schlund?, was mir als Namensgebung weiterhin besser gef&#228;llt. Dieses mal geht es darum dass die Jungs beim Perl-Update eine compat-Lib vergessen haben.
Hallo,
Es geht um die Domain http://www.example.com/. Darauf liegt unter  http://www.example.com/cgi-bin/tabellen.cgi?liga=Mayer-Bezirksliga ein
CGI-Skript was mit Perl2EXE in ein ELF-Binary konvertiert wurde.
Da es eine Auftragsarbeit ist und [...]]]></description>
			<content:encoded><![CDATA[<p><strong>So und wieder mal &#196;rger mit 1&amp;1 aka. „der Schlund?, was mir als Namensgebung weiterhin besser gef&#228;llt. Dieses mal geht es darum dass die Jungs beim Perl-Update eine compat-Lib vergessen haben.</strong></p>
<blockquote><p><strong>Hallo,</strong></p>
<p>Es geht um die Domain http://www.example.com/. Darauf liegt unter  http://www.example.com/cgi-bin/tabellen.cgi?liga=Mayer-Bezirksliga ein<br />
CGI-Skript was mit Perl2EXE in ein ELF-Binary konvertiert wurde.</p>
<p>Da es eine Auftragsarbeit ist und das File im Binary-Format, haben wir keine Chance, es noch zu &#228;ndern. Die Domain ist in diesem Zustand n&#228;mlich seit 5 Jahren online.</p>
<p>Unter dem 1&amp;1 Control Panel/Admin-Bereich spuckt das „Script? unter CGI-Ausgabe folgende Fehlermeldung aus:</p>
<div class="dean_ch" style="white-space: wrap;">
&nbsp; &nbsp; &nbsp;127 CGI returned nonzero status /kunden/homepages/22/d27514621/htdocs/cgi-bin/tabellen.cgi: error while loading shared libraries: libdb.so.2: cannot open shared object file: No such file or directory</div>
<p>Eine &#228;hnliche Fehlermeldung erhalte ich, wenn ich das Skript auf einen lokalen Debian/Etch (R3) Server ziehe:</p>
<div class="dean_ch" style="white-space: wrap;">
&nbsp; &nbsp; &nbsp;./tabellen.cgi: error while loading shared libraries: libgdbm.so.2: cannot open shared object file: No such file or directory</div>
<p>Die Bibliothekn mit <em>ldd</em> gecheckt, sagt mir weiterhin noch folgendes:</p>
<div class="dean_ch" style="white-space: wrap;">
&nbsp;$ ldd ./tabellen.cgi &nbsp; &nbsp; &nbsp; &nbsp; linux-gate.so.1 =&gt; &nbsp;(0xffffe000)libnsl.so.1 =&gt; /lib/tls/libnsl.so.1 (0xb7fad000)</p>
<p>libdb.so.2 =&gt; /lib/libdb.so.2 (0xb7f9d000)</p>
<p>libgdbm.so.2 =&gt; /usr/lib/libgdbm.so.2 (0xb7f97000)</p>
<p>libdl.so.2 =&gt; /lib/tls/libdl.so.2 (0xb7f93000)</p>
<p>libm.so.6 =&gt; /lib/tls/libm.so.6 (0xb7f6e000)</p>
<p>libc.so.6 =&gt; /lib/tls/libc.so.6 (0xb7e3c000)</p>
<p>libcrypt.so.1 =&gt; /lib/tls/libcrypt.so.1 (0xb7e0e000)</p>
<p>/lib/ld-linux.so.2 (0xb7fd4000)</p></div>
<p>Lokal konnte ich das Problem schnell durch Installation der Pakete <code>libgdbmg1</code> und <code>libdb1-compat</code> beheben, wie mir auch die <a href="http://packages.debian.org/search?searchon=contents&amp;keywords=libdb.so.2&amp;mode=path&amp;suite=stable&amp;arch=any">Debian-Paketsuche</a> zeigte.</p>
<p>Auch wenn sysinfo.cgi auf betroffenem Server ausspuckt, dass folgende Libs eingebunden wurden <code>-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt -ldl -lm -lpthread -lc -lcrypt</code> so scheinen also noch ein paar legacy files zu fehlen! Sie haben also wohl bei Ihrem letzten Server Update vergessen, die das <code>compat</code>-Paket mit zu installieren!</p>
<p>Ich m&#246;chte Sie also bitten auf dem System alles was in Zusammenhang mit GDBM (GNU Database) und libdb1-compat steht noch mit auf den Server zu packen. Im Einzelnen sind das wohl die Pakete gdbm, libdb1-compat, libgdbmg1, libgdbm-dev(falls n&#246;tig?) und libgdbm*.</p>
<p>M&#246;glicherweise l&#228;sst sich das Problem so schnell l&#246;sen. Bitte geben Sie bescheid, wenn alles wieder funktioniert. Der Kunde wartet.</p>
<p>Im Voraus vielen Dank!</p>
<p>MfG<br />
.mg</p></blockquote>
<p>Sogar schon am 6. Tag gab es eine Antwort:</p>
<blockquote><p><strong>Sehr geehrter Herr **********,</strong></p>
<p>vielen Dank f&#252;r Ihre Anfrage die ich gerne beantworte.</p>
<p>Nach eingehender Pr&#252;fung liegen mir nun weitere Informationen zu Ihrem<br />
Anliegen vor.</p>
<p>Leider k&#246;nnen wir die gew&#252;nschten Libaries nicht zur Verf&#252;gung stellen<br />
da diese in die globale Serverkonfiguration eingebunden werden m&#252;ssten<br />
und das technische Komplikationen hervorruft.</p>
<p>Wir k&#246;nnen Ihnen lediglich anbieten Sie bis zum 08.04.2008 auf einen<br />
Ausweichserver um zuziehen auf dem noch die alte Betriebssystemumgebung<br />
installiert ist. Nach diesem Datum wird jedoch auch dieser Server<br />
umgestellt. Auch kann keine Garantie daf&#252;r &#252;bernommen werden das Ihr CGI<br />
auf diesem Server l&#228;uft. Falls Sie einen Umzug auf einen solchen Server<br />
w&#252;nschen geben Sie uns bitte hierzu eine kurze, entsprechende<br />
Information.</p>
<p>Eine langfristige L&#246;sung kann aber nur dadurch gew&#228;hrleistet werden das<br />
die Binaries in Etch kompatibler Form erstellt werden.</p>
<p>Bei weiteren Fragen stehen wir Ihnen gerne zur Verf&#252;gung.</p>
<p>Mit freundlichen Gr&#252;&#223;en</p>
<p>**********</p></blockquote>
<p>So, und nun b&#246;se Antwort #1:</p>
<blockquote><p><strong>Hallo,</strong></p>
<p>Sagt mal, arbeiten bei euch &#220;bersetzer, die ansichtlich „Tech-Babble? in „Noob-Slang? mit einer Informationsdichte &#252;bersetzen?</p>
<p>Also, Ihr gebt zu, das Ding nicht installieren zu wollen, stattdessen die Page aber auf einen Server auszulagern, auf dem Ihr sp&#228;testen am 8.4. wieder nur einen Teil der Software, die zum reibungslosen Betrieb notwendig w&#228;re installiert? Toll! Leider keine wirkliche L&#246;sung.</p>
<p><u>&#220;brigens:</u> Da diese restlichen Server ja wohl noch auf Debian 3.1 laufen, nur die Info dass die Security-Maintainance von Debian am 04.05. endet. D.h. ihr seid damit auf den letzten Dr&#252;cker dran, und &#252;berschreitet die SOLL-Zeit auch noch um 4 Tage!</p>
<blockquote><p>  Leider k&#246;nnen wir die gew&#252;nschten Libaries nicht zur Verf&#252;gung stellen<br />
da diese in die globale Serverkonfiguration eingebunden werden m&#252;ssten<br />
und das technische Komplikationen hervorruft.</p></blockquote>
<p>Komplikationen ja, Konflikte m&#246;glich, aber eher unwahrscheinlich, da euer System wohl zum gro&#223;en Teil &#252;ber Debian und sein Paket-Management l&#228;uft! Auf jeden Fall gibt es aber bei euch jede Menge B&#252;rokratie!</p>
<p>Die langfristige L&#246;sung hei&#223;t im &#220;brigen <code>libdb1-compat</code> <img src='http://blog.evolution515.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Desweiteren hei&#223;e ich auch nicht Herr **********, aber arbeite f&#252;r diesen Mann.</p>
<p>Mit kleinen Providern gibt es im &#220;brigen bei solchen Dingen meist keine gro&#223;artigen Probleme, obwohl die im Gegensatz zu euch, nicht der ganzen Welt einen Stempel aufdr&#252;cken wollen, wie toll ihr Service/Support ist.</p>
<p>Und ich wei&#223; eh, dass es auf diese E-Mail keine Antwort gibt. Aber trotzdem, ich wei&#223; wie Schei&#223;e euer Job ist <img src='http://blog.evolution515.net/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  wechselt doch zu domainfactory, bei denen soll es soweit ok sein (laut Kumpel).</p>
<p>MfG<br />
.mg</p></blockquote>
<p>Ich wartete auf die Antwort sechs Tage, hackte nochmal mit einer E-Mail „Na, gibt&#8217;s Neuigkeiten?? nach, erhielt am abend des siebenten Tages folgendes:</p>
<blockquote><p>Sehr geehrter Herr Geiger,</p>
<p>hier noch ein Vorschlag:</p>
<p>Sie k&#246;nnten die ben&#246;tigten Libraries selbst in einem Verzeichnis ~/lib<br />
auf Ihrem Webspace installieren und mit Hilfe der folgenden .htaccess<br />
-Anweisung in Ihre cgi-Skripte einbinden:</p>
<div class="dean_ch" style="white-space: wrap;">SetEnv LD_LIBRARY_PATH &nbsp;/homepages/22/d27514621/htdocs/lib</div>
<p>Bei weiteren Fragen stehen wir Ihnen gerne zur Verf&#252;gung.</p>
<p>Mit freundlichen Gr&#252;&#223;en<br />
************</p></blockquote>
<p>So der letzte Versuch die Jungs zur Installation zu bewegen:</p>
<blockquote><p><strong>Hallo,</strong></p>
<p>zwar ein guter Vorschlag, der aber daran krankt, das die Environment Variable nur unter Apache g&#252;ltig ist. Fehlermeldungen sehe ich leider hingegen leider nur unter dem CGI-Ausgabe-Monitor . Somit d&#252;rfte die Installation der Libs schwierig bis (nahezu) unm&#246;glich sein.</p>
<p>K&#246;nnen sie sich nicht einfach doch dazu bewegen auf dem Server die libgdbmg1, libgdbm-dev und libdb1-compat zu installieren? Das w&#252;rde nicht nur mein Problem l&#246;sen, sondern auch Ihres ? n&#228;mlich jenes dass mit mir haben. Und das Ansehen des Supports w&#252;rde wieder ein paar Punkte auf meiner Skala steigen <img src='http://blog.evolution515.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Viele Gr&#252;&#223;e!</p>
<p>MfG<br />
.mg</p></blockquote>
<p>Naja, die Ausgabe kann man ja eigentlich umleiten. Bisher hab ich nicht viel in Perl gemacht, also erstmal noch nem Error-Logger gesucht. Und dann auf die Idee gekommen, doch einfach das Script via einem system-call aufzurufen und die Ausgabe mit  <code>2&gt;&amp;1 1&gt;log.txt</code> umzuleiten.</p>
<p>Die Environment-Variable zu setzen hat nicht geklappt, aber die Lib hat er auch im Execution-Driectory akzeptiert. F&#252;nf Minuten sp&#228;ter gab es eine Erfolgsmeldung:</p>
<blockquote><p><strong>Hallo,</strong></p>
<p>Es muss nat&#252;rlich hei&#223;en /kunden/homepages/22/d27514621/htdocs/lib.  Zudem habe ich die Ausgabe von STDERR und STDOUT einfach umgeleitet, um mir die Diagnose zu erleichtern. Und ich darf Ihnen mitteilen, dass somit wieder alles l&#228;uft.</p>
<p>Wengistens danke, dass ihr auch Debian benutzt, weswegen ich mir nicht die Libs von sonstwoher ziehen musste.</p>
<p>MfG<br />
.mg</p></blockquote>
<p><strong>UPDATE:</strong>  Use <a href="http://solaris.sunfish.suginami.tokyo.jp/tips/playground/setrpath/setrpath.c">setrpath</a>-Utiltity to change ELF search paths.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.evolution515.net/article/11-update-versaut-gnu-database-compat-bilbiotheken-fur-perl-588-fehlen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Commonly used Debian repositiories</title>
		<link>http://blog.evolution515.net/article/commonlay-used-debian-repositiories/</link>
		<comments>http://blog.evolution515.net/article/commonlay-used-debian-repositiories/#comments</comments>
		<pubDate>Wed, 04 Jul 2007 12:00:12 +0000</pubDate>
		<dc:creator>Blu:RayNe</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.evolution515.net/article/commonlay-used-debian-repositiories/</guid>
		<description><![CDATA[Ok, here some often needed debian repositiories for your /etc/apt/sources.list. This article will get updated when needed.
# Unoffical packages that harm debian licenses
deb http://ftp.debian-unofficial.org/debian etch main contrib non-free restricted
# Distribution Mirror server from 1&#38;amp;1
deb http://update.rootmaster.info/debian stable &#160;main contrib non-free
deb http://update.rootmaster.info/debian-non-US stable/non-US main contrib non-free
# Distribution Mirror server from Strato
deb http://ftp.serverkompetenz.de/debian/ etch main contrib non-free
# Offical [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, here some often needed debian repositiories for your <em>/etc/apt/sources.list</em>. This article will get updated when needed.</p>
<div class="dean_ch" style="white-space: wrap;"># Unoffical packages that harm debian licenses<br />
deb http://ftp.debian-unofficial.org/debian etch main contrib non-free restricted</p>
<p># Distribution Mirror server from 1&amp;amp;1<br />
deb http://update.rootmaster.info/debian stable &nbsp;main contrib non-free<br />
deb http://update.rootmaster.info/debian-non-US stable/non-US main contrib non-free</p>
<p># Distribution Mirror server from Strato<br />
deb http://ftp.serverkompetenz.de/debian/ etch main contrib non-free</p>
<p># Offical Debian<br />
deb http://http.us.debian.org/debian stable main contrib non-free</p>
<p># Debian security updates<br />
deb http://security.debian.org/debian-security stable/updates main contrib non-free</p>
<p># Up-to-date Apache, PHP and MySQL<br />
# deb http://dotdeb.netmirror.org/ stable all<br />
# deb-src http://dotdeb.netmirror.org/ stable all<br />
deb http://packages.dotdeb.org etch all</p>
<p># mplayer, ffmpeg and so on&#8230;<br />
deb http://www.debian-multimedia.org etch main</p>
<p># Mono<br />
deb http://www.mindtouch.com/apt/ sarge main contrib non-free#</p>
<p># Updates for viruses &amp;amp; spam filters<br />
deb http://volatile.debian.net/debian-volatile sarge/volatile main contrib<br />
deb http://people.debian.org/~dexter php5.1 sarge<br />
deb-src http://people.debian.org/~dexter php5.1 sarge<br />
deb http://www.os-works.com/debian testing main</p>
<p># Backports &#8211; if you really need them!<br />
# deb http://www.backports.org/debian/ sarge-backports main contrib non-free<br />
&nbsp;</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.evolution515.net/article/commonlay-used-debian-repositiories/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Backup remotely via Perl</title>
		<link>http://blog.evolution515.net/article/backup-remotely-via-perl/</link>
		<comments>http://blog.evolution515.net/article/backup-remotely-via-perl/#comments</comments>
		<pubDate>Tue, 29 May 2007 08:37:08 +0000</pubDate>
		<dc:creator>Blu:RayNe</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Datenbanken]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.evolution515.net/article/backup-remotely-via-perl/</guid>
		<description><![CDATA[Ok, i guess you love that cheap servers only with FTP and HTTP, and minimal PHP4-Timeout and lame CGI and no real possibility but to do a good backup job. Well, Perl was once a dominant language and can do much for you.

The benefits of following backup solutions are as follows:


Backup is done via calling [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, i guess you love that cheap servers only with FTP and HTTP, and minimal PHP4-Timeout and lame CGI and no real possibility but to do a good backup job. Well, Perl was once a dominant language and can do much for you.<br />
<strong><br />
The benefits of following backup solutions are as follows:<br />
</strong></p>
<ul>
<li>Backup is done via calling an URL 
    </li>
<li>that invokes the <em>mysqldump </em>utility to backup your database to a local director, that is preferable outside the webroot
    </li>
<li>the data is then gzipped</li>
<li>old backups are automatically deleted</li>
<li>and then backed up via FTP to another server
    </li>
<li>and while a second server gets the backup it is more secure than having all on a single server</li>
</ul>
<p>Put this in you <em>cgi-bin</em> folder and remotely call it via CURL or test it via the browser. Don&#8217;t forget tot set <strong><em>chmod </em><em>755</em> </strong>for the files! If you backup to a directory in the webroot don&#8217;t forget to protect that directory by e.g. setting a up an .htacess-file!</p>
<div class="dean_ch" style="white-space: wrap;"><span class="co1">#!/usr/bin/perl -w</span></p>
<p><span class="kw2">use</span> CGI;<br />
<span class="kw2">use</span> POSIX <a href="http://perldoc.perl.org/functions/qw.html"><span class="kw3">qw</span></a><span class="br0">&#40;</span>strftime<span class="br0">&#41;</span>;<br />
<span class="kw2">use</span> Time::<span class="me2">Local</span>;</p>
<p><span class="re0">$query</span> &nbsp; &nbsp;= <span class="kw2">new</span> CGI<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
<span class="re0">$file</span> &nbsp; &nbsp; = <span class="re0">$query</span>-&gt;<span class="me1">param</span><span class="br0">&#40;</span><span class="st0">&#8216;file&#8217;</span><span class="br0">&#41;</span>;<br />
<span class="re0">$filename</span> = <span class="re0">$query</span>-&gt;<span class="me1">param</span><span class="br0">&#40;</span><span class="st0">&#8216;filename&#8217;</span><span class="br0">&#41;</span>;</p>
<p>
<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;Content-Type: text/plain<span class="es0">\n</span><span class="es0">\n</span>&quot;</span>;<br />
<span class="co1"># print &quot;Content-type: application/octet-stream\n&quot;;</span><br />
<span class="co1"># print &quot;Content-Disposition: attachment; filename=&quot;.$filename.&quot;\n&quot;;</span><br />
<span class="co1"># print &quot;Pragma: no-cache\n&quot;;</span><br />
<span class="co1"># print &quot;bash &quot;.$file;</span></p>
<p><span class="kw2">sub</span> backupMysql<br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">my</span> <span class="br0">&#40;</span><span class="re0">$host</span><span class="br0">&#41;</span> &nbsp; &nbsp; = <span class="re0">$_</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>;<br />
&nbsp; &nbsp; <span class="kw1">my</span> <span class="br0">&#40;</span><span class="re0">$username</span><span class="br0">&#41;</span> = <span class="re0">$_</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span>;<br />
&nbsp; &nbsp; <span class="kw1">my</span> <span class="br0">&#40;</span><span class="re0">$password</span><span class="br0">&#41;</span> = <span class="re0">$_</span><span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span>;<br />
&nbsp; &nbsp; <span class="kw1">my</span> <span class="br0">&#40;</span><span class="re0">$database</span><span class="br0">&#41;</span> = <span class="re0">$_</span><span class="br0">&#91;</span><span class="nu0">3</span><span class="br0">&#93;</span>;<br />
&nbsp; &nbsp; <span class="kw1">my</span> <span class="br0">&#40;</span><span class="re0">$title</span><span class="br0">&#41;</span> = <span class="re0">$_</span><span class="br0">&#91;</span><span class="nu0">4</span><span class="br0">&#93;</span>;</p>
<p>&nbsp; &nbsp; <span class="re0">$time</span> = <a href="http://perldoc.perl.org/functions/time.html"><span class="kw3">time</span></a>;<br />
&nbsp; &nbsp; <span class="re0">$filename</span> = <span class="re0">$title</span>.<span class="st0">&quot;-&quot;</span>.<span class="re0">$database</span>.<span class="st0">&quot;-&quot;</span>.strftime<span class="br0">&#40;</span><span class="st0">&quot;%Y%m%d-%H%S&quot;</span>, <a href="http://perldoc.perl.org/functions/localtime.html"><span class="kw3">localtime</span></a><span class="br0">&#40;</span><span class="re0">$time</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; <a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;Backup of <span class="es0">\&quot;</span>&quot;</span>.<span class="re0">$title</span>.<span class="st0">&quot;<span class="es0">\&quot;</span> (&quot;</span>.<span class="re0">$database</span>.<span class="st0">&quot;)&#8230;&quot;</span>;<br />
&nbsp; &nbsp; <a href="http://perldoc.perl.org/functions/system.html"><span class="kw3">system</span></a> <span class="st0">&quot;mysqldump -e &#8211;add-drop-table &#8211;add-locks &#8211;allow-keywords -h&quot;</span>.<span class="re0">$host</span>.<span class="st0">&quot; -u&quot;</span>.<span class="re0">$username</span>.<span class="st0">&quot; -p&quot;</span>.<span class="re0">$password</span>.<span class="st0">&quot; &quot;</span>.<span class="re0">$database</span>.<span class="st0">&quot; &gt; ../../backup/&quot;</span>.<span class="re0">$filename</span>.<span class="st0">&quot;.sql&quot;</span>;<br />
&nbsp; &nbsp; <span class="co1"># print &quot;GZip &quot;.$filename.&quot;&#8230;\n&quot;;</span><br />
&nbsp; &nbsp; <a href="http://perldoc.perl.org/functions/system.html"><span class="kw3">system</span></a> <span class="st0">&quot;gzip ../../backup/&quot;</span>.<span class="re0">$filename</span>.<span class="st0">&quot;.sql&quot;</span>;<br />
&nbsp; &nbsp; <span class="co1"># print &quot;Unlink &quot;.$filename.&quot;.sql&#8230;\n&quot;;</span><br />
&nbsp; &nbsp; <a href="http://perldoc.perl.org/functions/unlink.html"><span class="kw3">unlink</span></a> <span class="st0">&quot;../../backup/&quot;</span>.<span class="re0">$filename</span>.<span class="st0">&quot;.sql&quot;</span>;<br />
&nbsp; &nbsp; <a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;done.<span class="es0">\n</span>&quot;</span>;<br />
<span class="br0">&#125;</span></p>
<p><span class="co1"># Delete previous backups</span><br />
<span class="kw1">if</span> <span class="br0">&#40;</span>-d <span class="st0">&quot;../backup/&quot;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="re0">$where</span> = <span class="st0">&quot;../backup/&quot;</span>;<br />
&nbsp; &nbsp; <span class="kw1">while</span> <span class="br0">&#40;</span><a href="http://perldoc.perl.org/functions/defined.html"><span class="kw3">defined</span></a><span class="br0">&#40;</span><span class="re0">$next</span> = &lt;<span class="re0">$where</span>/*.sql.gz&gt;<span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://perldoc.perl.org/functions/unlink.html"><span class="kw3">unlink</span></a><span class="br0">&#40;</span><span class="re0">$next</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></p>
<p>
backupMysql<span class="br0">&#40;</span><span class="st0">&quot;&lt;em&gt;host&lt;/em&gt;&quot;</span>, <span class="st0">&quot;&lt;em&gt;username&lt;/em&gt;&quot;</span>, <span class="st0">&quot;&lt;em&gt;password&lt;/em&gt;&quot;</span>, <span class="st0">&quot;&lt;em&gt;database&lt;/em&gt;&quot;</span>, <span class="st0">&quot;&lt;em&gt;mybackupname&lt;/em&gt;&quot;</span><span class="br0">&#41;</span>;</p>
<p>&nbsp;</p></div>
<p>Optional .htaccess-File:</p>
<div class="dean_ch" style="white-space: wrap;">&lt;Files ~ <span class="st0">&quot;.*(sql|gz|tar)&quot;</span>&gt;<br />
&nbsp; &nbsp; <span class="kw1">Deny</span> <span class="kw1">from</span> <span class="kw1">all</span><br />
&lt;/Files&gt;<br />
&nbsp;</div>
<p>
Then call the URL by cronjob:</p>
<div class="dean_ch" style="white-space: wrap;"><span class="re3">#!/bin/sh</span></p>
<p>
<span class="re2">remoteAddress=</span><span class="st0">&quot;&lt;em&gt;ftp://user@yourftp.com&lt;/em&gt; -p &lt;em&gt;password&lt;/em&gt;&quot;</span><br />
<span class="re2">localAddress=</span><span class="st0">&quot;&lt;em&gt;/home/Backup/mybackupname&lt;/em&gt;&quot;</span></p>
<p><span class="re2">timeThreshold=</span><span class="nu0">15</span><br />
<span class="re2">mirrordirOptions=</span><span class="st0">&quot;-v &#8211;keep-files &nbsp;&#8211;no-chown &#8211;no-chmod &nbsp;&#8211;num-backups 30 &#8211;mtime-threshold $timeThreshold &quot;</span></p>
<p><span class="kw3">echo</span> <span class="st0">&quot;Backup to $localAddress &#8212; `date +&quot;</span>%a, %C.%B %Y<span class="st0">&quot;`&quot;</span><br />
<span class="kw3">echo</span> -n <span class="st0">&quot;[`date +%H:%M:%S`] Killing runnung instances of mirrordir&#8230;&quot;</span></p>
<p>/usr/bin/<span class="kw2">killall</span> <span class="nu0">-9</span> mirrordir &amp;amp;<span class="nu0">2</span>&gt;<span class="nu0">1</span> &gt; /dev/null<br />
<span class="kw3">echo</span> <span class="st0">&quot;done.&quot;</span></p>
<p><span class="kw2">mkdir</span> -p <span class="re1">$localAddress</span>/htdocs &gt; /dev/null</p>
<p><span class="kw3">echo</span> &nbsp;<span class="st0">&quot;[`date +%H:%M:%S`] Backup of relevant databases&#8230;&quot;</span><br />
curl http://www.yourdomain.com/cgi-bin/backup/mysql.cgi<br />
<span class="kw3">echo</span> <span class="st0">&quot;done.&quot;</span></p>
<p><span class="kw3">echo</span> -n <span class="st0">&quot;[`date +%H:%M:%S`] Backup of remote FTP&#8230;&quot;</span><br />
/usr/bin/mirrordir <span class="re1">$mirrordirOptions</span> <span class="re1">$remoteAddress</span> <span class="re1">$localAddress</span>/htdocs<br />
<span class="kw3">echo</span> <span class="st0">&quot;done.&quot;</span></p>
<p><span class="kw3">echo</span> <span class="st0">&quot;[`date +%H:%M:%S`] Finished.&quot;</span><br />
&nbsp;</div>
<p>If you don&#8217;t have <em>mirrordir </em>or <em>curl </em>install it via <strong>aptitude install mirrordir curl on your </strong>debian box.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.evolution515.net/article/backup-remotely-via-perl/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How to install Java and FOP on your linux box</title>
		<link>http://blog.evolution515.net/article/how-to-install-java-and-fop-on-your-linux-box/</link>
		<comments>http://blog.evolution515.net/article/how-to-install-java-and-fop-on-your-linux-box/#comments</comments>
		<pubDate>Sun, 20 May 2007 14:06:30 +0000</pubDate>
		<dc:creator>Blu:RayNe</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[XML-Technologies]]></category>

		<guid isPermaLink="false">http://blog.evolution515.net/article/how-to-install-java-and-fop-on-your-linux-box/</guid>
		<description><![CDATA[Debian or other Linux-Distributions do not include Java by default, so you first have to install the JVM. This is done in Debian by downloading the JVM binary distriubtion&#160; from sun and then building a DEB-Package with the tools form java-package that you install by dpkg -i. 
But let&#8217;s do that step-by-step:
Installing JAVA on your [...]]]></description>
			<content:encoded><![CDATA[<p>Debian or other Linux-Distributions do not include Java by default, so you first have to install the JVM. This is done in Debian by downloading the <em>JVM binary distriubtion</em>&nbsp; from sun and then building a DEB-Package with the tools form <em>java-package</em> that you install by <em>dpkg -i</em>. </p>
<p><strong>But let&#8217;s do that step-by-step:</strong></p>
<h2>Installing JAVA on your Debian box</h2>
<ol>
<li>You&#8217;ll need the JavaVM, so get it at <a href="http://java.sun.com/ ">http://java.sun.com/</a> and search for the latest version. The filename should be something like <em>jdk-1_5_0-linux-i586.bin</em>.
</li>
<li>If not yet done, install the tools from java-package as root-user:<br />
    <strong>apt-get install java-package</p>
<p>    </strong></li>
<li>Then build a DEB-Package from the downloaded file. This can and should be done only as standard user (no root!)<br />
    <strong>fakeroot make-jpkg &lt;java-binary-package-name&gt;.bin</p>
<p>    </strong></li>
<li>If everything goes fine, you should see something like
<pre>The Debian package has been created in the currentdirectory. You can install the package as root (e.g.dpkg -i sun-j2sdk1.5_1.5.0+update00_i386.deb).</pre>
</li>
<li>
<p>Then just install the package by ther given command:<br />
    <strong>dpkg -i &lt;created-package-name&gt;.deb</strong></p>
</li>
<li>Check if it works by typing <strong>java -version</strong>. Following should be seen as standard and root user:
<pre>java version &quot;1.5.0&quot;Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64)Java HotSpot(TM) Client VM (build 1.5.0-b64, mixed mode, sharing)</pre>
</li>
</ol>
<p></p>
<h2>Installing Apache FOP on your Debian box</h2>
<ol>
<li>Check if Java is installed and running.
</li>
<li>Get the latest binary from <a href="http://xmlgraphics.apache.org/fop/">http://xmlgraphics.apache.org/fop/</a> . The file should be named something like <em>fop-0.93-bin-jdk1.4.tar.gz</em>.
</li>
<li>Extract the contents of the archive by tar -zxvf &lt;fop-tarball&gt;. This should results in a directory called <em>fop-0.93</em>.
</li>
<li>Move the directory to /usr/local/lib<br />
    <strong>mv fop-0.93 /usr/local/lib<br />
    </strong>
    </li>
<li>Make a symlink for the directory without the version number<br />
    <strong>ln -s /usr/local/lib/fop-0.93 /usr/local/lib/fop<br />
    </strong>
    </li>
<li>Make a symlink for the command line wrapper script in your /usr/bin<br />
    ln -s <strong>/usr/local/lib/fop/fop /usr/bin/fop</strong>
    </li>
<li>
<p>Edit <strong> /usr/bin/fop </strong>and put following at the beginning of the file (and below the header comment section!):<br />
    <strong>export FOP_HOME=/usr/local/lib/fop</strong></p>
</li>
<li>Test the installation not only by typing <strong>fop -v,</strong> but instead by converting a fo file. This is necessary, because the command line wrapper is still very experimental:
<div class="dean_ch" style="white-space: wrap;"><span class="sc3"><span class="re1">&lt;?xml</span> <span class="re0">version</span>=<span class="st0">&quot;1.0&quot;</span> <span class="re0">encoding</span>=<span class="st0">&quot;ISO-8859-1&quot;</span><span class="re2">?&gt;</span></span><br />
<span class="sc3"><span class="re1">&lt;fo:root</span> <span class="re0">xmlns:fo</span>=<span class="st0">&quot;http://www.w3.org/1999/XSL/Format&quot;</span><span class="re2">&gt;</span></span></p>
<p><span class="sc3"><span class="re1">&lt;fo:layout-master-set<span class="re2">&gt;</span></span></span><br />
&nbsp; <span class="sc3"><span class="re1">&lt;fo:simple-page-master</span> <span class="re0">master-name</span>=<span class="st0">&quot;A4&quot;</span><span class="re2">&gt;</span></span><br />
&nbsp; <span class="sc3"><span class="re1">&lt;fo:region-body</span> <span class="re2">/&gt;</span></span><span class="sc3"><span class="re1">&lt;</span><br />
&nbsp; <span class="re1">&lt;/fo:simple-page-master<span class="re2">&gt;</span></span></span><br />
<span class="sc3"><span class="re1">&lt;/fo:layout-master-set<span class="re2">&gt;</span></span></span></p>
<p><span class="sc3"><span class="re1">&lt;fo:page-sequence</span> <span class="re0">master-reference</span>=<span class="st0">&quot;A4&quot;</span><span class="re2">&gt;</span></span><br />
&nbsp; <span class="sc3"><span class="re1">&lt;fo:flow</span> <span class="re0">flow-name</span>=<span class="st0">&quot;xsl-region-body&quot;</span><span class="re2">&gt;</span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;fo:block<span class="re2">&gt;</span></span></span>Hello World!<span class="sc3"><span class="re1">&lt;/fo:block<span class="re2">&gt;</span></span></span><br />
&nbsp; <span class="sc3"><span class="re1">&lt;/fo:flow<span class="re2">&gt;</span></span></span><br />
<span class="sc3"><span class="re1">&lt;/fo:page-sequence<span class="re2">&gt;</span></span></span><br />
<span class="sc3"><span class="re1">&lt;/fo:root<span class="re2">&gt;</span></span></span></div>
</li>
</ol>
<h2>More help</h2>
<p><strong>You can get in-depth installation guides and instructions here:</strong></p>
<ul>
<li><a href="http://www.crazysquirrel.com/computing/debian/java.jspx">http://www.crazysquirrel.com/computing/debian/java.jspx</a></li>
<li><a href="http://www.sagehill.net/docbookxsl/InstallingAnFO.html">http://www.sagehill.net/docbookxsl/InstallingAnFO.html</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.evolution515.net/article/how-to-install-java-and-fop-on-your-linux-box/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>

