<?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>Jaqe&#039;s Blog &#187; shell</title>
	<atom:link href="http://www.jaqe.de/tag/shell/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jaqe.de</link>
	<description>Linux - Webentwicklung - PHP - MySQL - C# - Dies und Das</description>
	<lastBuildDate>Thu, 24 Mar 2011 22:19:33 +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>Ein paar Linux-Tricks und ein Tip für Windows</title>
		<link>http://www.jaqe.de/2008/06/12/ein-paar-linux-tricks-und-ein-tip-fur-windows/</link>
		<comments>http://www.jaqe.de/2008/06/12/ein-paar-linux-tricks-und-ein-tip-fur-windows/#comments</comments>
		<pubDate>Wed, 11 Jun 2008 22:38:39 +0000</pubDate>
		<dc:creator>Jaqe</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[tips&tricks]]></category>

		<guid isPermaLink="false">http://www.jaqe.de/2008/06/12/ein-paar-linux-tricks-und-ein-tip-fur-windows/</guid>
		<description><![CDATA[&#160;Ich habe lange nichts geschrieben, doch nun gehts wieder voran! Diesmal gleich mit ein paar Tricks rund im Linux, die vielleicht nicht jeder kennt. Wie sehe ich, wer oder was auf die Festplatte schreibt? Schnell und einfach hilft es, per sysctl den Kernel anzuweisen, alle aktivit&#228;ten zu protokollieren. Je nach Auslastung des Servers kann das [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;Ich habe lange nichts geschrieben, doch nun gehts wieder voran! Diesmal gleich mit ein paar Tricks rund im Linux, die vielleicht nicht jeder kennt.</p>
<p><b>Wie sehe ich, wer oder was auf die Festplatte schreibt?</b></p>
<p>Schnell und einfach hilft es, per sysctl den Kernel anzuweisen, alle aktivit&auml;ten zu protokollieren. Je nach Auslastung des Servers kann das nat&uuml;rlich innerhalb k&uuml;rzester Zeit die entsprechenden Logfiles zum&uuml;llen, also vorsicht!</p>
<p>Der n&ouml;tige Befehl lautet: <code>sysctl vm.block_dump=1</code></p>
<p>Das ganze kann dann z.B. so aussehen:</p>
<p><code>mysqld(9336): dirtied inode 17911863 (sessions.frm) on sdb1<br />
mysqld(9336): dirtied inode 17911864 (sessions.MYI) on sdb1<br />
mysqld(9336): dirtied inode 17911865 (sessions.MYD) on sdb1<br />
mysqld(9336): dirtied inode 17911872 (user.frm) on sdb1<br />
mysqld(9336): dirtied inode 17911873 (user.MYI) on sdb1<br />
mysqld(9336): dirtied inode 17911874 (user.MYD) on sdb1</code></p>
<p>Ein weiterer Freund hierbei ist <code>fuser</code>. Das Werkzeug kann unter anderem auch alle Prozesse beenden, welche z.B. das Dateisystem auf /home nutzen .. und es kann ebenfalls anzeigen, was im System passiert.</p>
<p><code>fuser -muv /dev/sdb1</code></p>
<p>Dieser Befehl zeigt mir an, was im Moment des Aufrufs auf der Platte sdb und Partition 1 passiert, z.B.:</p>
<p><code>/dev/sdb1:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mysql&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1141 F.c.. (mysql)mysqld<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nobody&nbsp;&nbsp;&nbsp;&nbsp; 6448 F...m (nobody)httpd<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nobody&nbsp;&nbsp;&nbsp;&nbsp; 8278 F...m (nobody)httpd<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nobody&nbsp;&nbsp;&nbsp;&nbsp; 8545 F...m (nobody)httpd<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; qscand&nbsp;&nbsp;&nbsp; 11449 F.c.. (qscand)perl5.8.8</code></p>
<p><b>Sortieren der Useflags bei Gentoo in der make.conf</b></p>
<p>Oft genug kommt es vor, das man hier oder da mal ein USE-Flag in der make.conf setzt und nat&uuml;rlich in keinster weise das neue Flag alphabetisch einsortiert. Das folgende kleine Script gibt alle benutzen USE-Flags aus der make.conf sortiert aus. Ein kurzes copy&amp;paste und schon herrscht wieder Ordnung:</p>
<p><code>cat /etc/make.conf | grep &quot;USE=&quot; | grep -v &quot;^#&quot; | awk '{ for (i = (NF -1); i &gt;= 2; i-- )&nbsp; print $i}' | sort | xargs echo</code></p>
<p>Dieser Tipp stammt aus dem <a href="http://forums.gentoo.org/viewtopic-t-407903.html">Gentoo-Forum</a>.</p>
<p><b>Woher bekomme ich noch mehr Tips und Tricks?</b></p>
<p>Das <a href="http://forums.gentoo.org/index.php">Forum von Gentoo</a> ist nicht nur f&uuml;r Nutzer dieser Distribution geeignet, es enth&auml;lt auch jede Menge Insiderwissen sowie Dokumentationen rund um den Kernel, Filesysteme und Software. Vorbeischaun lohnt sich!</p>
<p>&nbsp;</p>
<p><b>Und was ist mit Windows?</b></p>
<p>F&uuml;r die Windows-Fans hab ich hier noch eine Seite, welche recht zuverl&auml;ssig dabei hilft, eingesetzte Software auf dem aktuellen Stand zu halten. Auf <a href="http://www.filehippo.com/">filehippo.com</a> gibt es den <a href="http://www.filehippo.com/updatechecker/">Update Checker</a>, eine kleine .NET Anwendung, welche das System nach bekannter Software durchsucht und mit einer Versionsliste der filehippo.com Seite vergleicht. Nach der Durchsuchung werden die Ergebnisse im Browser angezeigt und bei Bedarf kann eine neue Version des einen oder anderen Programmes installiert werden. Neben den Downloadlinks wird u.a. auch die genaue Versionsnummer der Software angezeigt. Was mich betrifft, so habe ich bisher keine unerlaubten Aktivit&auml;ten des Tools festgestellt und es tut seine Dienste wie es soll. Ob man den Leuten von filehippo.com vertraut bleibt einem nat&uuml;rlich selbst &uuml;berlassen <img src='http://www.jaqe.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.jaqe.de/2008/06/12/ein-paar-linux-tricks-und-ein-tip-fur-windows/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>login incorrect</title>
		<link>http://www.jaqe.de/2008/03/22/login-incorrect/</link>
		<comments>http://www.jaqe.de/2008/03/22/login-incorrect/#comments</comments>
		<pubDate>Sat, 22 Mar 2008 20:09:11 +0000</pubDate>
		<dc:creator>Jaqe</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://www.jaqe.de/2008/03/22/login-incorrect/</guid>
		<description><![CDATA[&#8220;login incorrect. good bye.&#8221; .. das sagte mir mein Backup-FTP-Server, nachdem ich mein neues Backupscript auf einen anderen Server kopiert hatte. &#8220;Alles klar&#8221; dachte ich mir, hab ich mich beim copy&#38;pasten vom Passwort wohl &#8220;verpasted&#8221;. Also nochmal Buchstabe für Buchstabe abgeglichen, alles richtig. Username ist auch richtig. IP-Adresse ebenfalls .. seltsam. Zur sicherheit habe ich [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;login incorrect. good bye.&#8221; .. das sagte mir mein Backup-FTP-Server, nachdem ich mein neues Backupscript auf einen anderen Server kopiert hatte. &#8220;Alles klar&#8221; dachte ich mir, hab ich mich beim copy&amp;pasten vom Passwort wohl &#8220;verpasted&#8221;. Also nochmal Buchstabe für Buchstabe abgeglichen, alles richtig. Username ist auch richtig. IP-Adresse ebenfalls .. seltsam. Zur sicherheit habe ich nun nochmals per Hand verucht, eine FTP-Verbindung aufzubaun und siehe da, es ging. Vielleicht ein Bug mit ncftp auf diesem Server? Ich habe ncftpput also angewiesen, ein Logfile der FTP-Konversation zu schreiben, aber dort sah alles richtig aus. Langsam verstand ich echt nur noch Bahnhof.</p>
<p>Dann habe ich mir per tcpdump den kompletten TCP Datenverkehr zwischen meinem Server und dem FTP-Server mitschneiden lassen, das Datenfile dann auf meinen Arbeitsrechner kopiert und per <a href="http://www.wireshark.org/" target="_blank">Wireshark</a> geöffnet. <a href="http://www.wireshark.org/" target="_blank">Wireshark</a> kann neben vielen, vielen Dingen auch gezielt TCP-Verbindungen aus einer vielzahl von Verbindung ausfiltern und die enthaltenen Daten anzeigen. Ein kurzer Blick zeigte: die FTP-Verbindung läuft genauso ab wie sie sollte, trotzdem antwortete der Server mit &#8220;login incorrect&#8221;.</p>
<p>Doch die Lösung des Rätsels war nur Sekunden entfernt: die Anzeige der Konversation in richtung FTP-Server zeigte, dass sich hinter dem Passswort ein Leerzeichen eingeschlichen hatte, was natürlich das Passwort ungültig machte. Minutenlanges rätseln und dann so eine einfache Lösung, mit einem Overkill an Aufwand herausgefunden.</p>
<p>Fazit: Hätte ich einfach mal geprüft, ob hinter dem Passwort ein Leerzeichen steht, so hätte ich mir die ganze Arbeit ersparen können! Manchmal sind es eben die kleinen Dinge, die einen verrückt machen <img src='http://www.jaqe.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.jaqe.de/2008/03/22/login-incorrect/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Wer hat noch nicht, wer Spamt noch mal?</title>
		<link>http://www.jaqe.de/2008/01/30/wer-hat-noch-nicht-wer-spamt-noch-mal/</link>
		<comments>http://www.jaqe.de/2008/01/30/wer-hat-noch-nicht-wer-spamt-noch-mal/#comments</comments>
		<pubDate>Wed, 30 Jan 2008 22:52:51 +0000</pubDate>
		<dc:creator>Jaqe</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mail]]></category>
		<category><![CDATA[Qmail]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[Spam]]></category>

		<guid isPermaLink="false">http://www.jaqe.de/2008/01/30/wer-hat-noch-nicht-wer-spamt-noch-mal/</guid>
		<description><![CDATA[Wer kennt das nicht: 100 Mails abgeholt, 99 davon sortiert der Mailclient (z.B. Thunderbird) direkt als Spam aus, die letzte verbliebene Mail ist tatsächlich kein Spam. Der Kampf gegen den Spam ist ein Wettrennen, das von den &#8220;guten&#8221; nicht gewonnen werden kann. Ich renne trotzdem mit und habe neben Spamassassin nun noch ein eigenes kleines [...]]]></description>
			<content:encoded><![CDATA[<p>Wer kennt das nicht: 100 Mails abgeholt, 99 davon sortiert der Mailclient (z.B. Thunderbird) direkt als Spam aus, die letzte verbliebene Mail ist tatsächlich kein Spam. Der Kampf gegen den Spam ist ein Wettrennen, das von den &#8220;guten&#8221; nicht gewonnen werden kann. Ich renne trotzdem mit und habe neben Spamassassin nun noch ein eigenes kleines Plugin für den <a href="http://qmail-spp.sourceforge.net/" title="Qmail SPP" target="_blank">SPP-Patch für Qmail</a> geschrieben. Dieser Patch erweitert qmail-smtpd um Plugins, welche in jeder beliebigen Sprache (Shell, C, PHP, Perl, Python &#8230;) geschrieben werden können, hauptsache die Shell kann es ausführen.</p>
<p>Mein Plugin prüft direkt nach dem &#8220;DATA&#8221;-Befehl des Senders dessen IP-Adresse auf vorhandensein in der RBL-Liste von <a href="http://www.spamcop.net" title="Spamcop" target="_blank">spamcop.net</a>. Dort sind IP-Adressen von Spamversendersystemen gelistet inklusive Gründe, wieso die IP-Adresse gelistet wurde. Natürlich ist man als Serverbetreiber von der Korrektheit des Anbieters und auf dessen Sorgfalt angewiesen, nach langer Laufzeit konnte ich allerdings bisher keine falschen Einordnungen feststellen. Anhand des folgenden Bildchens erkennt man sehr gut, dass durch den Einsatz des IP-Checks rund 50% des Spamaufkommens schon direkt bei der Kommunikation mit dem Mailserver abgelehnt werden konnte.</p>
<p><img src="http://www.jaqe.de/wp-content/uploads/2008/01/1agencyde-spamstats-month.png" alt="Spamstatistik" /></p>
<p>Mein Plugin kann <a href="http://www.jaqe.de/wp-content/uploads/2008/01/smtp_ip_check.sh" title="Qmail-SPP Plugin">hier heruntergeladen</a> werden. Geschrieben wurde es mit der Shell und ist relativ einfach erweiterbar und verständlich. Benutzung auf eigene Gefahr!<a href="http://www.jaqe.de/wp-content/uploads/2008/01/smtp_ip_check.sh" title="SMTP IP Check für Qmail-SPP"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jaqe.de/2008/01/30/wer-hat-noch-nicht-wer-spamt-noch-mal/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Webseite nach UTF-8</title>
		<link>http://www.jaqe.de/2007/06/18/webseite-nach-utf-8/</link>
		<comments>http://www.jaqe.de/2007/06/18/webseite-nach-utf-8/#comments</comments>
		<pubDate>Mon, 18 Jun 2007 09:16:57 +0000</pubDate>
		<dc:creator>Jaqe</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[utf8]]></category>

		<guid isPermaLink="false">http://www.jaqe.de/2007/06/18/webseite-nach-utf-8/</guid>
		<description><![CDATA[Hier ein kleines Bash-Script von mir, um eine komplette Webseite (bestehend aus PHP, Javascript und Templates) von ISO-8859-1 zu UTF-8 zu konvertieren. Das Script läuft bei mir bestens, ich gebe aber absolut keine Garantie! #!/bin/sh echo Konvertiere .php zu UTF-8 for i in `find -name '*.php' &#124; xargs` do iconv -f ISO8859-1 -t UTF-8 $i [...]]]></description>
			<content:encoded><![CDATA[<p>Hier ein kleines Bash-Script von mir, um eine komplette Webseite (bestehend aus PHP, Javascript und Templates) von ISO-8859-1 zu UTF-8 zu konvertieren. Das Script läuft bei mir bestens, ich gebe aber absolut keine Garantie!</p>
<pre>
#!/bin/sh

echo Konvertiere .php zu UTF-8
for i in `find -name '*.php' | xargs`
do
        iconv -f ISO8859-1 -t UTF-8 $i &gt; "$i"5
        mv "$i"5 $i
done

echo Konvertiere .inc zu UTF-8
for i in `find -name '*.inc' | xargs`
do
        iconv -f ISO8859-1 -t UTF-8 $i &gt; "$i"5
        mv "$i"5 $i
done

echo Konvertiere .tpl zu UTF-8
for i in `find -name '*.tpl' | xargs`
do
        iconv -f ISO8859-1 -t UTF-8 $i &gt; "$i"5
        mv "$i"5 $i
done

echo Konvertiere .js zu UTF-8
for i in `find -name '*.js' | xargs`
do
        iconv -f ISO8859-1 -t UTF-8 $i &gt; "$i"5
        mv "$i"5 $i
done</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.jaqe.de/2007/06/18/webseite-nach-utf-8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

