<?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>www.knebler.de &#187; SuSE</title>
	<atom:link href="http://www.knebler.de/category/howto/suse/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.knebler.de</link>
	<description>Admin Blog</description>
	<lastBuildDate>Sun, 06 Nov 2011 06:27:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Mysql root Passwort vergessen?</title>
		<link>http://www.knebler.de/howto/suse/mysql-root-passwort-vergessen/</link>
		<comments>http://www.knebler.de/howto/suse/mysql-root-passwort-vergessen/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 12:55:11 +0000</pubDate>
		<dc:creator>knebler</dc:creator>
				<category><![CDATA[SuSE]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[passwort]]></category>
		<category><![CDATA[recover]]></category>

		<guid isPermaLink="false">http://www.knebler.de/?p=289</guid>
		<description><![CDATA[Ein Reset des Mysql ROOT-Passwort ist recht einfach, solange man einen SSH Zugang zum Server hat. (Beispiel: SuSE) Stop mysql service rcmysql stop Start to MySQL server w/o password: mysqld_safe --skip-grant-tables &#038; Connect to mysql server using mysql client: mysql -u root Setup new MySQL root user password mysql> use mysql; mysql> update user set [...]]]></description>
			<content:encoded><![CDATA[<p>Ein Reset des Mysql ROOT-Passwort ist recht einfach, solange man einen SSH Zugang zum Server hat. (Beispiel: SuSE)</p>
<ul>
<li> Stop mysql service
<pre class="brush: plain; light: true">
rcmysql stop
</pre>
</li>
<li> Start to MySQL server w/o password:
<pre class="brush: plain; light: true">
mysqld_safe --skip-grant-tables &#038;
</pre>
</li>
<li> Connect to mysql server using mysql client:
<pre class="brush: plain; light: true">
mysql -u root
</pre>
</li>
<li> Setup new MySQL root user password
<pre class="brush: plain; light: true">
mysql> use mysql;
mysql> update user set password=PASSWORD("neues-passwort") where User='root';
mysql> flush privileges;
mysql> quit
</pre>
</li>
<li> 5: Stop MySQL Server:
<pre class="brush: plain; light: true">
rcmysql stop
</pre>
</li>
<li> Start MySQL Server
<pre class="brush: plain; light: true">
rcmysql start
</pre>
</li>
<li> Login Test
<pre class="brush: plain; light: true">
mysql -u root -p
</pre>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.knebler.de/howto/suse/mysql-root-passwort-vergessen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wie man eine MySQL Replikation repariert</title>
		<link>http://www.knebler.de/howto/wie-man-eine-mysql-replikation-repariert/</link>
		<comments>http://www.knebler.de/howto/wie-man-eine-mysql-replikation-repariert/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 13:32:50 +0000</pubDate>
		<dc:creator>knebler</dc:creator>
				<category><![CDATA[Howto]]></category>
		<category><![CDATA[SuSE]]></category>

		<guid isPermaLink="false">http://www.knebler.de/?p=280</guid>
		<description><![CDATA[Bei einer MySQL Replikation (Master-&#62; Slave) kann es Manchmal ungültigen MySQL Abfragen geben, die dafür sorgen, dass die Replikation nicht mehr funktioniert. Wie dieser Fehler behoben werden kann möchte ich nun zeigen: Ausgangssituation: OS: OpenSuSE Mysql: Version 5.0.26 Cluster: MysqlDB Master -&#62; Slave oder auch Master1 -&#62; Slave2 -&#62; Master2 -&#62; Slave1 Fehler: Der Fehler [...]]]></description>
			<content:encoded><![CDATA[<p>Bei einer MySQL Replikation (Master-&gt; Slave) kann es Manchmal ungültigen MySQL Abfragen geben, die dafür sorgen, dass die Replikation nicht mehr funktioniert.</p>
<p>Wie dieser Fehler behoben werden kann möchte ich nun zeigen:</p>
<p><strong>Ausgangssituation:</strong></p>
<p>OS: OpenSuSE<br />
Mysql: Version 5.0.26<br />
Cluster:<br />
MysqlDB Master -&gt; Slave oder auch Master1 -&gt; Slave2 -&gt; Master2 -&gt; Slave1</p>
<p><strong>Fehler:</strong></p>
<p><em>Der Fehler kann in der Logdatei gefunden werden, </em></p>
<p>/var/lib/mysql/mysqld.log</p>
<p><em>oder über dir mysql konsole:</em></p>
<p><em>Anmeldung an der MySQLDB mit globalen Rechten:</em></p>
<pre class="brush: plain; light: true">
mysql -uroot -p********
</pre>
<p><em>Führe dieses Kommando in der MySQL Kommandozeile aus:</em></p>
<pre class="brush: plain; light: true">
mysql> show slave status\G;
</pre>
<p><strong>Ausgabe:</strong></p>
<pre class="brush: plain; light: true">
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.0.20
Master_User: rep-slave
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000003
Read_Master_Log_Pos: 49829205
Relay_Log_File: mysqlcluster2-relay-bin.000016
Relay_Log_Pos: 3680509
Relay_Master_Log_File: mysql-bin.000003
<strong>Slave_IO_Running: Yes
Slave_SQL_Running: No</strong>
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 1062
Last_Error: Error 'Duplicate entry '9959-0-_transient_timeout_rss_5d9ad1c55ec39
ea3dba324257d3a091f' for key 1' on query. Default database: 'dbsms29200024'. Query: 'INSERT INTO
`wp_options` (`option_name`,`option_value`,`autoload`) VALUES ('_transient_timeout_rss_5d9ad1c5
5ec39ea3dba324257d3a091f','1257232955','no')'
Skip_Counter: 0
Exec_Master_Log_Pos: 48652901
Relay_Log_Space: 4856813
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: NULL
1 row in set (0.00 sec)

ERROR:
No query specified
</pre><br />
<strong>Achtung: </strong>Wenn Slave_IO_Running oder Slave_SQL_Running auf No gesetzt ist, dann ist die Replikation kaput.<br />
In aller Regel steht aber nur Slave_SQL_Running auf NO.</p>
<p><strong>Die Replikation reparieren</strong></p>
<p><em>Wir halten den Slave (192.168.0.20) mit dem Kommando stop slave an!</em></p>
<pre class="brush: plain; light: true">
mysql> stop slave;
Query OK, 0 rows affected (0.00 sec)
</pre>
<p><em>Jetzt beheben wir das Problembehebung, in dem wir MYSQL (Slave) den Befehl zum überspringen der ungültige SQL Abfrage geben.</em></p>
<pre class="brush: plain; light: true">
mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
Query OK, 0 rows affected (0.00 sec)
</pre>
<p><em>Jetzt wird der Slave wieder gestartet.</em></p>
<pre class="brush: plain; light: true">
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
</pre>
<p><em>Nun den Status prüfen mit dem Befehl show slave status\G,Â  dasÂ  "\G"Â  steht nur für die Formatierung.</em></p>
<pre class="brush: plain; light: true">
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.0.20
Master_User: rep-slave
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000003
Read_Master_Log_Pos: 49930095
Relay_Log_File: mysqlcluster2-relay-bin.000017
Relay_Log_Pos: 235
Relay_Master_Log_File: mysql-bin.000003
<strong>Slave_IO_Running: Yes
Slave_SQL_Running: Yes</strong>
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 49930095
Relay_Log_Space: 235
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
1 row in set (0.00 sec)

ERROR:
No query specified
</pre>
<p><em>Der Fehler ist behoben, wenn Slave_SQL_Running auf Yes steht. Bei einem Cluster der Form Master1 -&gt; Slave2 -&gt; Master2 -&gt; Slave1<br />
ist es nicht ungewöhnlich dass der zweite Slave sich auch noch mal meldet. </em></p>
<p>Ich möcht nicht vergessen darauf hinzuweisen, dass ich keine Garantie für die Richtigkeit übernehmen kann.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.knebler.de/howto/wie-man-eine-mysql-replikation-repariert/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wie baue ich eine OCI Modul für PHP5 und Apache2?</title>
		<link>http://www.knebler.de/artikel/wie-baue-ich-eine-oci-modul-fur-php5-und-apache2/</link>
		<comments>http://www.knebler.de/artikel/wie-baue-ich-eine-oci-modul-fur-php5-und-apache2/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 08:47:30 +0000</pubDate>
		<dc:creator>knebler</dc:creator>
				<category><![CDATA[Artikel]]></category>
		<category><![CDATA[SuSE]]></category>
		<category><![CDATA[oci]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[PHP5]]></category>
		<category><![CDATA[RPM]]></category>

		<guid isPermaLink="false">http://www.knebler.de/stage/?p=193</guid>
		<description><![CDATA[Benötigt wird: Bei SuSE 10.X autoconf php5-5.X apache2-mod_php5-5.X php5-pdo-5.2.0-10 php5-devel-5.X php5-pear-5.X instant client for Oracle http://www.oracle.com/technology/tech/oci/instantclient/index.html) instantclient-basic-linux-*.zip und instantclient-sdk-linux-*.zip http://pecl.php.net/get/oci8 (oci8-1.2.3.tgz) Anlegen von mkdir /opt/oracle Auspacken der Zip-Dateien in den Ordner /opt/oracle/instantclient_10_2 Link anlegen cd /opt/oracle/instantclient_10_2 ln -s libclntsh.so.10.1 libclntsh.so Test ob Oracle vorhanden: echo $ORACLE_HOME Anlegen der Pfade in der Datei /etc/profile ORACLE_HOME=/opt/oracle/instantclient_10_2 LD_LIBRARY_PATH=$ORACLE_HOME [...]]]></description>
			<content:encoded><![CDATA[<p>Benötigt wird:</p>
<p>Bei SuSE 10.X</p>
<ul>
<li>autoconf</li>
<li>php5-5.X</li>
<li>apache2-mod_php5-5.X</li>
<li>php5-pdo-5.2.0-10</li>
<li>php5-devel-5.X</li>
<li>php5-pear-5.X</li>
<li>instant client for Oracle <a href="http://www.oracle.com/technology/tech/oci/instantclient/index.html">http://www.oracle.com/technology/tech/oci/instantclient/index.html</a>)</li>
<li>instantclient-basic-linux-*.zip und instantclient-sdk-linux-*.zip</li>
<li><a href="http://pecl.php.net/get/oci8">http://pecl.php.net/get/oci8</a> (oci8-1.2.3.tgz)</li>
</ul>
<p>Anlegen von mkdir /opt/oracle</p>
<p>Auspacken der Zip-Dateien in den Ordner /opt/oracle/instantclient_10_2<br />
Link anlegen<br />
cd /opt/oracle/instantclient_10_2<br />
ln -s libclntsh.so.10.1 libclntsh.so</p>
<p>Test ob Oracle vorhanden:<br />
echo $ORACLE_HOME</p>
<p>Anlegen der Pfade in der Datei /etc/profile</p>
<p>ORACLE_HOME=/opt/oracle/instantclient_10_2<br />
LD_LIBRARY_PATH=$ORACLE_HOME<br />
export ORACLE_HOME<br />
export LD_LIBRARY_PATH</p>
<p>Der gleiche Eintrag muss auch noch in<br />
/etc/init.d/apache2</p>
<p>Tip: vom System abmelden und wieder anmelden</p>
<p>cd /opt/oracle/<br />
wget http://pecl.php.net/get/oci8<br />
pear5 install oci8-1.2.3.tgz</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-Meldung &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
10 source files, building<br />
running: phpize<br />
Configuring for:<br />
PHP Api Version: 20041225<br />
Zend Module Api No: 20060613<br />
Zend Extension Api No: 220060519<br />
Please provide the path to ORACLE_HOME dir. Use &#8216;instantclient,/path/to/instant/client/lib&#8217;<br />
if you&#8217;re compiling against Oracle Instant Client [autodetect] :<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-Meldung &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>Eingeben von: instantclient,/opt/oracle/instantclient_10_2</p>
<p>Nach der Installation:<br />
Die Datei /etc/php5/conf.d/oci.ini anlegen mit dem Inhalt:</p>
<p>; comment out next line to disable oci extension in php<br />
extension=oci8.so</p>
<p>Test der Installation:<br />
php /usr/share/doc/packages/php5/test.php5 | grep oci8</p>
<p>Apache2 Restarten</p>
<p>Testseite anlegen und ausführen:</p>
<p>Da wir keine tnsnamesora verwenden ändert sich der Aufruf:</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-Meldung &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
<span style="color: #0000ff;">&lt; ?php</span></p>
<p><span style="color: #0000ff;">$conn = OCILogon(&#8220;dbuser&#8221;, &#8220;dbpasswd&#8221;, &#8220;//dbserver.host.net/DB&#8221;);</span></p>
<p><span style="color: #0000ff;">$query = &#8216;select table_name from user_tables&#8217;;</span></p>
<p><span style="color: #0000ff;">$stid = OCIParse($conn, $query);<br />
OCIExecute($stid, OCI_DEFAULT);<br />
while ($succ = OCIFetchInto($stid, $row)) {<br />
foreach ($row as $item) {<br />
echo $item.&#8221; &#8220;;<br />
}<br />
echo &#8221;<br />
\n&#8221;;<br />
}</span></p>
<p><span style="color: #0000ff;">OCILogoff($conn);</span></p>
<p><span style="color: #0000ff;">?&gt;</span><br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-Meldung &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>Links:</p>
<p>http://www.oracle.com/technology/tech/php/index.html</p>
<p>http://en.opensuse.org/Howto_build_oci8_extension_module_for_php</p>
]]></content:encoded>
			<wfw:commentRss>http://www.knebler.de/artikel/wie-baue-ich-eine-oci-modul-fur-php5-und-apache2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache: exit signal File size limit exceeded (25)</title>
		<link>http://www.knebler.de/howto/kurztipps/apache-exit-signal-file-size-limit-exceeded-25/</link>
		<comments>http://www.knebler.de/howto/kurztipps/apache-exit-signal-file-size-limit-exceeded-25/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 08:39:51 +0000</pubDate>
		<dc:creator>knebler</dc:creator>
				<category><![CDATA[Kurztipps]]></category>
		<category><![CDATA[SuSE]]></category>
		<category><![CDATA[apache2]]></category>
		<category><![CDATA[customlog]]></category>
		<category><![CDATA[vhost]]></category>

		<guid isPermaLink="false">http://www.knebler.de/stage/?p=192</guid>
		<description><![CDATA[Es gibt manchmal Fehler die eigentlich nicht passieren dürften, bei der Kontrolle der Logfiles stolperte ich auf folgende Fehlermeldung: â€žchild pid 8914 exit signal File size limit exceeded (25)â€œ Die Meldung machte mich stutzig, da ja alle Logfiles in der Datei (SuSE) /etc/logrotate.d/apache2 eingetragen sein sollten. Durch eine kleines Script überprüfte ich mein Apache Konfigurations [...]]]></description>
			<content:encoded><![CDATA[<p>Es gibt manchmal Fehler die eigentlich nicht passieren dürften, bei der Kontrolle der Logfiles stolperte ich auf folgende Fehlermeldung: â€žchild pid 8914 exit signal File size limit exceeded (25)â€œ</p>
<p>Die Meldung machte mich stutzig, da ja alle Logfiles in der Datei (SuSE) /etc/logrotate.d/apache2<br />
eingetragen sein sollten. Durch eine kleines Script überprüfte ich mein Apache Konfigurations File mit:</p>
<p>&#8216;du -h $(cat yast2_vhosts.conf | grep -v &#8220;#&#8221; | grep &#8220;CustomLog&#8221; | awk &#8216;{print $2}&#8217;) | grep &#8220;G&#8221; &#8216;</p>
<p>Spontan tauchten in den Konsole drei Logfiles mit einer Größe von 11Gb auf.<br />
Die Lösung war einfach, Logs verschieben / umbenennen und den Webserver einen Restart verordnen. Die Datei â€ž/etc/logrotate.d/apache2â€œ durch die Fehlenden Einträge ersetzen fertig.</p>
<p>Die einzige Frag die offen bleibt: â€žWarum standen die Logs nicht in der Datei?â€œ<br />
Und die Erkenntnis, das Apache2 nur Files bis 2 GB verarbeiten kann.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.knebler.de/howto/kurztipps/apache-exit-signal-file-size-limit-exceeded-25/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Support für Suse Linux 10 wird eingestellt</title>
		<link>http://www.knebler.de/howto/suse/support-fuer-suse-linux-10-wird-eingestellt/</link>
		<comments>http://www.knebler.de/howto/suse/support-fuer-suse-linux-10-wird-eingestellt/#comments</comments>
		<pubDate>Tue, 25 Sep 2007 13:32:47 +0000</pubDate>
		<dc:creator>knebler</dc:creator>
				<category><![CDATA[SuSE]]></category>

		<guid isPermaLink="false">http://www.knebler.de/stage/howto/suse/support-fuer-suse-linux-10-wird-eingestellt/</guid>
		<description><![CDATA[Wie der Linux-Distributor Novell bekannt gab, endet mit der Freigabe der kommenden Version der OpenSuse-Distribution der offizielle Support für Suse Linux 10. Benutzer der vor zwei Jahren freigegebenen Version 10.0 von Suse Linux sollten spätestens in einem Monat über eine Migration ihrer Systeme auf eine neue Version der Distribution nachdenken. Wie der Hersteller bekannt gab, [...]]]></description>
			<content:encoded><![CDATA[<p>Wie der Linux-Distributor Novell bekannt gab, endet mit der Freigabe der kommenden Version der OpenSuse-Distribution der offizielle Support für Suse Linux 10.</p>
<p>Benutzer der vor zwei Jahren freigegebenen Version 10.0 von Suse Linux sollten spätestens in einem Monat über eine Migration ihrer Systeme auf eine neue Version der Distribution nachdenken. Wie der Hersteller bekannt gab, wird es ab dem 15. November keine weiteren Sicherheitspatches mehr für das alte Produkt geben. Ende November soll dann definitiv Schluss sein. Fortan wird das Produkt offiziell nicht mehr gepflegt und in das Verzeichnis /pub/suse/discontinued verschoben.</p>
<p>Unangetastet bleibt dagegen der Support für die Unternehmens-Varianten von Suse Linux 10. Sowohl Suse Linux Enterprise Desktop 10 als auch die Server-Variante, Suse Linux Enterprise Server 10, werden weiterhin mit Patches versorgt. Der Supportanspruch soll, wie bereits bei älteren Versionen, erst zwei Jahre nach der Freigabe erlöschen. Suse Linux 10.0 wurde im Oktober 2005 veröffentlicht. </p>
<p>
<p class="poweredbyperformancing">Powered by <a href="http://scribefire.com/">ScribeFire</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.knebler.de/howto/suse/support-fuer-suse-linux-10-wird-eingestellt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Postfix Mailverteiler</title>
		<link>http://www.knebler.de/howto/kurztipps/postfix-mailverteiler/</link>
		<comments>http://www.knebler.de/howto/kurztipps/postfix-mailverteiler/#comments</comments>
		<pubDate>Wed, 25 Jul 2007 07:52:46 +0000</pubDate>
		<dc:creator>knebler</dc:creator>
				<category><![CDATA[Kurztipps]]></category>
		<category><![CDATA[SuSE]]></category>

		<guid isPermaLink="false">http://www.knebler.de/stage/howto/kurztipps/postfix-mailverteiler/</guid>
		<description><![CDATA[Wenn ein MX-Server für mehrere Domains zuständig ist und die ankommenden Mail an verschiedene Server weitergeleitet werden sollen, so legt man geeignete Transporttabellen an. Bei Postfix wird das in der Datei /etc/postfix/transport festgelegt. Beispiel: test1-domain.org smtp:mail.mx1-domain.org test2-domain.org smtp:mail.mx2-domain.org test3-domain.org smtp::[172.16.0.10]:25 # Es kann auch der Port und eine IP angegeben werden Danach den Befehl postmap [...]]]></description>
			<content:encoded><![CDATA[<p>Wenn ein MX-Server für mehrere Domains zuständig ist und die ankommenden Mail an verschiedene Server weitergeleitet werden sollen, so legt man geeignete Transporttabellen an.</p>
<p>Bei Postfix wird das in der Datei  /etc/postfix/transport festgelegt.</p>
<p>Beispiel:</p>
<pre>
test1-domain.org    smtp:mail.mx1-domain.org
test2-domain.org    smtp:mail.mx2-domain.org
test3-domain.org    smtp::[172.16.0.10]:25
# Es kann auch der Port und eine IP angegeben werden
</pre>
<p>Danach den Befehl <span style="font-style: italic">postmap /etc/postfix/transport </span>ausführen.</p>
<p>Postfix muss noch über die <span style="font-style: italic">neuen Domains</span> informiert werden. Jede zusätzliche Domain muss einen Eintrag unter  relay_domains haben.<br />
Dies kann man entweder direkt in /etc/postfix/main.cf eintragen, oder<br />
wie bei SuSE üblich, unter /etc/sysconfig/postfix mit der Zeile:</p>
<p>POSTFIX_ADD_RELAY_DOMAINS=&#8221;test1-domain.org, test2-domain.org, test3-domain.org&#8221;</p>
<p>Danach noch ein SuSEconfig  in der Console ausführen.</p>
<p>Virtuelle Domains<br />
Wenn man mehrere E-Mail-Domains auf dem eigenen Server betreiben will, macht man das am besten mit virtuellen Domains.</p>
<p>In der Datei /etc/postfix/main.cf werden die Virtual Tabellen aktiviert, wenn noch nicht vorhanden:</p>
<p>virtual_maps = hash:/etc/postfix/virtual</p>
<p>in /etc/postfix/virtual werden die virtuellen Adressen Benutzern oder anderen E-Mail-Adressen zugewiesen<br />
webmaster@test1-domain.org    admin@test1-domain.org<br />
info@test1-domain.org              admin@test1-domain.org<br />
@test1-domain.org                     @test2-domain.org</p>
<p>Danach den Befehl <span style="font-style: italic">postmap </span>/etc/postfix/virtual<span style="font-style: italic"> </span>ausführen.</p>
<p>Wie werden die Mails nun weitergeleitet?</p>
<ul>
<li>webmaster@test1-domain.org  wird an die Adresse admin@test1-domain.org weitergeleitet</li>
<li>info@test1-domain.org  wird an die Adresse admin@test1-domain.org weitergeleitet</li>
<li>Alle Email an xxx@test1-domain.org gehen 1:1 an xxx@test2-domain.org</li>
</ul>
<p>Es können auch Gruppen über die Alias Funktion gebildet werden.<br />
Kleiner Tip, erst überlegen wie das Konstrukt aussehen soll, dann umsetzen.</p>
<p>Sind alle Ã„nderungen durchgeführt, Postfix neu starten und das Logfile beobachten.</p>
<p class="poweredbyperformancing">Powered by <a href="http://scribefire.com/">ScribeFire</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.knebler.de/howto/kurztipps/postfix-mailverteiler/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Atop als Alternative zu TOP</title>
		<link>http://www.knebler.de/howto/kurztipps/atop-als-alternative-zu-top/</link>
		<comments>http://www.knebler.de/howto/kurztipps/atop-als-alternative-zu-top/#comments</comments>
		<pubDate>Wed, 04 Jul 2007 10:58:00 +0000</pubDate>
		<dc:creator>knebler</dc:creator>
				<category><![CDATA[Kurztipps]]></category>
		<category><![CDATA[SuSE]]></category>

		<guid isPermaLink="false">http://www.knebler.de/stage/howto/kurztipps/atop-als-alternative-zu-top/</guid>
		<description><![CDATA[Atop ist ein verbessertes &#8220;top&#8221;-Kommando. Damit ist es einfacher alle Prozesse auf dem Linuxserver unter Beobachtung zu haben. Bei einem akuten Problem ist es wichtig sich schnell eine Ãœbersicht zu verschaffen. Atop liefert durch diverse Schalter die benötigten Informationen. Parameter: Usage: atop -w file [-S] [-a] [interval [samples]] atop -r [file] [-b hh:mm] [-e hh:mm] [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.atcomputing.nl/Tools/atop">Atop</a> ist ein verbessertes &#8220;top&#8221;-Kommando.<br />
Damit ist es einfacher alle Prozesse auf dem Linuxserver unter Beobachtung zu haben.<br />
Bei einem akuten Problem ist es wichtig sich schnell eine Ãœbersicht zu verschaffen.<br />
<a href="http://www.atcomputing.nl/Tools/atop">Atop</a> liefert durch diverse Schalter die benötigten Informationen.</p>
<p>Parameter:</p>
<pre>
Usage: atop -w  file  [-S] [-a] [interval [samples]]
atop -r [file] [-b hh:mm] [-e hh:mm] [-flags]
</pre>
<p>generic flags:<br />
-a  show or log all processes (i.s.o. active processes only)<br />
-g  show general process-info (default)<br />
-m  show memory-related process-info<br />
-d  show disk-related process-info<br />
-n  show network-related process-info<br />
-s  show scheduling-related process-info<br />
-v  show various process-info (user/group, date/time)<br />
-c  show command-line per process<br />
-u  show totals per user<br />
-p  show totals per program (i.e. same process name)<br />
-C  sort by cpu-consumption (default)<br />
-M  sort by memory-consumption<br />
-D  sort by disk-activity<br />
-N  sort by network-activity<br />
-f  show fixed number of system-statistics<br />
-l  limited lines for system-resources<br />
-1  show average-per-second i.s.o. total values</p>
<p>specific flags for raw logfiles:<br />
-w  write raw data to   file (compressed)<br />
-r  read  raw data from file (compressed)<br />
-S  finish atop automatically before midnight (i.s.o. #samples)<br />
-b  begin showing data from specified time<br />
-e  finish showing data after specified t</p>
<p>Ausgabe:</p>
<pre>
ATOP - myserver1          2006/12/14  10:06:42               10 seconds elapsed
PRC | sys   2.06s | user   2.51s | #proc    128 | #zombie    0 | #exit      1 |
CPU | sys     20% | user     25% | irq       1% | idle     31% | wait    123% |
cpu | sys     11% | user     13% | irq       0% | idle     19% | cpu000 w 56% |
cpu | sys      9% | user     12% | irq       0% | idle     12% | cpu001 w 66% |
MEM | tot  994.8M | free    5.7M | cache  21.0M | buff    2.2M | slab   31.6M |
SWP | tot    2.0G | free    1.7G |              | vmcom 228.7M | vmlim   2.4G |
DSK |         sda | busy     99% | read    1110 | write    256 | avio    7 ms |
NET |   transport | tcpi      46 | tcpo      46 | udpi       0 | udpo       0 |
NET |     network | ipi       46 | ipo       46 | ipfrw      0 | deliv     46 |
NET | eth1     0% | pcki      46 | pcko      46 | si    2 Kbps | so   10 Kbps |

PID  SYSCPU  USRCPU  VGROW  RGROW USERNAME NTHRD ST EXC S  CPU CMD     1/1
12630   1.90s   1.83s     0K     0K gerlof       3 --   - S  37% mtappl
14276   0.04s   0.47s     0K     0K gerlof       0 -E   2 E   5% &lt;grep&gt;
12664   0.00s   0.07s     0K     0K gerlof       1 --   - S   1% browse
12662   0.00s   0.06s     0K     0K gerlof       1 --   - S   1% browse
12663   0.00s   0.05s     0K     0K gerlof       1 --   - S   0% browse
14201   0.05s   0.00s     0K  3896K gerlof       1 --   - D   0% browse
14258   0.03s   0.02s     0K     0K gerlof       1 --   - R   0% atop
14   0.04s   0.00s     0K     0K root         1 --   - S   0% kswapd0
12363   0.00s   0.01s     0K     0K gerlof       1 --   - S   0% sshd
3280   0.00s   0.00s     0K   -64K root         1 --   - S   0% X
14235   0.00s   0.00s     0K   -16K gerlof       1 --   - S   0% sshd
2924   0.00s   0.00s     0K   -48K xfs          1 --   - S   0% xfs
14277   0.00s   0.00s  4608K   600K gerlof       1 N-   - D   0% grep
2627   0.00s   0.00s     0K     0K named        4 --   - S   0% named
2934   0.00s   0.00s     0K    48K root         1 --   - S   0% atd
14233   0.00s   0.00s     0K   -24K root         1 --   - S   0% sshd
14202   0.00s   0.00s     0K   -24K gerlof       1 --   - D   0% find
14203   0.00s   0.00s     0K     0K gerlof       1 --   - S   0% xargs
2222   0.00s   0.00s     0K     0K root         1 --   - S   0% irqbalance
170   0.00s   0.00s     0K     0K root         1 --   - S   0% kjournald
933   0.00s   0.00s     0K     0K root         1 --   - S   0% kjournald
333   0.00s   0.00s     0K     0K root         1 --   - S   0% pdflush
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.knebler.de/howto/kurztipps/atop-als-alternative-zu-top/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CVS Befehlsübersicht</title>
		<link>http://www.knebler.de/artikel/cvs/cvs-befehlsuebersicht-2/</link>
		<comments>http://www.knebler.de/artikel/cvs/cvs-befehlsuebersicht-2/#comments</comments>
		<pubDate>Thu, 28 Jun 2007 07:15:30 +0000</pubDate>
		<dc:creator>knebler</dc:creator>
				<category><![CDATA[CVS]]></category>
		<category><![CDATA[SuSE]]></category>

		<guid isPermaLink="false">http://www.knebler.de/stage/howto/suse/cvs-befehlsuebersicht-2/</guid>
		<description><![CDATA[Checkout: Projektname (Modulname) Import: Projektname (Modulname) Add: Eine neue Datei oder ein neues Verzeichnis zum Repository hinzufügen. Get: Eine lokale Kopie des Repositories anlegen. Commit: ï¿½nderungen ins Repository eintragen. Diff: Unterschiede zwischen lokaler Kopie und Repository anzeigen. Log: CVS Log Information anzeigen. Rdiff: Eine Sammlung von Diffs zur Anzeige von Versionsunterschieden erzeugen. Status: Status der [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-weight: bold">Checkout:</span> Projektname (Modulname)</p>
<p><span style="font-weight: bold">Import:</span> Projektname (Modulname)</p>
<p><span style="font-weight: bold">Add:</span> Eine neue Datei oder ein neues Verzeichnis zum Repository hinzufügen.<br />
<span style="font-weight: bold">Get:</span> Eine lokale Kopie des Repositories anlegen.</p>
<p><span style="font-weight: bold">Commit:</span> ï¿½nderungen ins Repository eintragen.</p>
<p><span style="font-weight: bold">Diff:</span> Unterschiede zwischen lokaler Kopie und Repository anzeigen.</p>
<p><span style="font-weight: bold">Log:</span> CVS Log Information anzeigen.</p>
<p><span style="font-weight: bold">Rdiff:</span> Eine Sammlung von Diffs zur Anzeige von Versionsunterschieden erzeugen.</p>
<p><span style="font-weight: bold">Status:</span> Status der lokalen Dateien im Vergleich zum Repository anzeigen.</p>
<p><span style="font-weight: bold">Update:</span> Die lokale Kopie des Repositories aktualisieren.</p>
<p class="poweredbyperformancing">Powered by <a href="http://scribefire.com/">ScribeFire</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.knebler.de/artikel/cvs/cvs-befehlsuebersicht-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Partimage</title>
		<link>http://www.knebler.de/artikel/partimage-2/</link>
		<comments>http://www.knebler.de/artikel/partimage-2/#comments</comments>
		<pubDate>Thu, 28 Jun 2007 07:14:37 +0000</pubDate>
		<dc:creator>knebler</dc:creator>
				<category><![CDATA[Artikel]]></category>
		<category><![CDATA[Kurztipps]]></category>
		<category><![CDATA[SuSE]]></category>

		<guid isPermaLink="false">http://www.knebler.de/stage/artikel/partimage-2/</guid>
		<description><![CDATA[Partimage beinhaltet zwei Teile den Server und den Client. Der Client wird auf dem System gestarte, welche gesichert werden soll. Der Server wird auf dem Server mit den Datenbereichen gestartet. Das Textmenü am Server wie am Client ist einfach aber übersichtlich angeordnet. Der Server kann je nach Leistung mehrere Clients bedienen. Alle Verbindungen können auch [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal">Partimage beinhaltet zwei Teile den Server und den Client. Der Client wird auf dem System gestarte, welche gesichert werden soll. Der Server wird auf dem Server mit den Datenbereichen gestartet. Das Textmenü am Server wie am Client ist einfach aber übersichtlich angeordnet. Der Server kann je nach Leistung mehrere Clients bedienen. Alle Verbindungen können auch verschlüsselt übertragen werden. Alle Parameter für den Server und den Client finden sich in der Readme Datei. Es ist einfacher den Client zu sichern wenn über eine NotCD gestartet wird. Im Internet finden sich diverse NotCDâ€™s als Iso-Images.</p>
<p class="MsoNormal">Die Software arbeite reibungslos und sehr schnell, auch das zurückspielen der Daten ist zuverlässig und schnell.<span>  </span>Ich verwende die Software schon seid 3 Jahren und bis sehr zufrieden. Im Notfall wird eine schnelle und einfache Methode immer bevorzugt.</p>
<p class="poweredbyperformancing">Powered by <a href="http://scribefire.com/">ScribeFire</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.knebler.de/artikel/partimage-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apachetop</title>
		<link>http://www.knebler.de/linktipps/apachetop-2/</link>
		<comments>http://www.knebler.de/linktipps/apachetop-2/#comments</comments>
		<pubDate>Thu, 28 Jun 2007 07:14:17 +0000</pubDate>
		<dc:creator>knebler</dc:creator>
				<category><![CDATA[Linktipps]]></category>
		<category><![CDATA[Network]]></category>
		<category><![CDATA[SuSE]]></category>

		<guid isPermaLink="false">http://www.knebler.de/stage/linktipps/apachetop-2/</guid>
		<description><![CDATA[Name: Apachetop Beschreibung: Apachetop überwacht das Logfile eines Webserver und gibt per Konsole einen Status zurück. Einsatz: Apachetop wurde Programmiert weil es keine anderen realzeit tools zum Monitoring vom Apache Webserver gab. Apachetop überwacht logfiles die von Apachewebserver generiert werden und erstellt diese in ein Menschenformat lesbare Ausgabe in Echtzeit! Leider ist die Entwicklung 2005 [...]]]></description>
			<content:encoded><![CDATA[<p>Name: Apachetop</p>
<p>Beschreibung: Apachetop überwacht das Logfile eines Webserver und gibt per Konsole einen Status zurück.</p>
<p>Einsatz: Apachetop wurde Programmiert weil es keine anderen realzeit tools zum Monitoring vom Apache Webserver gab. Apachetop überwacht logfiles die von Apachewebserver generiert werden und erstellt diese in ein Menschenformat lesbare Ausgabe in Echtzeit!</p>
<p>Leider ist die Entwicklung 2005 eingestellt worden.<br />Link: <a href="http://spork.qfe3.net/apachetop/">http://spork.qfe3.net/apachetop/</a></p>
<p>RPM: <a href="http://spork.qfe3.net/apachetop/files/RPM/apachetop-0.6-1.i386.rpm">http://spork.qfe3.net/apachetop/files/RPM/apachetop-0.6-1.i386.rpm</a></p>
<p>
<p class="poweredbyperformancing">Powered by <a href="http://scribefire.com/">ScribeFire</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.knebler.de/linktipps/apachetop-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

