<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Kommentare für Butschek.de</title>
	<atom:link href="http://www.butschek.de/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.butschek.de</link>
	<description>Blog von Michael Butschek</description>
	<lastBuildDate>Mon, 15 Feb 2010 17:07:44 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Kommentar zu Perl MySQL Backup von Anton</title>
		<link>http://www.butschek.de/fachartikel/perl-mysql-backup/comment-page-1/#comment-1031</link>
		<dc:creator>Anton</dc:creator>
		<pubDate>Mon, 15 Feb 2010 17:07:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.butschek.de/?page_id=228#comment-1031</guid>
		<description>Spontaner Gedanke bzgl. der &quot;nur MyISAM&quot;-Problematik:

InnoDB unterstützt &quot;per Table&quot;-Tablespaces&quot;:

http://dev.mysql.com/doc/refman/5.0/en/multiple-tablespaces.html

Damit könnte man das Skript auch mit InnoDB einsetzen.

Zumal wird die zentrale ibdata-Datei nicht unnötig aufgebläht, wenn man Dateien löscht.</description>
		<content:encoded><![CDATA[<p>Spontaner Gedanke bzgl. der &#8220;nur MyISAM&#8221;-Problematik:</p>
<p>InnoDB unterstützt &#8220;per Table&#8221;-Tablespaces&#8221;:</p>
<p><a href="http://dev.mysql.com/doc/refman/5.0/en/multiple-tablespaces.html" rel="nofollow">http://dev.mysql.com/doc/refman/5.0/en/multiple-tablespaces.html</a></p>
<p>Damit könnte man das Skript auch mit InnoDB einsetzen.</p>
<p>Zumal wird die zentrale ibdata-Datei nicht unnötig aufgebläht, wenn man Dateien löscht.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Kommentar zu SSH-Tunnel: Proxy über SSH von Butschek.de &#187; OpenVPN einrichten</title>
		<link>http://www.butschek.de/2009/05/ssh-tunnel-proxy/comment-page-1/#comment-987</link>
		<dc:creator>Butschek.de &#187; OpenVPN einrichten</dc:creator>
		<pubDate>Mon, 01 Feb 2010 08:01:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.butschek.de/?p=396#comment-987</guid>
		<description>[...] Artikel SSH-Tunnel: Proxy über SSH habe ich bereits über die Möglichkeit eines &#8220;Pseudo-VPNs&#8221; berichtet. Nun will ich [...]</description>
		<content:encoded><![CDATA[<p>[...] Artikel SSH-Tunnel: Proxy über SSH habe ich bereits über die Möglichkeit eines &#8220;Pseudo-VPNs&#8221; berichtet. Nun will ich [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Kommentar zu Perl MySQL Backup von Philipp Tobler</title>
		<link>http://www.butschek.de/fachartikel/perl-mysql-backup/comment-page-1/#comment-965</link>
		<dc:creator>Philipp Tobler</dc:creator>
		<pubDate>Mon, 18 Jan 2010 15:31:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.butschek.de/?page_id=228#comment-965</guid>
		<description>Wir betreiben MySQL auf Solaris und ZFS, welches sich für Backupszenarien sehr eignet. In diesem Fall beschränkt sich ein Backup auf das Locken der DBs, zfs snapshot und zum Schluss Unlock. Das ganze dauert ein paar wenige Sekunden!

Hier meine abgewandelte Scriptvariante:

#!/usr/bin/perl
use DBI;
use POSIX qw(strftime);

##
## CONFIGURATION
##

## WARNING: USE ONLY WITH MyISAM!

my $MYSQL_HOST = &quot;localhost&quot;;
my $MYSQL_USER = &quot;backup&quot;;
my $MYSQL_PASS = &quot;XXXXXXXX&quot;;
my $ZFS_DATASET = &quot;datapool/export/db/myisam&quot;;

##
## END OF CONFIGURATION
##

my $SNAP_CMD = &quot;/usr/sbin/zfs snapshot&quot;;
# define a meaningful snapshot name including date and time
my $SNAP_SUFFIX = strftime &quot;mysqlbackup-%Y-%m-%d-%H%M&quot;, localtime;

# Open Database
my @DSN  = (&#039;DBI:mysql:host=&#039;.$MYSQL_HOST, $MYSQL_USER , $MYSQL_PASS);
my $DB = DBI-&gt;connect(@DSN) &#124;&#124; exit 1;

# Output
print stdout &quot;===============================================================================\n&quot;;
print stdout &quot;MYSQL BINARY BACKUP\n&quot;;
print stdout &quot;===============================================================================\n&quot;;
print stdout &quot;\n&quot;;
print stdout &quot;-------------------------------------------------------------------------------\n&quot;;
print stdout &quot;Flush and lock tables, take ZFS snapshot, unlock tables\n&quot;;
print stdout &quot;-------------------------------------------------------------------------------\n&quot;;
print stdout &quot;\n&quot;;

# Flush, Lock, ZFS snapshot, Unlock
$RESULT = $DB-&gt;prepare(&#039;FLUSH TABLES WITH READ LOCK;&#039;);
$RESULT-&gt;execute();
system($SNAP_CMD.&#039; &#039;.$ZFS_DATASET.&#039;@&#039;.$SNAP_SUFFIX);
$RESULT = $DB-&gt;prepare(&#039;UNLOCK TABLES;&#039;);
$RESULT-&gt;execute();

# Output
print stdout &quot;\n&quot;;
print stdout &quot;-------------------------------------------------------------------------------\n&quot;;
print stdout &quot;MySQL Backup done.\n&quot;;
print stdout &quot;-------------------------------------------------------------------------------\n&quot;;

# End of script
$DB-&gt;disconnect();</description>
		<content:encoded><![CDATA[<p>Wir betreiben MySQL auf Solaris und ZFS, welches sich für Backupszenarien sehr eignet. In diesem Fall beschränkt sich ein Backup auf das Locken der DBs, zfs snapshot und zum Schluss Unlock. Das ganze dauert ein paar wenige Sekunden!</p>
<p>Hier meine abgewandelte Scriptvariante:</p>
<p>#!/usr/bin/perl<br />
use DBI;<br />
use POSIX qw(strftime);</p>
<p>##<br />
## CONFIGURATION<br />
##</p>
<p>## WARNING: USE ONLY WITH MyISAM!</p>
<p>my $MYSQL_HOST = &#8220;localhost&#8221;;<br />
my $MYSQL_USER = &#8220;backup&#8221;;<br />
my $MYSQL_PASS = &#8220;XXXXXXXX&#8221;;<br />
my $ZFS_DATASET = &#8220;datapool/export/db/myisam&#8221;;</p>
<p>##<br />
## END OF CONFIGURATION<br />
##</p>
<p>my $SNAP_CMD = &#8220;/usr/sbin/zfs snapshot&#8221;;<br />
# define a meaningful snapshot name including date and time<br />
my $SNAP_SUFFIX = strftime &#8220;mysqlbackup-%Y-%m-%d-%H%M&#8221;, localtime;</p>
<p># Open Database<br />
my @DSN  = (&#8216;DBI:mysql:host=&#8217;.$MYSQL_HOST, $MYSQL_USER , $MYSQL_PASS);<br />
my $DB = DBI-&gt;connect(@DSN) || exit 1;</p>
<p># Output<br />
print stdout &#8220;===============================================================================\n&#8221;;<br />
print stdout &#8220;MYSQL BINARY BACKUP\n&#8221;;<br />
print stdout &#8220;===============================================================================\n&#8221;;<br />
print stdout &#8220;\n&#8221;;<br />
print stdout &#8220;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-\n&#8221;;<br />
print stdout &#8220;Flush and lock tables, take ZFS snapshot, unlock tables\n&#8221;;<br />
print stdout &#8220;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-\n&#8221;;<br />
print stdout &#8220;\n&#8221;;</p>
<p># Flush, Lock, ZFS snapshot, Unlock<br />
$RESULT = $DB-&gt;prepare(&#8216;FLUSH TABLES WITH READ LOCK;&#8217;);<br />
$RESULT-&gt;execute();<br />
system($SNAP_CMD.&#8217; &#8216;.$ZFS_DATASET.&#8217;@&#8217;.$SNAP_SUFFIX);<br />
$RESULT = $DB-&gt;prepare(&#8216;UNLOCK TABLES;&#8217;);<br />
$RESULT-&gt;execute();</p>
<p># Output<br />
print stdout &#8220;\n&#8221;;<br />
print stdout &#8220;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-\n&#8221;;<br />
print stdout &#8220;MySQL Backup done.\n&#8221;;<br />
print stdout &#8220;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-\n&#8221;;</p>
<p># End of script<br />
$DB-&gt;disconnect();</p>
]]></content:encoded>
	</item>
	<item>
		<title>Kommentar zu SSH-Tunnel: Proxy über SSH von Mike</title>
		<link>http://www.butschek.de/2009/05/ssh-tunnel-proxy/comment-page-1/#comment-916</link>
		<dc:creator>Mike</dc:creator>
		<pubDate>Thu, 14 Jan 2010 07:07:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.butschek.de/?p=396#comment-916</guid>
		<description>Welcher Port benutzt wird spielt keine Rolle. Zu beachten wäre vielleicht nur, dass nicht jeder User Well-Known-Ports (&lt; 1024) öffnen darf. Ansonsten, ob nun 2000, 9080 oder sonstwas ist egal, solange es nicht in Konflikt mit einem Port stehen, den vielleicht eine andere Applikation auf dem Client nutzen möchte.

So, für (eventuell vorbeikommende) andere Leser dennoch kurz der beschriebene Weg:

Vom Ubuntu-Client per ssh -L $PORT:localhost:80 $HOST verbinden, wobei $HOST der Apache-Server (IP oder Domain) und $PORT der lokale Port (frei wählbar) ist. Danach im Webbroswer http://localhost:XXX/ öffnen.

Eventuell noch den &lt;a href=&quot;#comment-143&quot; rel=&quot;nofollow&quot;&gt;ersten Kommentar oben sowie &lt;a href=&quot;#comment-145&quot; rel=&quot;nofollow&quot;&gt;meine Antwort&lt;/a&gt; kurz beachten, dann erklärt sich auch, wie man den Port (sogar inklusive Kompression) öffnet ohne danach ständig ein Termin offen haben zu müssen:

ssh -C2Ntqf -L $PORT:localhost:80 $HOST</description>
		<content:encoded><![CDATA[<p>Welcher Port benutzt wird spielt keine Rolle. Zu beachten wäre vielleicht nur, dass nicht jeder User Well-Known-Ports (< 1024) öffnen darf. Ansonsten, ob nun 2000, 9080 oder sonstwas ist egal, solange es nicht in Konflikt mit einem Port stehen, den vielleicht eine andere Applikation auf dem Client nutzen möchte.</p>
<p>So, für (eventuell vorbeikommende) andere Leser dennoch kurz der beschriebene Weg:</p>
<p>Vom Ubuntu-Client per ssh -L $PORT:localhost:80 $HOST verbinden, wobei $HOST der Apache-Server (IP oder Domain) und $PORT der lokale Port (frei wählbar) ist. Danach im Webbroswer <a href="http://localhost:XXX/" rel="nofollow">http://localhost:XXX/ öffnen.</p>
<p>Eventuell noch den <a href="#comment-143" rel="nofollow">ersten Kommentar oben sowie </a><a href="#comment-145" rel="nofollow">meine Antwort</a> kurz beachten, dann erklärt sich auch, wie man den Port (sogar inklusive Kompression) öffnet ohne danach ständig ein Termin offen haben zu müssen:</p>
<p>ssh -C2Ntqf -L $PORT:localhost:80 $HOST</p>
]]></content:encoded>
	</item>
	<item>
		<title>Kommentar zu SSH-Tunnel: Proxy über SSH von Maxe</title>
		<link>http://www.butschek.de/2009/05/ssh-tunnel-proxy/comment-page-1/#comment-914</link>
		<dc:creator>Maxe</dc:creator>
		<pubDate>Wed, 13 Jan 2010 23:10:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.butschek.de/?p=396#comment-914</guid>
		<description>&lt;a href=&quot;#comment-913&quot; rel=&quot;nofollow&quot;&gt;@Mike&lt;/a&gt; 
Das ist ja noch viel besser! Danke, sehr gut erklärt.

Der Server ist ein Apache auf Port 80 unter Debian squeeze und der Client ssh unter Ubuntu 9.10.
Aber ein Beispiel brauchst du nicht nochmal aufzeigen. Das habe ich jetzt verstanden.

Gibt es bestimmte Portbereiche, die für sowas zu bevorzugen sind?

PS: Hiermit hast du einen neuen Abonnenten :P</description>
		<content:encoded><![CDATA[<p><a href="#comment-913" rel="nofollow">@Mike</a><br />
Das ist ja noch viel besser! Danke, sehr gut erklärt.</p>
<p>Der Server ist ein Apache auf Port 80 unter Debian squeeze und der Client ssh unter Ubuntu 9.10.<br />
Aber ein Beispiel brauchst du nicht nochmal aufzeigen. Das habe ich jetzt verstanden.</p>
<p>Gibt es bestimmte Portbereiche, die für sowas zu bevorzugen sind?</p>
<p>PS: Hiermit hast du einen neuen Abonnenten <img src='http://www.butschek.de/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
</channel>
</rss>
