<?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>The black box of life &#187; Linux</title>
	<atom:link href="http://www.michael-schwenk.de/tag/linux/feed" rel="self" type="application/rss+xml" />
	<link>http://www.michael-schwenk.de</link>
	<description></description>
	<lastBuildDate>Wed, 08 Sep 2010 19:57:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Patchset 10.2.0.5 f&#252;r ORACLE Database Server</title>
		<link>http://www.michael-schwenk.de/2010/05/03/ubicomp/dba/patchset-10-2-0-5-fuer-oracle-database-server</link>
		<comments>http://www.michael-schwenk.de/2010/05/03/ubicomp/dba/patchset-10-2-0-5-fuer-oracle-database-server#comments</comments>
		<pubDate>Mon, 03 May 2010 07:31:13 +0000</pubDate>
		<dc:creator>Michel</dc:creator>
				<category><![CDATA[DBA]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Ubicomp]]></category>
		<category><![CDATA[10.2.0.5]]></category>
		<category><![CDATA[8202632]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Patchset]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://www.michael-schwenk.de/?p=483</guid>
		<description><![CDATA[Dieser Beitrag wird sehr kurz, aber ich m&#246;chte es nicht unerw&#228;hnt lassen: Viele DBAs gingen davon aus, dass das Patchset 10.2.0.4 f&#252;r ORACLE Database Server das finale Patchset sein wird, doch ORACLE hat mal wieder alle &#252;berrascht. In den letzten Tagen wurde das Patchset 10.2.0.5 f&#252;r Linux x86 &#38; x86-64 unter der Patchnummer 8202632 ver&#246;ffentlicht.]]></description>
			<content:encoded><![CDATA[<p>Dieser Beitrag wird sehr kurz, aber ich m&#246;chte es nicht unerw&#228;hnt lassen: Viele DBAs gingen davon aus, dass das Patchset 10.2.0.4 f&#252;r ORACLE Database Server das finale Patchset sein wird, doch ORACLE hat mal wieder alle &#252;berrascht.</p>
<p><span id="more-483"></span>In den letzten Tagen wurde das <strong>Patchset 10.2.0.5</strong> f&#252;r Linux x86 &amp; x86-64 unter der Patchnummer <a onclick="javascript:pageTracker._trackPageview('/outbound/article/updates.oracle.com');" href="https://updates.oracle.com/ARULink/PatchDetails/process_form?patch_num=8202632">8202632</a> ver&#246;ffentlicht.</p>
<div id="fb-like" style=""><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.michael-schwenk.de/2010/05/03/ubicomp/dba/patchset-10-2-0-5-fuer-oracle-database-server&amp;layout=button_count&amp;show_faces=true&amp;width=640&amp;action=like&amp;font=trebuchet+ms&amp;colorscheme=light&amp;locale=de_DE" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:640px; height:30px"></iframe></div>]]></content:encoded>
			<wfw:commentRss>http://www.michael-schwenk.de/2010/05/03/ubicomp/dba/patchset-10-2-0-5-fuer-oracle-database-server/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>One line global search and replace on Linux</title>
		<link>http://www.michael-schwenk.de/2008/11/07/ubicomp/one-line-global-search-and-replace-on-linux</link>
		<comments>http://www.michael-schwenk.de/2008/11/07/ubicomp/one-line-global-search-and-replace-on-linux#comments</comments>
		<pubDate>Fri, 07 Nov 2008 15:25:27 +0000</pubDate>
		<dc:creator>Michel</dc:creator>
				<category><![CDATA[Ubicomp]]></category>
		<category><![CDATA['s/foo/bar/g']]></category>
		<category><![CDATA[Command line]]></category>
		<category><![CDATA[find]]></category>
		<category><![CDATA[Global Search & Replace]]></category>
		<category><![CDATA[grep]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Search & Replace]]></category>
		<category><![CDATA[sed]]></category>
		<category><![CDATA[String]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[Zeichenkette]]></category>

		<guid isPermaLink="false">http://www.michael-schwenk.de/?p=321</guid>
		<description><![CDATA[Beim Kopieren einer Applikation auf eine andere physikalische Umgebung kann es vorkommen, dass in x-beliebig vielen Dateien ein ganz bestimmter String [damit meine ich die Zeichenkette ] (z.B. der absolute Pfad oder der Hostname) ersetzt werden muss. Jetzt kann man den fehleranf&#228;lligen Weg gehen und jede Datei einzeln editieren. Effektiver ist es jedoch, einen einzigen [...]]]></description>
			<content:encoded><![CDATA[<p>Beim Kopieren einer Applikation auf eine andere physikalische Umgebung kann es vorkommen, dass in x-beliebig vielen Dateien ein ganz bestimmter String [damit meine ich die Zeichenkette <img class="superemotions" title="{#superemotions_dlg.lol}" alt="{#superemotions_dlg.lol}" border="0" src="http://www.michael-schwenk.de/wp-includes/images/smilies/icon_lol.gif" />] (z.B. der absolute Pfad oder der Hostname) ersetzt werden muss. Jetzt kann man den fehleranf&#228;lligen Weg gehen und jede Datei einzeln editieren. <img class="superemotions" title="{#superemotions_dlg.rolleyes}" alt="{#superemotions_dlg.rolleyes}" border="0" src="http://www.michael-schwenk.de/wp-includes/images/smilies/icon_rolleyes.gif" /></p>
<p><span id="more-321"></span>Effektiver ist es jedoch, einen einzigen Befehl auszuf&#252;hren und der global, also auch rekursiv, den String sucht und ersetzt.</p>
<blockquote>
<div class="code short">
<p style="font-family: Courier New,Courier,mono;">find . -type f | xargs sed -i .bak &#8216;s/alterString/neuerString/g&#8217;</p>
</div>
</blockquote>
<p>Dieser Befehl durchsucht jede Datei in dem Verzeichnis. Sie wird zun&#228;chst ge&#246;ffnet, dann wird nach &#8220;alterString&#8221; gesucht. Wird dieser gefunden, wird ein Backup der Datei *.bak erstellt und erst dann wir der bisherige String durch &#8220;neuerString&#8221; ersetzt.</p>
<p>Ist man sich der Sache sicher, was man tut, kann man z.B. die Backup-Option ausschalten</p>
<blockquote>
<p style="font-family: Courier New,Courier,mono;">find . -type f | xargs sed -i &#8216;s/alterString/neuerString/g&#8217;</p>
</blockquote>
<p>Das funktioniert zwar, aber es gibt gravierende Nachteile: Es wird jede Datei ber&#252;hrt, unabh&#228;ngig davon ob der gew&#252;nschte String vorkommt, und es gibt einen Konflikt mit dem Schr&#228;gstrich bei Pfadangaben. Dieser muss dann mit &#8220;\&#8221; maskiert werden. F&#252;r die Maskierung s&#228;he der Befehl nun so aus:</p>
<blockquote>
<p style="font-family: Courier New,Courier,mono;">find . -type f | xargs sed -i &#8216;s/alter\/String/neuer\/String/g&#8217;</p>
</blockquote>
<p>Damit das System nicht unn&#246;tig belastet wird und nicht jede Datei einzeln ber&#252;hrt wird, muss der Befehl um eine weitere Option erweitert werden.</p>
<div class="code short">
<blockquote>
<p style="font-family: Courier New,Courier,mono;">find . -type f | xargs grep -l &#8216;alter\/String&#8217; | xargs sed -i &#8221; -e &#8216;s/alter\/String/neuer\/String/g&#8217;</p>
</blockquote>
<p>Jetzt werden alle Dateien gesucht, es werden aber lediglich die Dateien ber&#252;hrt, in denen &#8220;alter/String&#8221; vorkommt, und dieser wird dann durch &#8220;neuer/String&#8221; ersetzt.</p>
<p>Mein Fazit: Feine Sache!</p></div>
<div id="fb-like" style=""><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.michael-schwenk.de/2008/11/07/ubicomp/one-line-global-search-and-replace-on-linux&amp;layout=button_count&amp;show_faces=true&amp;width=640&amp;action=like&amp;font=trebuchet+ms&amp;colorscheme=light&amp;locale=de_DE" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:640px; height:30px"></iframe></div>]]></content:encoded>
			<wfw:commentRss>http://www.michael-schwenk.de/2008/11/07/ubicomp/one-line-global-search-and-replace-on-linux/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SCP Hintergrundprozess</title>
		<link>http://www.michael-schwenk.de/2008/05/23/ubicomp/scp-hintergrundprozess</link>
		<comments>http://www.michael-schwenk.de/2008/05/23/ubicomp/scp-hintergrundprozess#comments</comments>
		<pubDate>Fri, 23 May 2008 10:08:23 +0000</pubDate>
		<dc:creator>Michel</dc:creator>
				<category><![CDATA[Ubicomp]]></category>
		<category><![CDATA[Background Process]]></category>
		<category><![CDATA[File transfer]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[remote]]></category>
		<category><![CDATA[SCP]]></category>
		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://www.michael-schwenk.de/?p=213</guid>
		<description><![CDATA[Um Daten von einem Rechner auf einen anderen remote zu &#252;bertragen, besteht die M&#246;glichkeit, SCP (Secure Copy) zu nutzen. Ein Beispiel: $ scp /folder/tranfer-file-name username@remote.host.net: /folder/destination-file-name Das Passwort des Users auf dem Remote-Rechner wird nach Best&#228;tigen des Befehls angefordert. Danach muss man warten, bis die &#220;bertragung der Datei abgeschlossen ist. F&#252;r kleine Datenmengen ist das [...]]]></description>
			<content:encoded><![CDATA[<p>Um Daten von einem Rechner auf einen anderen remote zu &#252;bertragen, besteht die M&#246;glichkeit, <em>SCP</em> (Secure Copy) zu nutzen.</p>
<p><span id="more-213"></span>Ein Beispiel:</p>
<blockquote>
<pre class="out">$ <span style="color: #000080;">scp</span> /folder/tranfer-file-name username@remote.host.net:
   /folder/destination-file-name</pre>
</blockquote>
<p>Das Passwort des Users auf dem Remote-Rechner wird nach Best&#228;tigen des Befehls angefordert. Danach muss man warten, bis die &#220;bertragung der Datei abgeschlossen ist. F&#252;r kleine Datenmengen ist das okay, aber bei gr&#246;&#223;eren Mengen, sagen wir beispielsweise 40 GB, oder bei instabilem Netzwerk, ist es l&#228;stig, die Verbindung zum Quellrechner aufrecht zu halten (was beim instabilen Netz schon fast zur Verzweiflung f&#252;hrt). Um dem aus dem Weg zu gehen, kann <em>SCP</em> als Hintergrundprozess ausgef&#252;hrt werden:</p>
<blockquote>
<pre class="out">$ <span style="color: #000080;">scp</span> /folder/tranfer-file-name username@remote.host.net:
   /folder/destination-file-name &gt; /dev/null 2&gt;&amp;1</pre>
</blockquote>
<p>Auch in diesem Fall wird das Passwort des Users auf dem Remote-Rechner angefordert; nach dessen Eingabe und der Best&#228;tigung durch Enter, muss der Prozess mit <em>STRG + Z</em> unterbrochen werden. <em>SCP</em> liefert daraufhin folgenden Output:</p>
<blockquote>
<pre class="out"><span style="color: #003366;">[</span>1<span style="color: #003366;">]</span>+  Stopped        <span style="color: #000080;">scp</span> /folder/tranfer-file-name username@remote.host.net:
   /folder/destination-file-name &gt; /dev/null 2&gt;&amp;1</pre>
</blockquote>
<p>Damit der <em>SCP</em>-Prozess im Hintergrund fortgesetzt wird, muss folgender Befehl eingegeben werden:</p>
<blockquote>
<pre class="out">$ <span style="color: #003366;">bg</span></pre>
</blockquote>
<p>Diesmal sieht der Output von <em>SCP</em> so aus:</p>
<blockquote>
<pre class="out"><span style="color: #003366;">[</span>1<span style="color: #003366;">]</span>+ <span style="color: #000080;">scp</span> /folder/tranfer-file-name username@remote.host.net:
   /folder/destination-file-name &gt; /dev/null 2&gt;&amp;1 &amp;</pre>
</blockquote>
<p>Mit Eingabe von</p>
<blockquote>
<pre class="out">$ <span style="color: #003366;">jobs</span></pre>
</blockquote>
<p>kann kontrolliert werden, ob der Hintergrundprozess (noch) l&#228;uft. Wenn er noch l&#228;uft, sieht das Ergebnis so aus:</p>
<blockquote>
<pre class="out"><span style="color: #003366;">[</span>1<span style="color: #003366;">]</span>+  Running        <span style="color: #000080;">scp</span> /folder/tranfer-file-name username@remote.host.net:
   /folder/destination-file-name &gt; /dev/null 2&gt;&amp;1 &amp;</pre>
</blockquote>
<p>Um den Prozess wieder vordergr&#252;ndig ausf&#252;hren zu lassen, gen&#252;gt die Eingabe von</p>
<blockquote>
<pre class="out">$ <span style="color: #003366;">fg</span></pre>
</blockquote>
<div id="fb-like" style=""><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.michael-schwenk.de/2008/05/23/ubicomp/scp-hintergrundprozess&amp;layout=button_count&amp;show_faces=true&amp;width=640&amp;action=like&amp;font=trebuchet+ms&amp;colorscheme=light&amp;locale=de_DE" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:640px; height:30px"></iframe></div>]]></content:encoded>
			<wfw:commentRss>http://www.michael-schwenk.de/2008/05/23/ubicomp/scp-hintergrundprozess/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ORACLE Database 10gR2 und SLES 10</title>
		<link>http://www.michael-schwenk.de/2007/12/18/ubicomp/dba/oracle-database-10gr2-auf-sles-10-installieren</link>
		<comments>http://www.michael-schwenk.de/2007/12/18/ubicomp/dba/oracle-database-10gr2-auf-sles-10-installieren#comments</comments>
		<pubDate>Tue, 18 Dec 2007 12:50:09 +0000</pubDate>
		<dc:creator>Michel</dc:creator>
				<category><![CDATA[DBA]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Ubicomp]]></category>
		<category><![CDATA[10g]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[SLES 10]]></category>
		<category><![CDATA[SUSE]]></category>

		<guid isPermaLink="false">http://www.michael-schwenk.de/?p=132</guid>
		<description><![CDATA[Um ORACLE Database 10g Release 2 auf dem SUSE Linux Enterprise Server 10 zu installieren, m&#252;ssen im Vorfeld diverse Ma&#223;nahmen getroffen werden. So muss unter anderem dem ORACLE Universal Installer vorgegaukelt werden, man wolle ORACLE auf einem SLES9-System installieren. Beim Rollout von 10gR2 wurde SLES10 noch nicht supportet. Da dies mittlerweile aber der Fall ist, [...]]]></description>
			<content:encoded><![CDATA[<p>Um ORACLE Database 10g Release 2 auf dem SUSE Linux Enterprise Server 10 zu installieren, m&#252;ssen im Vorfeld diverse Ma&#223;nahmen getroffen werden. So muss unter anderem dem ORACLE Universal Installer vorgegaukelt werden, man wolle ORACLE auf einem SLES9-System installieren.</p>
<p><span id="more-132"></span>Beim Rollout von 10gR2 wurde SLES10 noch nicht supportet. Da dies mittlerweile aber der Fall ist, gibt es eine sehr detaillierte &#8211; wenn auch leider nur englischsprachige &#8211; Step by Step Anleitung CoolSolutionsWiki von Novell.<br />
<a href="http://www.novell.com/products/server/oracle/oracle10g_install.html" target="_blank">http://www.novell.com/products/server/oracle/oracle10g_install.html</a></p>
<div id="fb-like" style=""><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.michael-schwenk.de/2007/12/18/ubicomp/dba/oracle-database-10gr2-auf-sles-10-installieren&amp;layout=button_count&amp;show_faces=true&amp;width=640&amp;action=like&amp;font=trebuchet+ms&amp;colorscheme=light&amp;locale=de_DE" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:640px; height:30px"></iframe></div>]]></content:encoded>
			<wfw:commentRss>http://www.michael-schwenk.de/2007/12/18/ubicomp/dba/oracle-database-10gr2-auf-sles-10-installieren/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
