<?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>Is it just &#12415;? &#187; Linux</title>
	<atom:link href="http://blog.himmelrath.net/category/tec/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.himmelrath.net</link>
	<description>ungeordneter Unfug</description>
	<lastBuildDate>Sun, 25 Jul 2010 08:00:00 +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>[Linux] Festplatte sicher löschen</title>
		<link>http://blog.himmelrath.net/tec/comp/festplatte-loeschen/</link>
		<comments>http://blog.himmelrath.net/tec/comp/festplatte-loeschen/#comments</comments>
		<pubDate>Thu, 06 May 2010 20:41:24 +0000</pubDate>
		<dc:creator>Jens</dc:creator>
				<category><![CDATA[Computer]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Festplatte]]></category>
		<category><![CDATA[Löschen]]></category>

		<guid isPermaLink="false">http://blog.himmelrath.net/?p=618</guid>
		<description><![CDATA[Wenn man eine Festplatte wegwirft oder verkauft, will man ja normalerweise sicher gehen, dass keine persönlichen Daten mehr von dieser Platte ausgelesen werden können - einfaches "Löschen" reicht da nicht, weil "löschen" nur bedeutet, dass der Verweis im Dateisystem auf die Daten entfernt wird, jedoch die Daten selbst werden nicht <a href="http://blog.himmelrath.net/tec/comp/festplatte-loeschen/">[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Wenn man eine Festplatte wegwirft oder verkauft, will man ja normalerweise sicher gehen, dass keine persönlichen Daten mehr von dieser Platte ausgelesen werden können &#8211; einfaches &#8220;Löschen&#8221; reicht da nicht, weil &#8220;löschen&#8221; nur bedeutet, dass der Verweis im Dateisystem auf die Daten entfernt wird, jedoch die Daten selbst werden nicht überschrieben (das wäre nämlich ziemlich langsam). Um nun also sicher zu gehen, kann man die Festplatte mit Daten voll schreiben, das ist einfach und effektiv, denn aller Paranoia zum Trotz hat es bisher niemand geschafft einfach überschriebene Daten wiederherzustellen.</p>
<p>(Im folgenden muss man natürlich /dev/DEVICE noch durch das echte Festplatten-Gerät ersetzen, also sowas wie /dev/sdb oder /dev/sdc &#8211; aber bitte vorher sicher gehen, dass man nicht die falsche Platte platt macht z.B. indem man die Platte mountet und dann mit &#8220;df -h&#8221; oder &#8220;mount&#8221; überprüft welches Gerät wirklich an der Stelle hängt. Aber Vorsicht: Nicht im normalen System das Gerät raussuchen, dann mit Livesystem von CD starten und die Platte überschreiben, da könnte sich der Gerätenahme ändern.)</p>
<p>Die einfache Version schreibt die Festplatte mit Nullen voll:</p>
<p><code>dd if=/dev/zero of=/dev/DEVICE bs=1M</code></p>
<p>bzw. mit pseudo-zufälligen Daten:</p>
<p><code>dd if=/dev/urandom of=/dev/DEVICE bs=1M</code></p>
<p>Wichtig: /dev/<span style="text-decoration: underline;"><strong>u</strong></span>random benutzen, sonst kann es ziemlich lange dauern, /dev/random wartet nämlich bis das System wirklich halbwegs zufällige Daten gesammelt hat und gibt diese dann aus, während /dev/<span style="text-decoration: underline;"><strong>u</strong></span>random (u für &#8220;unlocked&#8221;) nicht wartet und dann weniger sichere Zufallszahlen liefert &#8211; was bei dieser Verwendung aber relativ Schnuppe ist.</p>
<p>Mit Hilfe des bs-Parameters kann man ein wenig an der Geschwindigkeit schrauben &#8211; einfach mal ein paar Werte ausprobieren und 20 Sekunden schreiben lassen, dann mit Strg-C abbrechen &#8211; dd zeigt dann an wie schnell geschrieben wurde in MB/sec.</p>
<p>Wenn man die Festplatte gleich noch testen will während man sie überschreibt, gibt es folgende Möglichkeit:</p>
<p><code>badblocks -w -t random /dev/DEVICE</code></p>
<p>Dieses Programm schreibt nämlich nicht nur alle Sektoren voll, sonder überprüft hinterher auch ob die Daten genau so wieder gelesen werden können. Also die perfekte Möglichkeit Daten zu vernichten, wenn man eine Festplatte verkaufen oder selbst weiter nutzen möchte. Diese Methode ist natürlich langsamer als die dd-Variante oben.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.himmelrath.net/tec/comp/festplatte-loeschen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Linux] CPU Taktung</title>
		<link>http://blog.himmelrath.net/tec/linux/cpu-taktung-unter-linux/</link>
		<comments>http://blog.himmelrath.net/tec/linux/cpu-taktung-unter-linux/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 08:50:47 +0000</pubDate>
		<dc:creator>Jens</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[CPU Frequenz]]></category>
		<category><![CDATA[Untertakten]]></category>

		<guid isPermaLink="false">http://blog.himmelrath.net/?p=266</guid>
		<description><![CDATA[Mit Hilfe des Befehls
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
kann man sich ausgeben lassen welche Taktfrequenzen von der CPU unterstützt werden. Da man ja nun mal keine unterschiedlichen CPUs auf dem Board hat, sollten die ausgegebenen Werte für alle CPUS des Systems gelten, auch wenn man nur "cpu0" (also die erste CPU) abgefragt hat.

Die Ausgabe <a href="http://blog.himmelrath.net/tec/linux/cpu-taktung-unter-linux/">[...]</a>]]></description>
			<content:encoded><![CDATA[<p class="remark">Dies ist einer der Einträge in meinem Blog, der wohl hauptsächlich deshalb da ist, weil ich es wohl selbst wieder vergessen und daher nachschlagen müssen werde.</p>
<p>Mit Hilfe des Befehls<br />
<code>cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies</code><br />
kann man sich ausgeben lassen welche Taktfrequenzen von der CPU unterstützt werden. Da man ja nun mal keine unterschiedlichen CPUs auf dem Board hat, sollten die ausgegebenen Werte für alle CPUS des Systems gelten, auch wenn man nur &#8220;cpu0&#8243; (also die erste CPU) abgefragt hat.</p>
<p>Die Ausgabe kann dann z.B. so aussehen:<br />
<code>2000000 1800000 1000000</code></p>
<p>Dies sind die unterstützten (funktionierenden) Werte, die man dann z.B. dem Programm <strong>cpufreq-selector</strong> übergeben kann:<br />
<code>sudo cpufreq-selector -f 1000000</code></p>
<p>Obiger Befehl stellt meine CPU in den Stromsparmodus. (<strong>sudo</strong> davor nicht vergessen, denn an der CPU-Geschwindigkeit darf nur root herumspielen)</p>
<p>Natürlich geht das ganze auch deutlich einfacher indem man sich eines der unzähligen Programme wie den <a href="http://library.gnome.org/users/cpufreq-applet/stable/cpufreq-applet-introduction.html.en">CPU Frequency Scaling Monitor</a> (gehört zu <a href="http://www.gnome.org/">Gnome</a>) installiert und es bequem über den Desktop einstellt. Spätestens wenn man das mal per ssh auf einem entfernten Rechner einstellen will hilft dieser manuelle Weg jedoch sehr.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.himmelrath.net/tec/linux/cpu-taktung-unter-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Komprimierung mit 7z</title>
		<link>http://blog.himmelrath.net/tec/comp/komprimierung-mit-7z/</link>
		<comments>http://blog.himmelrath.net/tec/comp/komprimierung-mit-7z/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 10:03:18 +0000</pubDate>
		<dc:creator>Jens</dc:creator>
				<category><![CDATA[Computer]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[7z]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[Komprimierung]]></category>
		<category><![CDATA[Scripts]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://blog.himmelrath.net/?p=251</guid>
		<description><![CDATA[Ich komprimiere meine Dateien fast immer mit 7z, nur wenn ich Quellcode weitergebe nutze ich das traditionelle tar.bz2. Vor allem habe ich mir angewöhnt alles was ich an CD und DVD Images besitze vor dem verschieben auf die Backupplatte noch einmal zu komprimieren - der Zugriff muss ja nicht schnell <a href="http://blog.himmelrath.net/tec/comp/komprimierung-mit-7z/">[...]</a>]]></description>
			<content:encoded><![CDATA[<p class="remark">Dies ist einer der Einträge in meinem Blog, der wohl hauptsächlich deshalb da ist, weil ich es wohl selbst wieder vergessen und daher nachschlagen müssen werde.</p>
<p>Ich komprimiere meine Dateien fast immer mit 7z, nur wenn ich Quellcode weitergebe nutze ich das traditionelle tar.bz2. Vor allem habe ich mir angewöhnt alles was ich an CD und DVD Images besitze vor dem verschieben auf die Backupplatte noch einmal zu komprimieren &#8211; der Zugriff muss ja nicht schnell gehen, sondern im Optimalfall nicht einmal nötig sein.</p>
<p>Da ich in diesem Fall keine Rücksicht auf irgend wen nehmen muss, kann ich die Parameter so wählen, dass ein für meinen Rechner optimale Komprimierung herauskommt &#8211; auch wenn es sich deshalb auf Rechnern mit wenig Arbeitsspeicher nicht mehr entpacken lassen würde.</p>
<p>Mein Kommando zur Komprimierung lautet (Achtung, nicht auf Systemen nutzen die weniger als 4GB Hauptspeicher haben):<br />
<code>nice -n 10 7z a -mx=9 -mmt=16 -t7z -mfb=258 -md=384m -ms=8g "[ZIEL].7z" "[DATEN]"</code></p>
<p>Kurze Erklärung:</p>
<table class="descriptionTable" border="0">
<tbody>
<tr>
<th>Kommandoteil</th>
<th>Bedeutung</th>
</tr>
<tr>
<td>nice -n 10</td>
<td>Starte das folgende Kommando mit geringer Priorität. Das bedeutet, dass man nebenher noch relativ gut arbeiten kann, bzw. andere Prozesse weniger ausgebremst werden.</td>
</tr>
<tr>
<td>7z a</td>
<td>Füge Daten zu einem Archiv hinzu (a steht für &#8220;add&#8221;).</td>
</tr>
<tr>
<td>-mx=9</td>
<td>Benutze die maximale Kompressionsstufe.</td>
</tr>
<tr>
<td>-mmt=16</td>
<td>Bestimmt die Anzahl der benutzten Threads. Alternativ kann man auch -mmt=on angeben, dann bestimmt 7z selbst die Anzahl der Threads. Bei meinen Tests war jedoch die Anzahl 16 (ich habe einen Dualcore Prozessor) seltsamerweise fast 10% schneller als die Angabe on.</td>
</tr>
<tr>
<td>-t7z</td>
<td>Sagt 7z, dass es das 7z-Format benutzen soll. Eigentlich überflüssig wenn wir den Archivnamen auf .7z enden lassen. Da 7z aber auch so ziemlich alle anderen halbwegs frei verfügbaren Komprimierungsverfahren unterstützt, gehe ich hier noch einmal sicher, dass auch wirklich das effiziente 7z benutzt wird.</td>
</tr>
<tr>
<td>-mfb=258</td>
<td>Die Wortgröße wird hier festgelegt. Faustregel: Je höher die Wortgröße, desto besser die Kompression. Dies ist, soweit ich weiß, der derzeitig maximal zulässige Wert.</td>
</tr>
<tr>
<td>-md=384m</td>
<td>Die Wörterbuchgröße. Auch heir gilt die gleiche Faustregel wie bei der Wortgröße, allerdings kann man hier noch deutlich größer werden. In diesem Fall ist die Wörterbuchgröße 384 MB &#8211; das bedeutet, dass man beim Entpacken schon mindestens 512 MB RAM haben muss und beim Komprimieren ungefähr das Zehnfache der Wörterbuchgröße. Ich habe 6 GB RAM und benutze daher diese Einstellung wenn ich über Nacht die Backups komprimiere. Sobald ich parallel noch Firefox, Thunderbird und Eclipse (um mal Speicherfresser zu nennen) benutzen will, setze ich den Wert auf unter 300m.</td>
</tr>
<tr>
<td>-ms=8g</td>
<td>Die maximale Größe der soliden Blöcke &#8211; auch hier gilt die gleiche Faustregel, auch wenn der Einfluss mit steigender Größe immer geringer wird. Alternativ sollte ein -ms=on auch dafür Sorgen, dass ein ganzes DVD-Image als ein großer Block (&#8220;solid&#8221;) komprimiert wird.</td>
</tr>
<tr>
<td>&#8220;[ZIEL].7z&#8221;</td>
<td>Das Zielarchiv. Es muss nicht auf .7z enden, aber das hat sich aus praktischen Gründen eingebürgert. Unter Windows sollte es natürlich auf jeden Fall so heißen, da Windows das Archiv nicht automatisch als solches erkennen kann.</td>
</tr>
<tr>
<td>&#8220;[DATEN]&#8220;</td>
<td>Das ist dann die Datei, die Dateien oder das Verzeichnis das komprimiert werden soll. Die Anführungsstriche kommen allerdings nicht um mehrere Dateien oder Verzeichnisse, sondern jeweils um eins (damit es keine Probleme mit Leerzeichen gibt).</td>
</tr>
</tbody>
</table>
<p>Um dann viele Images über Nacht zu komprimieren benutze ich folgendes Mini-Script:<br />
<code><br />
#!/bin/bash<br />
for i in *.iso; do<br />
  nice -n 10 7z a -mx=9 -mmt=16 -t7z -mfb=258 -md=384m -ms=8g "$i.7z" "$i"<br />
  if [[ $? -eq 0 &amp;&amp; -f "$i.7z" ]]; then<br />
    rm "$i"<br />
  fi<br />
done<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.himmelrath.net/tec/comp/komprimierung-mit-7z/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multi-Desktop-Background-Creator&#8230;</title>
		<link>http://blog.himmelrath.net/misc/multi-desktop-background-creator/</link>
		<comments>http://blog.himmelrath.net/misc/multi-desktop-background-creator/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 08:53:51 +0000</pubDate>
		<dc:creator>Jens</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Sonstiges]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[Bildbearbeitung]]></category>
		<category><![CDATA[imagemagick]]></category>
		<category><![CDATA[Scripts]]></category>
		<category><![CDATA[Wallpaper]]></category>

		<guid isPermaLink="false">http://blog.himmelrath.net/?p=167</guid>
		<description><![CDATA[Ich arbeite entweder mit zwei Rechnern nebeneinander die über Synergy verbunden sind oder an einem Rechner mit zwei Monitoren. Bei zwei Monitoren an einem Rechner sieht das Hintergrundbild immer schlecht aus. Deshalb habe ich ein Bash-Script geschrieben dem man beliebig viele Monitorauflösungen von links nach rechts übergibt und einen Ordner <a href="http://blog.himmelrath.net/misc/multi-desktop-background-creator/">[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Ich arbeite entweder mit zwei Rechnern nebeneinander die über <a href="http://synergy2.sourceforge.net/" target="_blank">Synergy</a> verbunden sind oder an einem Rechner mit zwei Monitoren. Bei zwei Monitoren an einem Rechner sieht das Hintergrundbild immer schlecht aus. Deshalb habe ich ein Bash-Script geschrieben dem man beliebig viele Monitorauflösungen von links nach rechts übergibt und einen Ordner in dem die Bilder gesucht werden, dass dann zufällig aus den passenden Bildern ein großes passendes Bild zusammenstellt. Zusätzlich kann man konfigurieren ob nur passende Auflösungen verwendet werden sollen oder die Bilder nur verkleinert oder auch vergrößert werden sollen um auf den Monitor zu passen.</p>
<p>Hier die Beschreibung der Kommandozeilenoptionen:</p>
<pre style="font-size: 0.8em;">        -----===== createMultiDesktopWallpaper =====-----

 "createMultiDesktopWallpaper --of=OUTFILE sf=SEARCHFOLDER  RES1 RES2 [RES3 [...]]"

Concatenates the images in the given order and writes the result to the file
specified by --of

Obligatory parameters:
 --of=         The out-file, meaning the file to write the concatenated image
               to. This file will be overwritten without notice.
 --sf=         The folder to search in for images.
 RES[1-x]      The resolution of the Desktops for which the background should
               be created from left to right. The RES-parameters must have the
               form of WIDTHxHEIGHT (e.g. '1280x1024'). There have to be at least
               two RES-parameters

Optional parameters:
 --mode=       The mode for choosing the images. Possible values:
                 exact  - For every resolution an image with exactly the given
                          size is used. No resizing of images.
                 exact2 - Like exact, but needs a preordered search-folder. Use the
                          orderImagesByResolution script to order it. (Faster)
                 down   - Uses images that are at least as big as the given size
                          and resizes bigger images. This might lead to images being
                          cropped because they have a differnt ratio.
                 any    - Resizes any picture to the given resolution. This might
                          look bad if you have for example a 24" monitor and some
                          640x480 images in the search-folder
               Default: exact
 --background= The color of the background if the pictures do not have the same
               size. (default: black)
 --same        Use the same image for all resolutions. Only works with mode 'down'
               or 'any'
 --align=      Vertical alignment of images that are smaller that the biggest
               image given
 --verbose     Output additional information

Example:
   "createMultiDesktopWallpaper --of=bg.png --sf=Pictures 1920x1200 1280x1024"</pre>
<p>Um das Script zu benutzen benötigt man ImageMagick und die Scripte <a href="http://blog.himmelrath.net/wp-content/uploads/2009/08/createMultiDesktopWallpaper">createMultiDesktopWallpaper</a> und <a href="http://blog.himmelrath.net/wp-content/uploads/2009/08/concatenateImages">concatenateImage</a>. Wenn man die Geschwindigkeit optimieren will, kann man das <a href="http://blog.himmelrath.net/wp-content/uploads/2009/08/orderImagesByResolution">orderImagesByResolution</a> Script benutzen um die Bilder vorher zu ordnen und dann den Modus &#8220;exact2&#8243; nutzen.</p>
<p>Das Ergebnis sieht dann bei 1920&#215;1200 und 1280&#215;1024 z.B. so aus: (Aus zwei Photos die ich gemacht habe)</p>
<div id="attachment_172" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.himmelrath.net/wp-content/uploads/2009/08/Generated-Wallpaper.jpg"><img class="size-medium wp-image-172" title="Generated Wallpaper" src="http://blog.himmelrath.net/wp-content/uploads/2009/08/Generated-Wallpaper-300x112.jpg" alt="Generated Wallpaper" width="300" height="112" /></a><p class="wp-caption-text">Generiertes Wallpaper</p></div>
<p>Eine andere Sprache als bash wäre bezüglich Caching sicher sinnvoll gewesen, aber nicht bei meiner kleinen Auswahl an Wallpapern lohnt sich ein Caching Mechanismus noch nicht. Natürlich lässt sich ein Dateibasiertes Caching auch mit bash realisieren, aber besonders elegant geht das nunmal auch nicht.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.himmelrath.net/misc/multi-desktop-background-creator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Universelle Bashscript Vorlage</title>
		<link>http://blog.himmelrath.net/tec/prog/universelle-bashscript-vorlage/</link>
		<comments>http://blog.himmelrath.net/tec/prog/universelle-bashscript-vorlage/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 14:43:22 +0000</pubDate>
		<dc:creator>Jens</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[Scripts]]></category>
		<category><![CDATA[Template]]></category>
		<category><![CDATA[Vorlage]]></category>

		<guid isPermaLink="false">http://blog.himmelrath.net/?p=164</guid>
		<description><![CDATA[Ich schreibe immer mal wieder kleine Bashscripte für Alltagsaufgaben wie Backups und kleinere Aufgaben für die sich einfach keine großen Programme lohnen. Was mir immer gefehlt hat ist eine grundsätzliche Vorgehensweise die ich auf etwas größere Scripte anwenden kann um Parameter zu verarbeiten und eine Hilfe auszugeben.

Heute habe ich mir <a href="http://blog.himmelrath.net/tec/prog/universelle-bashscript-vorlage/">[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Ich schreibe immer mal wieder kleine Bashscripte für Alltagsaufgaben wie Backups und kleinere Aufgaben für die sich einfach keine großen Programme lohnen. Was mir immer gefehlt hat ist eine grundsätzliche Vorgehensweise die ich auf etwas größere Scripte anwenden kann um Parameter zu verarbeiten und eine Hilfe auszugeben.</p>
<p>Heute habe ich mir mal die Mühe gemacht eines meiner größeren Scripte so umzuschreiben, dass es als allgemeine Vorlage genutzt werden kann. Vielleicht hilft es ja jemandem.</p>
<p>Das <a href="/wp-content/uploads/2009/08/bashScriptTemplate">Bash Script Template</a> kann man sich <a href="/wp-content/uploads/2009/08/bashScriptTemplate">hier</a> herunterladen.</p>
<p>Das &#8220;Besondere&#8221; an dieser Scriptvorlage ist dass für die Hilfe alle Texte am Anfang des Script als Variablen definiert werden und die Parameter mit der vorgegebenen Methode in beliebiger Reihenfolge an das Programm übergeben werden können.</p>
<p>Über Rückmeldungen und Verbesserungsvorschläge freue ich mich immer.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.himmelrath.net/tec/prog/universelle-bashscript-vorlage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
