<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://linupedia.org/wiki/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=K4m1K4tz3</id>
	<title>Linupedia.org - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://linupedia.org/wiki/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=K4m1K4tz3"/>
	<link rel="alternate" type="text/html" href="https://linupedia.org/opensuse/Spezial:Beitr%C3%A4ge/K4m1K4tz3"/>
	<updated>2026-05-15T23:10:53Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=LIRC&amp;diff=27848</id>
		<title>LIRC</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=LIRC&amp;diff=27848"/>
		<updated>2010-08-15T18:29:52Z</updated>

		<summary type="html">&lt;p&gt;K4m1K4tz3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox_Software|&lt;br /&gt;
 Name= LIRC Linux - Infrared Remote Control&lt;br /&gt;
|Screenshot= &lt;br /&gt;
|Beschreibung= Ein Programm zur Benutzung von IR-Fernbedinungen&lt;br /&gt;
|Hersteller= Karsten Scheibler &amp;amp; Christoph Bartelmus&lt;br /&gt;
|AktuelleVersion= 0.8.1&lt;br /&gt;
|AktuelleVersionFreigabeDatum= 7. Januar 2007&lt;br /&gt;
|Betriebssystem= Linux&lt;br /&gt;
|Kategorie= Fernbedienung&lt;br /&gt;
|Lizenz= [[GNU General Public License|GPL]]&lt;br /&gt;
|Deutsch= Nein&lt;br /&gt;
|Website= http://www.lirc.org&lt;br /&gt;
}}&lt;br /&gt;
Author: [http://www.linux-club.de/profile.php?mode=viewprofile&amp;amp;u=2025 PrinzEisenherz1]&amp;lt;br&amp;gt;&lt;br /&gt;
Autor von Punkt 2 und 4:  [http://www.linux-club.de/profile.php?mode=viewprofile&amp;amp;u=CowClaw CowClaw]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''LIRC''' bedeutet für '''L'''inux '''I'''nfrared '''R'''emote '''C'''ontrol, und ist für den Einsatz einer Fernbedienung am PC unter Linux gedacht. &lt;br /&gt;
&amp;lt;!--Hier wäre noch eine kurze Einleitung ganz gut, in der beschrieben wird, was LIRC ist --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieses Howto behandelt die Installation und Konfiguration von Lirc unter SUSE.&amp;lt;br&amp;gt;&lt;br /&gt;
Es wurde erfolgreich unter SuSE 10.0 - 10.2 getestet und dürfte auch bei den 9er-Versionen funktionieren.&amp;lt;br&amp;gt;&lt;br /&gt;
Dieses Howto beinhaltet folgende Fernbedienungsvarianten:&lt;br /&gt;
* MEDION X10 Funkfernbedienung (USB)&lt;br /&gt;
* IR-Empfänger über serielle Schnittstelle (COM)&lt;br /&gt;
wobei der Schwerpunkt hier bei MEDION X10 liegt.&lt;br /&gt;
&lt;br /&gt;
== Vorbereitende Maßnahmen ==&lt;br /&gt;
&lt;br /&gt;
Als erstes muß man mit YAST, Smart oder vergleichbaren Paketmanager folgende Pakete installieren:&amp;lt;br&amp;gt;&lt;br /&gt;
* lirc&lt;br /&gt;
* lirc-kmp-''&amp;lt;Kerneltyp&amp;gt;''&amp;lt;br&amp;gt;&lt;br /&gt;
Bei ''lirc-kmp-&amp;lt;Kerneltyp&amp;gt;'' handelt es sich um ein Paket mit zusätzlichen Treibermodulen. Hier ist es wichtig das es zum installierten Kernel passt.&amp;lt;br&amp;gt;&lt;br /&gt;
Sollte man nicht wissen welcher Kernel installiert ist, dann kann man dies auf der Konsole mit ''uname -r'' herausfinden.&amp;lt;br&amp;gt;&lt;br /&gt;
z.B. &amp;lt;br&amp;gt; &lt;br /&gt;
 2.6.18.2-34-default&lt;br /&gt;
Bei diesem Beispiel handelt es sich um einen default-Kernel. Also muß man in diesem Fall das Paket ''lirc-kmp-default'' auswählen.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lirc Kernel-Module selbst bauen ==&lt;br /&gt;
&lt;br /&gt;
Solltet ihr kein zu eurem installierten Kernel passendes Paket mit Kernel-Modulen finden, müsst ihr&lt;br /&gt;
es euch selbst bauen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hier eine Step-By-Step Anleitung:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voraussetzungen: Die Pakete kernel-source, lirc, automake, autoconf und libtool müssen installiert sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Zunächst stellen wir sicher, dass der Link /usr/src/linux auf den richtigen Kernel zeigt.&lt;br /&gt;
das machen wir folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
In der Konsole geben wir den folgenden Befehl ein: &lt;br /&gt;
 # uname -r&lt;br /&gt;
dort kommt dann soetwas raus: &lt;br /&gt;
 2.6.21.4-default&lt;br /&gt;
&lt;br /&gt;
Nun vergleichen wir. &lt;br /&gt;
Bitte folgendes in der Konsole eingeben:&lt;br /&gt;
 #cd /usr/src&lt;br /&gt;
 #ls -l | grep linux&lt;br /&gt;
dort steht dann hoffentlich etwas wie:&lt;br /&gt;
 linux -&amp;gt; linux-2.6.21.4-default&lt;br /&gt;
sehr gut, der Link zeigt also auf den richtigen Kernel!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Nun loggen wir uns am CVS-Server des Lirc Projektes ein, und laden die Quellen herunter.&amp;lt;br&amp;gt;&lt;br /&gt;
Dazu geben wir als root folgendes in der Konsole ein.&lt;br /&gt;
&lt;br /&gt;
 #cd /usr/local/src&lt;br /&gt;
 #cvs -d:pserver:anonymous@lirc.cvs.sourceforge.net:/cvsroot/lirc login&lt;br /&gt;
 #cvs -z8 -d:pserver:anonymous@lirc.cvs.sourceforge.net:/cvsroot/lirc co lirc&lt;br /&gt;
Sehr schön, weiter mit Schritt 3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Nun kompilieren wir die Quellen, die wir gerade heruntergeladen haben.&lt;br /&gt;
&lt;br /&gt;
Dazu geben wir folgendes als root in der Konsole ein.&lt;br /&gt;
 #cd lirc&lt;br /&gt;
 #./autogen.sh&lt;br /&gt;
&lt;br /&gt;
 #./setup.sh&lt;br /&gt;
Hier müssen wir nun den Treiber für unsere Empfänger angeben. &lt;br /&gt;
Haben wir das gemacht, speichern wir das ganze mit einem Klick auf save &amp;amp; run configure.&lt;br /&gt;
Configure sollte nun durchlaufen, wenn alle Tools die es dazu braucht installiert sind.&lt;br /&gt;
&lt;br /&gt;
also weiter..&lt;br /&gt;
&lt;br /&gt;
 #make&lt;br /&gt;
Wenn make ohne Fehler durchläuft ist schon fast alles geschafft.&lt;br /&gt;
&lt;br /&gt;
Nun bauen wir mit checkinstall ein rpm Paket.&lt;br /&gt;
 #checkinstall&lt;br /&gt;
Wir müssen lediglich noch den Namen des Paketes von lirc, nach lirc-kmp ändern.&lt;br /&gt;
&lt;br /&gt;
Dieses können wir nun mit yast oder einem anderen Paketmanager wie smart installieren.&lt;br /&gt;
&lt;br /&gt;
Dann wünsche ich euch mal gutes Gelingen.&amp;lt;br&amp;gt; &lt;br /&gt;
[http://www.linux-club.de/profile.php?mode=viewprofile&amp;amp;u=CowClaw CowClaw]&lt;br /&gt;
&lt;br /&gt;
== Installation MEDION X10 ==&lt;br /&gt;
&lt;br /&gt;
USB-Funkempfanger anschließen und mit ''lsmod'' prüfen welche Module vom System automatisch geladen werden.&amp;lt;br&amp;gt;&lt;br /&gt;
z.B&lt;br /&gt;
 # lsmod&lt;br /&gt;
 snd_seq_device          	7948	2 snd_seq,snd_rawmidi&lt;br /&gt;
 snd                    		50692	12 snd_pcm_oss,snd_mixer_oss,snd_seq,snd_via82xx,snd_ac97_codec, ...                                                                         &lt;br /&gt;
 soundcore            	         8672	1 snd&lt;br /&gt;
 uhci_hcd            		27280	0&lt;br /&gt;
 usbcore              		108804  5 ati_remote,hci_usb,ehci_hcd,uhci_hcd&lt;br /&gt;
 ide_cd                		35360  	0&lt;br /&gt;
 cdrom                  		32288  	1 ide_cd      &amp;lt;br&amp;gt;&lt;br /&gt;
Wie man hier erkennen kann wird automatisch das Treibermodul ''ati_remote'' geladen. Dies ist aber nicht das passende für den MEDION X10. &amp;lt;br&amp;gt;&lt;br /&gt;
Um das Modul zu entladen gibt man als Root in der Konsole folgendes ein:&lt;br /&gt;
 rmmod ati_remote&lt;br /&gt;
Damit das Modul ''ati_remote'' beim nächsten Neustart bzw. beim erneuten anstecken des USB-Empfängers nicht wieder automatisch geladen wird, setzt man es in die Blacklist. &amp;lt;br&amp;gt;&lt;br /&gt;
Die Blacklist befindet sich um Unterordner&lt;br /&gt;
 /etc/modprobe.d/&lt;br /&gt;
Dazu mit einem Editor die Datei blacklist editieren.&lt;br /&gt;
 # mcedit /etc/modprobe.d/blacklist&lt;br /&gt;
&lt;br /&gt;
Dort folgenden Eintrag hinzufügen&lt;br /&gt;
&lt;br /&gt;
 blacklist ati_remote&lt;br /&gt;
&lt;br /&gt;
Als nächstes läd man die benötigten Module für MEDION X10:&lt;br /&gt;
 modprobe lirc_dev&lt;br /&gt;
 modprobe lirc_atiusb&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob die Module geladen wurden:&lt;br /&gt;
 # lsmod | grep lirc | grep -v&lt;br /&gt;
 lirc_atiusb	            16160	0&lt;br /&gt;
 lirc_dev            	    13284	1 lirc_atiusb&lt;br /&gt;
 usbcore        	            108804	5 lirc_atiusb,hci_usb,ehci_hcd,uhci_hcd&lt;br /&gt;
&lt;br /&gt;
Wie man erkennen kann wurden beide Module erfolgreich geladen.&amp;lt;br&amp;gt;&lt;br /&gt;
Als nächstes muss man die Config-Datei von Lirc anpassen. Diese befindet sich bei SuSE im Verzeichnis ''/etc/sysconfig/''&amp;lt;br&amp;gt;&lt;br /&gt;
Dazu einfach mit einem Editor z.B. MCEdit die Datei als root editieren.&lt;br /&gt;
&lt;br /&gt;
 # mcedit /etc/sysconfig/lirc&lt;br /&gt;
&lt;br /&gt;
Dort muss man dann folgende Änderungen durchführen:&lt;br /&gt;
&lt;br /&gt;
 LIRCD_DEVICE=&amp;quot;&amp;quot;&lt;br /&gt;
ändern auf&lt;br /&gt;
 LIRCD_DEVICE=&amp;quot;/dev/lirc0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
und dann noch&lt;br /&gt;
&lt;br /&gt;
 LIRC_MODULE=&amp;quot;&amp;quot;&lt;br /&gt;
ändern auf&lt;br /&gt;
 LIRC_MODULE=&amp;quot;lirc_atiusb&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dadurch wird beim starten des Runlevels ''lirc'' auch gleich das Modul ''lirc_atiusb'' mitgeladen.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation eines Empfängers einer Hauppauge TV Karte ==&lt;br /&gt;
&lt;br /&gt;
Dieser Abschnitt behandelt die Konfiguration von lirc um einen Hauppauge TV Karten IR Empfänger benutzen zu können.&lt;br /&gt;
&lt;br /&gt;
Voraussetzungen: lirc ist installiert, lirc kernelmodule sind installiert (Vorgehensweise oben beschrieben).&lt;br /&gt;
&lt;br /&gt;
Zunächst muss man ein Paar Änderungen an der Konfigurationsdatei vornehmen.&lt;br /&gt;
Dazu einfach mit einem Editor z.B. MCEdit die Datei als root editieren.&lt;br /&gt;
&lt;br /&gt;
 # mcedit /etc/sysconfig/lirc&lt;br /&gt;
&lt;br /&gt;
Dort muss man dann folgende Änderungen durchführen:&lt;br /&gt;
&lt;br /&gt;
 LIRCD_DEVICE=&amp;quot;&amp;quot;&lt;br /&gt;
ändern zu&lt;br /&gt;
 LIRCD_DEVICE=&amp;quot;/dev/lirc0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 LIRC_MODULE=&amp;quot;&amp;quot;&lt;br /&gt;
ändern zu&lt;br /&gt;
 LIRC_MODULE=&amp;quot;lirc_i2c&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nun brauchen wir eine lircd.conf die zu Hauppauge TV-Karten passt.&lt;br /&gt;
Wir nehmen die folgenden Zeilen und speichern sie in Datei dieser Datei.&lt;br /&gt;
 /etc/lircd.conf&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 begin remote&lt;br /&gt;
&lt;br /&gt;
  name  hauppauge_pvr&lt;br /&gt;
  bits           13&lt;br /&gt;
  flags RC5|CONST_LENGTH&lt;br /&gt;
  eps            30&lt;br /&gt;
  aeps          100&lt;br /&gt;
&lt;br /&gt;
  one           969   811&lt;br /&gt;
  zero          969   811&lt;br /&gt;
  plead        1097&lt;br /&gt;
  gap          114605&lt;br /&gt;
  toggle_bit      2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      begin codes&lt;br /&gt;
          Power                    0x00000000000017FD&lt;br /&gt;
          Go                       0x00000000000017FB&lt;br /&gt;
          1                        0x00000000000017C1&lt;br /&gt;
          2                        0x00000000000017C2&lt;br /&gt;
          3                        0x00000000000017C3&lt;br /&gt;
          4                        0x00000000000017C4&lt;br /&gt;
          5                        0x00000000000017C5&lt;br /&gt;
          6                        0x00000000000017C6&lt;br /&gt;
          7                        0x00000000000017C7&lt;br /&gt;
          8                        0x00000000000017C8&lt;br /&gt;
          9                        0x00000000000017C9&lt;br /&gt;
          Back/Exit                0x00000000000017DF&lt;br /&gt;
          0                        0x00000000000017C0&lt;br /&gt;
          Menu                     0x00000000000017CD&lt;br /&gt;
          Red                      0x00000000000017CB&lt;br /&gt;
          Green                    0x00000000000017EE&lt;br /&gt;
          Yellow                   0x00000000000017F8&lt;br /&gt;
          Blue                     0x00000000000017E9&lt;br /&gt;
          Ch+                      0x00000000000017E0&lt;br /&gt;
          Ch-                      0x00000000000017E1&lt;br /&gt;
          Vol-                     0x00000000000017D1&lt;br /&gt;
          Vol+                     0x00000000000017D0&lt;br /&gt;
          Ok                       0x00000000000017E5&lt;br /&gt;
          Mute                     0x00000000000017CF&lt;br /&gt;
          Blank                    0x00000000000017CC&lt;br /&gt;
          Full                     0x00000000000017FC&lt;br /&gt;
          Rewind                   0x00000000000017F2&lt;br /&gt;
          Play                     0x00000000000017F5&lt;br /&gt;
          Forward                  0x00000000000017F4&lt;br /&gt;
          Record                   0x00000000000017F7&lt;br /&gt;
          Stop                     0x00000000000017F6&lt;br /&gt;
          Pause                    0x00000000000017F0&lt;br /&gt;
          Replay                   0x00000000000017E4&lt;br /&gt;
          Skip                     0x00000000000017DE&lt;br /&gt;
      end codes&lt;br /&gt;
&lt;br /&gt;
 end remote&lt;br /&gt;
&lt;br /&gt;
Nun laden wir testweise das Kernelmodul. Als root in einer Konsole geben wir folgendes ein.&lt;br /&gt;
 #modprobe lirc_i2c&lt;br /&gt;
&lt;br /&gt;
Nun können wir lirc mit folgendem befehl starten.&lt;br /&gt;
 #lircd&lt;br /&gt;
&lt;br /&gt;
Nun testen wir einmal ob ein Signal ankommt&lt;br /&gt;
 #irw&lt;br /&gt;
und tippen ein bischen auf der Fernbedienung rum.&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.linux-club.de/profile.php?mode=viewprofile&amp;amp;u=CowClaw CowClaw]&lt;br /&gt;
&lt;br /&gt;
== Installation IR-Empfänger über serielle Schnittstelle (COM) ==&lt;br /&gt;
&lt;br /&gt;
Dieser Abschnitt behandelt die Installation eines IR-Empfängers über serielle Schnittstelle (COM).&amp;lt;br&amp;gt;&lt;br /&gt;
Solch ein Empfänger kann mit etwas Geschick und geringen Kosten selbst gebaut werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Eine gute Anleitung findest sich auf folgender Website:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.nasauber.de/linux_know_how/lang/lirc/ Bauanleitung IR-Empfänger]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Um den IR-Empfänger mit ''lirc'' verwenden zu können, muss man die COM-Schnittstelle noch anpassen.&amp;lt;br&amp;gt;&lt;br /&gt;
Dazu muss man als erstes das Programm ''setserial'' installieren. Dies ist bei SuSE mit dabei. Man kanns auch mit Smart, opt, oder ähnlichem&amp;lt;br&amp;gt;&lt;br /&gt;
installieren. Dann gibt man als root in der Konsole folgenden Befehl ein:&amp;lt;br&amp;gt;&lt;br /&gt;
 # setserial /dev/ttyS0 uart none&lt;br /&gt;
&lt;br /&gt;
''/dev/ttyS0'' steht hierbei für die COM1-Schnittstelle.&amp;lt;br&amp;gt;&lt;br /&gt;
Damit dies auch bei einem Neustart geschieht, fügt man diesen Befehl am besten in folgende Datei ein:&lt;br /&gt;
 /etc/init.d/boot.local&lt;br /&gt;
Somit wird es bei jedem Neustart automatisch durchgeführt.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als nächstes läd man als root das Modul für den seriellen IR-Empfänger:&lt;br /&gt;
 # modprobe lirc_serial&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob die Module geladen wurden:&lt;br /&gt;
 # lsmod | grep lirc | grep -v&lt;br /&gt;
 &lt;br /&gt;
Hier sollte dann eine Ausgabe erscheinen wo ''lirc_dev'' und ''lirc_serial'' erscheinen. &amp;lt;br&amp;gt;&lt;br /&gt;
Als nächstes muss man die Config-Datei von Lirc anpassen. Diese befindet sich bei SuSE im Verzeichnis ''/etc/sysconfig/''&amp;lt;br&amp;gt;&lt;br /&gt;
Dazu einfach mit einem Editor z.B. MCEdit die Datei als root editieren.&lt;br /&gt;
&lt;br /&gt;
 # mcedit /etc/sysconfig/lirc&lt;br /&gt;
&lt;br /&gt;
Dort muss man dann folgende Änderungen durchführen:&lt;br /&gt;
&lt;br /&gt;
 LIRCD_DEVICE=&amp;quot;&amp;quot;&lt;br /&gt;
ändern auf&lt;br /&gt;
 LIRCD_DEVICE=&amp;quot;/dev/lirc0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Gegebenenfalls muss hier ''/dev/lirc'' verwendet werden. Am besten ausprobieren.&amp;lt;br&amp;gt;&lt;br /&gt;
und dann noch&lt;br /&gt;
&lt;br /&gt;
 LIRC_MODULE=&amp;quot;&amp;quot;&lt;br /&gt;
ändern auf&lt;br /&gt;
 LIRC_MODULE=&amp;quot;lirc_serial&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dadurch wird beim starten des Runlevels ''lirc'' auch gleich das Modul ''lirc_serial'' mitgeladen.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Die lircd.conf Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
Damit lirc die eingehenden Signale der Fernbedienung auch den passenden Tasten zuordnen kann, benötigt man noch eine passende ''lircd.conf''.&amp;lt;br&amp;gt;&lt;br /&gt;
Diese kann man für die gebräuchlichsten Fernbedienungen von der lirc-Website runterladen.&lt;br /&gt;
http://lirc.sourceforge.net/remotes/ &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
Beispiel lircd.conf MEDION X10:&amp;lt;br&amp;gt;&lt;br /&gt;
 # Please make this file available to others&lt;br /&gt;
 # by sending it to &amp;lt;lirc@bartelmus.de&amp;gt;&lt;br /&gt;
 #&lt;br /&gt;
 # this config file was automatically generated&lt;br /&gt;
 # using lirc-0.7.0(atiusb) on Fri Feb 18 01:53:46 2005&lt;br /&gt;
 #&lt;br /&gt;
 # contributed by FUX 2005-02-17&lt;br /&gt;
 #&lt;br /&gt;
 # brand: Medion&lt;br /&gt;
 # model no. of remote control: RF Remote Control&lt;br /&gt;
 #                              FCC ID: B4S20016398&lt;br /&gt;
 # devices being controlled by this remote:&lt;br /&gt;
 #&lt;br /&gt;
   begin remote&lt;br /&gt;
   name  Medion_X10&lt;br /&gt;
   bits           16&lt;br /&gt;
   eps            30&lt;br /&gt;
   aeps          100&lt;br /&gt;
   one             0     0&lt;br /&gt;
   zero            0     0&lt;br /&gt;
   pre_data_bits   8&lt;br /&gt;
   pre_data       0x14&lt;br /&gt;
   post_data_bits  16&lt;br /&gt;
   post_data      0x0&lt;br /&gt;
   gap          227928&lt;br /&gt;
   toggle_bit      0&lt;br /&gt;
 begin codes&lt;br /&gt;
 3                        0x000000000000E40F&lt;br /&gt;
 2                        0x000000000000E30E&lt;br /&gt;
 1                        0x000000000000E20D&lt;br /&gt;
 4                        0x000000000000E510&lt;br /&gt;
 5                        0x000000000000E611&lt;br /&gt;
 6                        0x000000000000E712&lt;br /&gt;
 7                        0x000000000000E813&lt;br /&gt;
 8                        0x000000000000E914&lt;br /&gt;
 9                        0x000000000000EA15&lt;br /&gt;
 0                        0x000000000000EC17&lt;br /&gt;
 ok                       0x000000000000F31E&lt;br /&gt;
 up                       0x000000000000EF1A&lt;br /&gt;
 down                     0x000000000000F722&lt;br /&gt;
 right                    0x000000000000F41F&lt;br /&gt;
 left                     0x000000000000F21D&lt;br /&gt;
 del                      0x000000000000F520&lt;br /&gt;
 ren                      0x0000000000000B36&lt;br /&gt;
 red                      0x0000000000000732&lt;br /&gt;
 green                    0x0000000000000833&lt;br /&gt;
 yellow                   0x0000000000000934&lt;br /&gt;
 blue                     0x0000000000000A35&lt;br /&gt;
 txt                      0x000000000000EB16&lt;br /&gt;
 ch-                      0x000000000000E10C&lt;br /&gt;
 ch+                      0x000000000000E00B&lt;br /&gt;
 vol+                     0x000000000000DE09&lt;br /&gt;
 vol-                     0x000000000000DD08&lt;br /&gt;
 mute                     0x000000000000D500&lt;br /&gt;
 tv                       0x000000000000012C&lt;br /&gt;
 vcr                      0x000000000000022D&lt;br /&gt;
 dvd                      0x000000000000D904&lt;br /&gt;
 music                    0x000000000000DB06&lt;br /&gt;
 radio                    0x000000000000032E&lt;br /&gt;
 photo                    0x000000000000DA05&lt;br /&gt;
 preview                  0x000000000000042F&lt;br /&gt;
 list                     0x0000000000000530&lt;br /&gt;
 desktop                  0x0000000000000631&lt;br /&gt;
 setup                    0x000000000000F01B&lt;br /&gt;
 snapshot                 0x000000000000ED18&lt;br /&gt;
 acquire                  0x0000000000000C37&lt;br /&gt;
 play                     0x000000000000FA25&lt;br /&gt;
 reward                   0x000000000000F924&lt;br /&gt;
 forward                  0x000000000000FB26&lt;br /&gt;
 stop                     0x000000000000FD28&lt;br /&gt;
 rec                      0x000000000000FC27&lt;br /&gt;
 pause                    0x000000000000FE29&lt;br /&gt;
 skipr                    0x000000000000F621&lt;br /&gt;
 skipf                    0x000000000000F823&lt;br /&gt;
 dvdmenu                  0x000000000000EE19&lt;br /&gt;
 dvdaudio                 0x0000000000000F3A&lt;br /&gt;
 off                      0x000000000000D702&lt;br /&gt;
 chsearch                 0x000000000000F11C&lt;br /&gt;
 fullscreen               0x0000000000000E39&lt;br /&gt;
 editimage                0x0000000000000D38&lt;br /&gt;
 end codes&lt;br /&gt;
 end remote&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt startet man ''lirc''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zum starten des Runlevels ''lirc'' als root folgenden Befehl ausführen:&lt;br /&gt;
 # rclirc start&lt;br /&gt;
mit&lt;br /&gt;
 # rclirc status&lt;br /&gt;
überprüfen ob ''lirc'' gestartet wurde.&amp;lt;br&amp;gt;&lt;br /&gt;
Damit der Runlevel ''lirc'' bei jedem Systemstart automatisch gestartet wird führt man als root folgendes aus:&amp;lt;br&amp;gt;&lt;br /&gt;
 # chkconfig lirc on&lt;br /&gt;
&lt;br /&gt;
Es werden durch ''lirc'' jetzt im Verzeichnis ''/dev'' folgende Major-Dateien angelegt:&lt;br /&gt;
 lirc&lt;br /&gt;
 lirc0&lt;br /&gt;
Diese muss man noch mit den passenden Rechten versehen damit auch ein normaler Nutzer ''lirc'' nutzen kann.&lt;br /&gt;
Dieses erziehlt man als root in der Konsole mit folgenden Befehlen:&lt;br /&gt;
 # chmod 666 /dev/lirc&lt;br /&gt;
 # chmod 666 /dev/lirc0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um jetzt die Fernbedienung zu testen, startet man das Hilfsprogramm ''irw''&lt;br /&gt;
&lt;br /&gt;
 # cd /usr/bin&lt;br /&gt;
 # ./irw&lt;br /&gt;
&lt;br /&gt;
Wenn jetzt eine Taste auf der Fernbedienung gedrückt wird, dann gibt ''irw'' die Bezeichnung und den Tastencode aus! Dann weiß man das die lirc-Konfiguration läuft.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Steuern von Kaffeine, XMMS, Amarok, usw mit lircrc ==&lt;br /&gt;
&lt;br /&gt;
Um mit ''lirc'' auch Programme (z.B. XMMS) steuern zu können benötigt man, zwei im Hintergrund laufende, deamons.&amp;lt;br&amp;gt;&lt;br /&gt;
Diese müssen in der Konsole als normaler Nutzer aufgerufen werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Bevor diese aber gestartet werden muss man im Verzeichnis ''/etc'' noch die Datei ''lircrc'' anlegen.&lt;br /&gt;
Diese befüllt man mit den Steuerbefehlen für z.B XMMS.&amp;lt;br&amp;gt;&lt;br /&gt;
Um XMMS mit ''lirc'' steuern zu können muss noch zusätzlich das Paket ''xmms-plugins'' installiert werden und in XMMS unter ''Optionen -&amp;gt; Plugins -&amp;gt; Allgemeine Plugins'' das Lircplugin aktiviert werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Beispiel lircrc:&lt;br /&gt;
&lt;br /&gt;
 begin irexec&lt;br /&gt;
 begin&lt;br /&gt;
 prog   = irexec&lt;br /&gt;
 button = music&lt;br /&gt;
 config = xmms &amp;amp;&lt;br /&gt;
 mode   = xmms&lt;br /&gt;
 repeat = 0&lt;br /&gt;
 end&lt;br /&gt;
 begin&lt;br /&gt;
 prog   = irexec&lt;br /&gt;
 button = radio&lt;br /&gt;
 config = amarok &amp;amp;&lt;br /&gt;
 mode   = amarok&lt;br /&gt;
 repeat = 0&lt;br /&gt;
 end&lt;br /&gt;
 end irexec&lt;br /&gt;
 begin xmms&lt;br /&gt;
 begin&lt;br /&gt;
 button = play&lt;br /&gt;
 prog = xmms&lt;br /&gt;
 config = play&lt;br /&gt;
 end&lt;br /&gt;
 begin&lt;br /&gt;
 prog = xmms&lt;br /&gt;
 button = pause&lt;br /&gt;
 config = pause&lt;br /&gt;
 end&lt;br /&gt;
 begin&lt;br /&gt;
 prog = xmms&lt;br /&gt;
 button = stop&lt;br /&gt;
 config = stop&lt;br /&gt;
 end&lt;br /&gt;
 begin&lt;br /&gt;
 prog = xmms&lt;br /&gt;
 button = skipf&lt;br /&gt;
 config = next&lt;br /&gt;
 end&lt;br /&gt;
 begin&lt;br /&gt;
 prog = xmms&lt;br /&gt;
 button = skipr&lt;br /&gt;
 config = prev&lt;br /&gt;
 end&lt;br /&gt;
 begin&lt;br /&gt;
 prog = xmms&lt;br /&gt;
 button = forward&lt;br /&gt;
 config = FWD 3&lt;br /&gt;
 repeat = 2&lt;br /&gt;
 end&lt;br /&gt;
 begin&lt;br /&gt;
 prog = xmms&lt;br /&gt;
 button = reward&lt;br /&gt;
 config = BWD 3&lt;br /&gt;
 repeat = 2&lt;br /&gt;
 end&lt;br /&gt;
 begin&lt;br /&gt;
 prog = xmms&lt;br /&gt;
 button = off&lt;br /&gt;
 config = QUIT&lt;br /&gt;
 mode = irexec&lt;br /&gt;
 repeat = 0&lt;br /&gt;
 end&lt;br /&gt;
 end xmms&lt;br /&gt;
 begin amarok&lt;br /&gt;
 begin&lt;br /&gt;
 prog   = irexec&lt;br /&gt;
 button = play&lt;br /&gt;
 config = dcop amarok player playPause&lt;br /&gt;
 end&lt;br /&gt;
 ....&lt;br /&gt;
 begin&lt;br /&gt;
 prog   = irexec&lt;br /&gt;
 button = off&lt;br /&gt;
 config = dcop amarok MainApplication-Interface quit&lt;br /&gt;
 mode   = irexec&lt;br /&gt;
 repeat = 0&lt;br /&gt;
 end&lt;br /&gt;
 end amarok&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Mit folgenden Befehlen werden jetzt die beiden Deamons als normaler Nutzer gestartet:&amp;lt;br&amp;gt;&lt;br /&gt;
 /usr/bin/irexec -d /etc/lircrc&lt;br /&gt;
 /usr/bin/irxevent &amp;amp;&lt;br /&gt;
&lt;br /&gt;
um diese automatisch bei jedem Neustart zu laden schreibt man am besten ein bash-Script und legt dieses in &lt;br /&gt;
 /home/''&amp;lt;Nutzername&amp;gt;''/.kde/Autostart/&lt;br /&gt;
&lt;br /&gt;
Beispiel bash-Script ''lircstart.sh'':&amp;lt;br&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 sleep 2&lt;br /&gt;
 /usr/bin/irexec -d /etc/lircrc&lt;br /&gt;
 /usr/bin/irxevent &amp;amp;&lt;br /&gt;
 kdialog --passivepopup &amp;quot;IREXEC und IRXEVENT wurden gestartet&amp;quot; 3&lt;br /&gt;
&lt;br /&gt;
Diese muss dann noch ausführbar gemacht werden:&lt;br /&gt;
&lt;br /&gt;
 # chmod +x /home/''&amp;lt;Nutzername&amp;gt;''/.kde/Autostart/lircstart.sh&lt;br /&gt;
&lt;br /&gt;
== Probleme mit Lirc ==&lt;br /&gt;
&lt;br /&gt;
Wenn man bei laufendem Lirc den USB-Funkempfänger entfernt dann wird innerhalb ganz kurzer Zeit das Logfile ''lircd'' unter ''/var/log/''&lt;br /&gt;
mit Fehlermeldungen überflutet. Bei einer Größe von über 2GB wird dann der Runlevel ''lirc'' abgeschossen und kann nicht mehr gestartet werden. &amp;lt;br&amp;gt;&lt;br /&gt;
Um dies zu vermeiden sollte man ''lirc'' nicht als Runlevel starten. Also nicht mit ''chkconfig lirc on'' auf Autostart setzten, sondern mit folgendem Script nur auf Bedarf starten bzw beenden:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lirc_StartStop.sh&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #&lt;br /&gt;
 # Lirc starting script writen by Schneider Johnny 06112006&lt;br /&gt;
 # Dieses Schript prüft wie groß das Log-File von Lirc ist und löscht es gegebenenfalls.&lt;br /&gt;
 # Dann wird geprüft ob sich der Funkempfänger am USB-Slot befinden und startet dann Lirc.&lt;br /&gt;
 # Wenn der Empfänger entfernt wird dann lässt sich der Lirc-deamon beenden.&lt;br /&gt;
 # Variablen erstellen&lt;br /&gt;
 GEFUNDEN=&lt;br /&gt;
 FS=                 # Leere Variable für die Dateigrösse (FileSize)&lt;br /&gt;
 DATEI=20000000     # Variable für den Vergleich erzeugen und mit Wert belegen&lt;br /&gt;
 # 1. Abschnitt&lt;br /&gt;
 # prüfen ob Log-Datei lircd vorhanden ist&lt;br /&gt;
 if (test -f /var/log/lircd);&lt;br /&gt;
 then&lt;br /&gt;
 #echo &amp;quot;Datei gefunden!&amp;quot;&lt;br /&gt;
 # Dateigrösse von /var/log/lircd ermitteln und mit Hilfe&lt;br /&gt;
 # der Kommandosubstitution in eine Variable schreiben.&lt;br /&gt;
 FS=$(ls -l /var/log/lircd | tr -s &amp;quot; &amp;quot; | cut -d &amp;quot; &amp;quot; -f 5)&lt;br /&gt;
 # Bildschirmausgabe über Dateigröße&lt;br /&gt;
 #echo &amp;quot;Die Log-Datei Lircd ist $FS Byte groß.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
 if (test $FS -gt $DATEI);then&lt;br /&gt;
 #echo &amp;quot;Die Datei ist zu groß und wird jetzt gelöscht ...&amp;quot;&lt;br /&gt;
 kdesu rm /var/log/lircd&lt;br /&gt;
 #else&lt;br /&gt;
 #echo &amp;quot;Die Dateigröße ist ok&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
 # Es wird geprüft ob der Funkempfänger Medion X10 angeschlossen ist&lt;br /&gt;
 if ( ps x | grep lirc | grep -v grep );then&lt;br /&gt;
 kdesu killall lircd&lt;br /&gt;
 kdialog --passivepopup &amp;quot;Der Lirc-Deamon wurde beendet !!!!&amp;quot; 4 &lt;br /&gt;
 elif ( lsusb | grep X10 | grep -v grep );then&lt;br /&gt;
 kdesu rclirc start&lt;br /&gt;
 /usr/bin/irexec -d /etc/lircrc&lt;br /&gt;
 /usr/bin/irxevent &amp;amp;&lt;br /&gt;
 kdialog --passivepopup &amp;quot;IREXEC und IRXEVENT wurden gestartet&amp;quot; 3&lt;br /&gt;
 #echo &amp;quot;Lirc-deamon wird gestartet ...&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
 exit&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt kann man bequem vom Sofa aus seine Programme steuern.&amp;lt;br&amp;gt;&lt;br /&gt;
Viel Glück und viel Spass bei der Umsetzung!&lt;br /&gt;
&lt;br /&gt;
== Quellen und weiterführende Links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.lirc.org Lirc-Homepage]&lt;br /&gt;
* [http://lirc.sourceforge.net/remotes/ lircd.conf von unterstützten Fernbedienungen]&lt;br /&gt;
* [http://sourceforge.net/projects/lirc/ SourceForge-Projektseite]&lt;br /&gt;
* http://de.wikipedia.org/wiki/LIRC&lt;br /&gt;
* [[Lircd Musterkonfigurationen| Musterkonfigurationen für LIRC]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Hardware|Zurück zu Hardware]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>K4m1K4tz3</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Apache&amp;diff=24267</id>
		<title>Apache</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Apache&amp;diff=24267"/>
		<updated>2008-02-10T15:12:26Z</updated>

		<summary type="html">&lt;p&gt;K4m1K4tz3: toten Link ersetzt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Software&lt;br /&gt;
|Name= [[Bild:Apache-logo.png]]&lt;br /&gt;
|Screenshot= [[Bild:Apache.jpg|250px]]&lt;br /&gt;
|Beschreibung= Nach dem ersten Start auf [[openSUSE]] 10.2 mit [[Firefox]] 2.0.3 und [[OSX Desktop]]&lt;br /&gt;
|Hersteller= Apache Software Foundation&lt;br /&gt;
|AktuelleVersion= 2.2.4&lt;br /&gt;
|AktuelleVersionFreigabeDatum= 10. Januar 2007)&amp;lt;br /&amp;gt;2.0.59 (27. Juli 2006)&amp;lt;br /&amp;gt;1.3.37 (27. Juli 2006&lt;br /&gt;
|Betriebssystem= Mac OS X, NetBSD, FreeBSD, OpenBSD, Linux, Windows, NetWare, Amiga, OS/400, Solaris, u.a.&lt;br /&gt;
|Kategorie= [[LAMP]]&lt;br /&gt;
|Lizenz= Apache License v2.0&lt;br /&gt;
|Deutsch= nein&lt;br /&gt;
|Website= [http://httpd.apache.org/ httpd.apache.org]&lt;br /&gt;
}}&lt;br /&gt;
Autor: [http://www.yehudi.de Yehudi]&lt;br /&gt;
{{Box Test||&lt;br /&gt;
* [[openSUSE]] 10.3&lt;br /&gt;
* [[openSUSE]] 10.2&lt;br /&gt;
* SUSE Linux 10.0&lt;br /&gt;
* SUSE Linux 9.3&lt;br /&gt;
* SUSE Linux 9.2&lt;br /&gt;
* SUSE Linux 9.1&lt;br /&gt;
* SUSE Linux 9.0&lt;br /&gt;
* [[Ubuntu]] 6.10&lt;br /&gt;
* [[Debian]] 4.0&lt;br /&gt;
}}&lt;br /&gt;
'''Anmerkung:''' Der Apache ist ein sehr umpfangreiches Thema, welches alleine schon ein Wiki füllt, ich beginne einfach damit Lösungen reinzusetzen.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
[[Bild:YaST2 Web- und LAMP-Server Schemata.png|thumb|240px|einfache Installation unter [[openSUSE]]]]&lt;br /&gt;
'''[[Debian]]:''' Bei der Installation der Distribution wird man bereits gefragt, was auf dem Rechner installiert werden soll, hier wählt man die Option ''Web-Server''. Damit wird alles wichtige dafür gleich mitinstalliert, um einen funktionierenden [[LAMP]] zu haben, in dem der Apache enthalten ist. Bei Debian ist der Apachesofort nach der gesamten Installtion ohne eigenes hinzutun bereits am laufen.&lt;br /&gt;
&lt;br /&gt;
'''[[openSUSE]]:''' Hier kann auch zu jedem späteren Zeitpunkt eine gesamte LAMP Umgebung mit einer Selektierung installiert werden. YaST --&amp;gt; Software instalieren oder Löschen --&amp;gt; Schemata --&amp;gt; Serverfunktionen --&amp;gt; ''Web- und LAMP-Server'' ankreuzen --&amp;gt; Übernehmen. &lt;br /&gt;
&lt;br /&gt;
'''[[Ubuntu]]''': Hier muss die Software über Synaptic nachinstalliert werden. Alles was man außer dem Apachen für eine LAMP-Umgebung braucht liest man aus der Abbildung hier rechts von der YaST-Installation ab, und installiert diese Pakete. (bis auf das YaST Paket selbst)&lt;br /&gt;
&lt;br /&gt;
== Befehle ==&lt;br /&gt;
&lt;br /&gt;
'''[[openSUSE]]:''' &lt;br /&gt;
&lt;br /&gt;
 rcapache2 start&lt;br /&gt;
&lt;br /&gt;
 rcapache2 status&lt;br /&gt;
&lt;br /&gt;
 rcapache2 stop&lt;br /&gt;
&lt;br /&gt;
== Fehler, und Fehlermeldungen ==&lt;br /&gt;
&lt;br /&gt;
* index.php wird zum Download angeboten:&lt;br /&gt;
 AddType application/x-httpd-php .php &lt;br /&gt;
&lt;br /&gt;
Am Schluss der httpd.conf anhängen&lt;br /&gt;
&lt;br /&gt;
== Quellen und weiterführende Links ==&lt;br /&gt;
&lt;br /&gt;
=== Literatur zu Apache ===&lt;br /&gt;
&lt;br /&gt;
* http://www.linux-club.de/ftopic2781.html&lt;br /&gt;
&lt;br /&gt;
=== LAMP-HowTos ===&lt;br /&gt;
* http://baach.de/lamp_tutorial.html&lt;br /&gt;
* http://www.linux-club.de/ftopic46-0-asc-0.html&lt;br /&gt;
* http://lamps.efactory.de/e-archive.shtml&lt;br /&gt;
* http://www.baach.de/lamp-tutorial.orig.html&lt;br /&gt;
* http://www.linux-club.de/ftopic12919.html&lt;br /&gt;
* http://sman.informatik.htw-dresden.de/doc/manual.10.0/manual/sec.apache.install.html&lt;br /&gt;
&lt;br /&gt;
Video-Tuturial: http://www.linux-club.de/ftopic62800.html&lt;br /&gt;
&lt;br /&gt;
=== Mod-Verzeichnis für Apache ===&lt;br /&gt;
* http://httpd.apache.org/docs/2.0/mod/mod_autoindex.html&lt;br /&gt;
&lt;br /&gt;
=== mod_userdir unter SuSE10.1 ===&lt;br /&gt;
* http://www.linux-club.de/ftopic61647.html&lt;br /&gt;
&lt;br /&gt;
=== Apache2 und SSL ===&lt;br /&gt;
* http://www.linux-club.de/ftopic12149.html&lt;br /&gt;
HowTo auf der Homepage: http://www.komaii.com/&lt;br /&gt;
&lt;br /&gt;
=== Webmin für Apache2 ===&lt;br /&gt;
ist zwar für SuSE9.0 aber die Pfade sollten soweit stimmen&lt;br /&gt;
* http://www.linux-club.de/ftopic6158.html&lt;br /&gt;
&lt;br /&gt;
=== Dateiberechtigungen / CHMOD ===&lt;br /&gt;
Grundsätzlich sollte jeder die Datei lesen können, also im Zweifel sollten die Dateien einen Modus von chmod 644 bekommen. 777 ist nicht immer sinnvoll, weil dann wirklich jeder auf die Datei Vollzugriff hat und sie somit auch ändern kann. &amp;lt;br /&amp;gt;&lt;br /&gt;
Ansonsten gibt es noch diesen Thread: &amp;lt;br /&amp;gt;&lt;br /&gt;
* http://www.linux-club.de/ftopic10425.html&lt;br /&gt;
&lt;br /&gt;
=== Virtual Hosts ===&lt;br /&gt;
* http://www.ag-intra.net/linux-al-virtualhost.html (leider etwas staubig -2003)&lt;br /&gt;
* http://www.linux-club.de/ftopic38317.html (eine Zusammenfassung wäre ganz schön)&lt;br /&gt;
* [[Virtual Host mit Yast konfigurieren]]&lt;br /&gt;
&lt;br /&gt;
=== Webstatistiken erstellen ===&lt;br /&gt;
http://www.linux-club.de/ftopic40573.html&lt;br /&gt;
&lt;br /&gt;
=== Apache absichern ===&lt;br /&gt;
* http://www.heise.de/security/artikel/69070/0&lt;br /&gt;
Regeln gibt es hier: http://www.gotroot.com/mod_security+rules&lt;br /&gt;
Welche Regeln sind sinnvoll?&lt;br /&gt;
* http://www.gotroot.com/tiki-index.php?page=Which+mod_security+rules&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
* http://www.html-world.de/program/php_art_5.php&lt;br /&gt;
* http://www.linux-club.de/ftopic65826.html&lt;br /&gt;
----&lt;br /&gt;
[[LAMP|zurück zum LAMP]]&lt;br /&gt;
[[Category:LAMP]]&lt;/div&gt;</summary>
		<author><name>K4m1K4tz3</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Dateien_mithilfe_einer_Playlist_sortieren&amp;diff=23544</id>
		<title>Dateien mithilfe einer Playlist sortieren</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Dateien_mithilfe_einer_Playlist_sortieren&amp;diff=23544"/>
		<updated>2008-01-09T18:41:52Z</updated>

		<summary type="html">&lt;p&gt;K4m1K4tz3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== playlistcopy.sh ===&lt;br /&gt;
&lt;br /&gt;
'''Einleitung'''&lt;br /&gt;
&lt;br /&gt;
Dieses Script ist entstanden, als ich vor dem Problem stand, geordnet meine MP3s auf eine Daten-CD zu brennen. Ziel war es, dass ein CD-Player die Lieder in der Reihenfolge abspielt, wie ich es wollte. Da ich kein passenden Programm gefunden habe, welches zudem noch die id3-Tags auswertete, um sie in den Namen der Dateien zu schreiben, machte ich mich ans Werk und schuf dieses kleine Script.&lt;br /&gt;
&lt;br /&gt;
'''Funktionen'''&lt;br /&gt;
&lt;br /&gt;
* lesen einer m3u Playlist&lt;br /&gt;
* bis zu 1000 Dateien werden kopiert und durchnummerriert&lt;br /&gt;
* man kann angeben, mit welcher Nummer begonnen werden soll&lt;br /&gt;
* Interpret und Titel werden aus den id3-Tags entnommen und im Dateinamen eingefügt&lt;br /&gt;
* falls keine id3-Tags vorhanden sind, wird der alte Name benutzt und nur die aktuelle Nummer davor gehängt&lt;br /&gt;
* kopiert ausschließlich MP3 Dateien&lt;br /&gt;
&lt;br /&gt;
'''Das Script playlistcopy.sh'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
# Dieses Script liest eine m3u Playlist aus, kopiert die darin enthaltenen Dateien&lt;br /&gt;
# und benennt sie der Reihelfolge um, wie sie in der Playlist stehen.&lt;br /&gt;
# Bsp: 001-ARTIST-TITLE.mp3, 002-ARTIST-TITLE.mp3, etc.&lt;br /&gt;
# So können sie dann z.B. auf eine Daten-CD kopiert werden und werden der Reihe nach&lt;br /&gt;
# von einem CD-Player abgespielt.&lt;br /&gt;
#&lt;br /&gt;
# Die Programme id3info und recode werden benötigt&lt;br /&gt;
# Die letzte Zeile muss eine Lehrzeile sein!&lt;br /&gt;
#&lt;br /&gt;
# Version: 0.10&lt;br /&gt;
# Zuletzt geändert am: 09.01.2008&lt;br /&gt;
#&lt;br /&gt;
# Autor:  Mathias Rabe&lt;br /&gt;
#&lt;br /&gt;
# Der Autor übernimmt keinerlei Garantie auf evtl. entstehende Schäden.&lt;br /&gt;
#&lt;br /&gt;
# Dieses Script steht unter der GPL. Es gelten daher die dort&lt;br /&gt;
# vorgeschriebenen Bedingungen für die Verwendung dieses Scriptes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#--------------------------------Einstellungen----------------------------------&lt;br /&gt;
&lt;br /&gt;
#Nummer mit der angefangen werden soll zu zählen.&lt;br /&gt;
STARTNUMBER=1;&lt;br /&gt;
&lt;br /&gt;
#sollen alle Leerzeichen mit _ ersetzt werden?&lt;br /&gt;
# TODO: vielleicht mache ich das so, dass man das beim Aufruf einstellen kann&lt;br /&gt;
UNDERSCORES=0;&lt;br /&gt;
&lt;br /&gt;
#---------------------------------Programm--------------------------------------&lt;br /&gt;
&lt;br /&gt;
usage() {&lt;br /&gt;
	echo &amp;quot;Usage: $(basename $0) PLAYLIST.M3U TARGETDIRECTORY&amp;quot; &amp;gt;&amp;amp;2;&lt;br /&gt;
	exit 1;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
# Prüfen ob wirklich alles angegeben wurde&lt;br /&gt;
if test $# -ne 2 ; then&lt;br /&gt;
	usage;&lt;br /&gt;
fi;&lt;br /&gt;
&lt;br /&gt;
if ! test -r $1 ; then&lt;br /&gt;
	echo &amp;quot;Playlist $1 doesn't exist.&amp;quot; &amp;gt;&amp;amp;2;&lt;br /&gt;
	usage;&lt;br /&gt;
fi;&lt;br /&gt;
&lt;br /&gt;
if ! test -d $2 ; then&lt;br /&gt;
	echo &amp;quot;Directory $2 doesn't exist. Creating it.&amp;quot;;&lt;br /&gt;
	mkdir $2;&lt;br /&gt;
	if [ $? -ne 0 ] ; then&lt;br /&gt;
		exit 1;&lt;br /&gt;
	fi;&lt;br /&gt;
fi;&lt;br /&gt;
&lt;br /&gt;
# existiert das Programm id3tag?&lt;br /&gt;
if ! test -e /usr/bin/id3info ; then&lt;br /&gt;
	echo &amp;quot;Couldn't find /usr/bin/id3info&amp;quot; &amp;gt;&amp;amp;2;&lt;br /&gt;
	exit 1;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# existiert das Programm recode?&lt;br /&gt;
if ! test -e /usr/bin/recode ; then&lt;br /&gt;
	echo &amp;quot;Couldn't find /usr/bin/recode&amp;quot; &amp;gt;&amp;amp;2;&lt;br /&gt;
	exit 1;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
ERRORNUM=0;&lt;br /&gt;
exec &amp;lt;$1;&lt;br /&gt;
read ROW;&lt;br /&gt;
while [ $? -eq 0 ] ; do&lt;br /&gt;
	# fängt die aktuelle Zeile mit # an?&lt;br /&gt;
	echo $ROW | grep &amp;quot;^#&amp;quot; &amp;gt; /dev/null;&lt;br /&gt;
	if [ $? -eq 0 ]; then &lt;br /&gt;
		read ROW;&lt;br /&gt;
		continue;&lt;br /&gt;
	fi;&lt;br /&gt;
	# Leerzeile gefunden?&lt;br /&gt;
	echo $ROW | grep &amp;quot;^$&amp;quot; &amp;gt; /dev/null;&lt;br /&gt;
	if [ $? -eq 0 ]; then &lt;br /&gt;
		echo &amp;quot;Error: Empty line found. Please clean up your playlist.&amp;quot; &amp;gt;&amp;amp;2;&lt;br /&gt;
		exit 2;&lt;br /&gt;
	fi;&lt;br /&gt;
	# Ist die Datei wirklich vorhanden, welche in der Playlist steht?&lt;br /&gt;
	if ! test -e &amp;quot;$ROW&amp;quot; ; then&lt;br /&gt;
		#der absolute Pfad ging nicht, also versuchen wir es nochmal mit dem relativen Pfad&lt;br /&gt;
		DIRNAMEOFLIST=$(dirname $1);&lt;br /&gt;
		ABSOLUTPATHOFFILE=$(printf &amp;quot;%s/%s&amp;quot; &amp;quot;$DIRNAMEOFLIST&amp;quot; &amp;quot;$ROW&amp;quot;)&lt;br /&gt;
		if ! test -e &amp;quot;$ABSOLUTPATHOFFILE&amp;quot; ; then&lt;br /&gt;
			echo &amp;quot;Error: File $ABSOLUTPATHOFFILE doesn't exist. Trying next one.&amp;quot; &amp;gt;&amp;amp;2; # Die Ausgabe ist zwar Müll, aber es funktioniert&lt;br /&gt;
			ERRORNUM=$((ERRORNUM+1));&lt;br /&gt;
			read ROW;&lt;br /&gt;
			continue;&lt;br /&gt;
		fi;&lt;br /&gt;
	else&lt;br /&gt;
		ABSOLUTPATHOFFILE=$ROW;&lt;br /&gt;
	fi;&lt;br /&gt;
	# Ist es auch eine mp3 Datei?&lt;br /&gt;
	echo $(file -ib &amp;quot;$ABSOLUTPATHOFFILE&amp;quot;) | grep &amp;quot;audio/mpeg&amp;quot; &amp;gt; /dev/null;&lt;br /&gt;
	if [ $? -ne 0 ] ; then&lt;br /&gt;
		echo &amp;quot;Error: File $ABSOLUTPATHOFFILE is no mp3 file. Trying next one.&amp;quot; &amp;gt;&amp;amp;2;&lt;br /&gt;
		ERRORNUM=$((ERRORNUM+1));&lt;br /&gt;
		read ROW;&lt;br /&gt;
		continue;&lt;br /&gt;
	fi;&lt;br /&gt;
	# Alles ok? Dann kopier und benenne sie um!&lt;br /&gt;
	ARTIST=$(id3info &amp;quot;$ABSOLUTPATHOFFILE&amp;quot; | grep &amp;quot;TPE1&amp;quot; | tail --lines=1 | sed &amp;quot;s/=== TPE1 (Lead performer(s)\/Soloist(s)): //&amp;quot; | recode &amp;quot;latin-1..&amp;quot;);&lt;br /&gt;
	TITLE=$(id3info &amp;quot;$ABSOLUTPATHOFFILE&amp;quot; | grep &amp;quot;TIT2&amp;quot; | tail --lines=1 | sed &amp;quot;s/=== TIT2 (Title\/songname\/content description): //&amp;quot; | recode &amp;quot;latin-1..&amp;quot;);&lt;br /&gt;
	# Artist und Titel gefunden?&lt;br /&gt;
	if [ -z &amp;quot;$ARTIST&amp;quot; -o -z &amp;quot;$TITLE&amp;quot; ] ; then&lt;br /&gt;
		DESTINATION=$(printf &amp;quot;%s/%03d-%s&amp;quot; $2 $STARTNUMBER &amp;quot;$(basename &amp;quot;$ROW&amp;quot;)&amp;quot;);&lt;br /&gt;
	else&lt;br /&gt;
		DESTINATION=$(printf &amp;quot;%s/%03d-%s-%s.mp3&amp;quot; $2 $STARTNUMBER &amp;quot;$ARTIST&amp;quot; &amp;quot;$TITLE&amp;quot;);&lt;br /&gt;
	fi;&lt;br /&gt;
	# Leereichen ersetzen&lt;br /&gt;
	if (( $UNDERSCORES )) ; then&lt;br /&gt;
		DESTINATION=${DESTINATION//\ /_}&lt;br /&gt;
	fi;&lt;br /&gt;
	# und endlich alles kopieren&lt;br /&gt;
	cp -v &amp;quot;$ABSOLUTPATHOFFILE&amp;quot; &amp;quot;$DESTINATION&amp;quot;;&lt;br /&gt;
	if [ $? -ne 0 ] ; then&lt;br /&gt;
		echo &amp;quot;An unexpected error occured. Abort&amp;quot;;&lt;br /&gt;
		exit 1;&lt;br /&gt;
	fi;&lt;br /&gt;
	STARTNUMBER=$((STARTNUMBER+1));&lt;br /&gt;
	read ROW;&lt;br /&gt;
done;&lt;br /&gt;
&lt;br /&gt;
if [ $ERRORNUM -ne 0 ]; then&lt;br /&gt;
	echo &amp;quot;There where $ERRORNUM errors.&amp;quot; &amp;gt;&amp;amp;2;&lt;br /&gt;
	exit 2;&lt;br /&gt;
fi;&lt;br /&gt;
&lt;br /&gt;
exit 0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Multimedia|Zurück zu Multimedia]][[Kategorie:Multimedia]]&lt;br /&gt;
[[Shellscripte|Zurück zu den Shellscripten]][[Kategorie:Shellscripte]]&lt;/div&gt;</summary>
		<author><name>K4m1K4tz3</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Dateien_mithilfe_einer_Playlist_sortieren&amp;diff=23534</id>
		<title>Dateien mithilfe einer Playlist sortieren</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Dateien_mithilfe_einer_Playlist_sortieren&amp;diff=23534"/>
		<updated>2008-01-07T19:01:42Z</updated>

		<summary type="html">&lt;p&gt;K4m1K4tz3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== playlistcopy.sh ===&lt;br /&gt;
&lt;br /&gt;
'''Einleitung'''&lt;br /&gt;
&lt;br /&gt;
Dieses Script ist entstanden, als ich vor dem Problem stand, geordnet meine MP3s auf eine Daten-CD zu brennen. Ziel war es, dass ein CD-Player die Lieder in der Reihenfolge abspielt, wie ich es wollte. Da ich kein passenden Programm gefunden habe, welches zudem noch die id3-Tags auswertete, um sie in den Namen der Dateien zu schreiben, machte ich mich ans Werk und schuf dieses kleine Script.&lt;br /&gt;
&lt;br /&gt;
'''Funktionen'''&lt;br /&gt;
&lt;br /&gt;
* lesen einer m3u Playlist&lt;br /&gt;
* bis zu 1000 Dateien werden kopiert und durchnummerriert&lt;br /&gt;
* man kann angeben, mit welcher Nummer begonnen werden soll&lt;br /&gt;
* Interpret und Titel werden aus den id3-Tags entnommen und im Dateinamen eingefügt&lt;br /&gt;
* falls keine id3-Tags vorhanden sind, wird der alte Name benutzt und nur die aktuelle Nummer davor gehängt&lt;br /&gt;
* kopiert ausschließlich MP3 Dateien&lt;br /&gt;
&lt;br /&gt;
'''Das Script playlistcopy.sh'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
# Dieses Script liest eine m3u Playlist aus, kopiert die darin enthaltenen Dateien&lt;br /&gt;
# und benennt sie der Reihelfolge um, wie sie in der Playlist stehen.&lt;br /&gt;
# Bsp: 001-ARTIST-TITLE.mp3, 002-ARTIST-TITLE.mp3, etc.&lt;br /&gt;
# So können sie dann z.B. auf eine Daten-CD kopiert werden und werden der Reihe nach&lt;br /&gt;
# von einem CD-Player abgespielt.&lt;br /&gt;
#&lt;br /&gt;
# Die Programme id3info und recode werden benötigt&lt;br /&gt;
# Die letzte Zeile muss eine Lehrzeile sein!&lt;br /&gt;
#&lt;br /&gt;
# Version: 0.9&lt;br /&gt;
# Zuletzt geändert am: 07.01.2008&lt;br /&gt;
#&lt;br /&gt;
# Autor:  Mathias Rabe&lt;br /&gt;
#&lt;br /&gt;
# Der Autor übernimmt keinerlei Garantie auf evtl. entstehende Schäden.&lt;br /&gt;
#&lt;br /&gt;
# Dieses Script steht unter der GPL. Es gelten daher die dort&lt;br /&gt;
# vorgeschriebenen Bedingungen für die Verwendung dieses Scriptes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#--------------------------------Einstellungen----------------------------------&lt;br /&gt;
&lt;br /&gt;
#Nummer mit der angefangen werden soll zu zählen.&lt;br /&gt;
STARTNUMBER=1;&lt;br /&gt;
&lt;br /&gt;
#sollen alle Leerzeichen mit _ ersetzt werden?&lt;br /&gt;
# TODO: vielleicht mache ich das so, dass man das beim Aufruf einstellen kann&lt;br /&gt;
UNDERSCORES=0;&lt;br /&gt;
&lt;br /&gt;
#---------------------------------Programm--------------------------------------&lt;br /&gt;
&lt;br /&gt;
usage() {&lt;br /&gt;
	echo &amp;quot;Usage: $(basename $0) PLAYLIST.M3U TARGETDIRECTORY&amp;quot; &amp;gt;&amp;amp;2;&lt;br /&gt;
	exit 1;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
# Prüfen ob wirklich alles angegeben wurde&lt;br /&gt;
if test $# -ne 2 ; then&lt;br /&gt;
	usage;&lt;br /&gt;
fi;&lt;br /&gt;
&lt;br /&gt;
if ! test -r $1 ; then&lt;br /&gt;
	echo &amp;quot;Playlist $1 doesn't exist.&amp;quot; &amp;gt;&amp;amp;2;&lt;br /&gt;
	usage;&lt;br /&gt;
fi;&lt;br /&gt;
&lt;br /&gt;
if ! test -d $2 ; then&lt;br /&gt;
	echo &amp;quot;Directory $2 doesn't exist. Creating it.&amp;quot;;&lt;br /&gt;
	mkdir $2;&lt;br /&gt;
	if [ $? -ne 0 ] ; then&lt;br /&gt;
		exit 1;&lt;br /&gt;
	fi;&lt;br /&gt;
fi;&lt;br /&gt;
&lt;br /&gt;
# existiert das Programm id3tag?&lt;br /&gt;
if ! test -e /usr/bin/id3info ; then&lt;br /&gt;
	echo &amp;quot;Couldn't find /usr/bin/id3info&amp;quot; &amp;gt;&amp;amp;2;&lt;br /&gt;
	exit 1;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# existiert das Programm recode?&lt;br /&gt;
if ! test -e /usr/bin/recode ; then&lt;br /&gt;
	echo &amp;quot;Couldn't find /usr/bin/recode&amp;quot; &amp;gt;&amp;amp;2;&lt;br /&gt;
	exit 1;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
ERRORNUM=0;&lt;br /&gt;
exec &amp;lt;$1;&lt;br /&gt;
read ROW;&lt;br /&gt;
while [ $? -eq 0 ] ; do&lt;br /&gt;
	# fängt die aktuelle Zeile mit # an?&lt;br /&gt;
	echo $ROW | grep &amp;quot;^#&amp;quot; &amp;gt; /dev/null;&lt;br /&gt;
	if [ $? -eq 0 ]; then &lt;br /&gt;
		read ROW;&lt;br /&gt;
		continue;&lt;br /&gt;
	fi;&lt;br /&gt;
	# Leerzeile gefunden?&lt;br /&gt;
	echo $ROW | grep &amp;quot;^$&amp;quot; &amp;gt; /dev/null;&lt;br /&gt;
	if [ $? -eq 0 ]; then &lt;br /&gt;
		echo &amp;quot;Error: Empty line found. Please clean up your playlist.&amp;quot; &amp;gt;&amp;amp;2;&lt;br /&gt;
		exit 2;&lt;br /&gt;
	fi;&lt;br /&gt;
	# Ist die Datei wirklich vorhanden, welche in der Playlist steht?&lt;br /&gt;
	if ! test -e &amp;quot;$ROW&amp;quot; ; then&lt;br /&gt;
		#der absolute Pfad ging nicht, also versuchen wir es nochmal mit dem relativen Pfad&lt;br /&gt;
		DIRNAMEOFLIST=$(dirname $1);&lt;br /&gt;
		ABSOLUTPATHOFFILE=$(printf &amp;quot;%s/%s&amp;quot; &amp;quot;$DIRNAMEOFLIST&amp;quot; &amp;quot;$ROW&amp;quot;)&lt;br /&gt;
		if ! test -e &amp;quot;$ABSOLUTPATHOFFILE&amp;quot; ; then&lt;br /&gt;
			echo &amp;quot;Error: File $ABSOLUTPATHOFFILE doesn't exist. Trying next one.&amp;quot; &amp;gt;&amp;amp;2; # Die Ausgabe ist zwar Müll, aber es funktioniert&lt;br /&gt;
			ERRORNUM=$((ERRORNUM+1));&lt;br /&gt;
			read ROW;&lt;br /&gt;
			continue;&lt;br /&gt;
		fi;&lt;br /&gt;
	else&lt;br /&gt;
		ABSOLUTPATHOFFILE=$ROW;&lt;br /&gt;
	fi;&lt;br /&gt;
	# Ist es auch eine mp3 Datei?&lt;br /&gt;
	echo $(file -ib &amp;quot;$ABSOLUTPATHOFFILE&amp;quot;) | grep &amp;quot;audio/mpeg&amp;quot; &amp;gt; /dev/null;&lt;br /&gt;
	if [ $? -ne 0 ] ; then&lt;br /&gt;
		echo &amp;quot;Error: File $ABSOLUTPATHOFFILE is no mp3 file. Trying next one.&amp;quot; &amp;gt;&amp;amp;2;&lt;br /&gt;
		ERRORNUM=$((ERRORNUM+1));&lt;br /&gt;
		read ROW;&lt;br /&gt;
		continue;&lt;br /&gt;
	fi;&lt;br /&gt;
	# Alles ok? Dann kopier und benenne sie um!&lt;br /&gt;
	ARTIST=$(id3info &amp;quot;$ABSOLUTPATHOFFILE&amp;quot; | grep &amp;quot;TPE1&amp;quot; | tail --lines=1 | sed &amp;quot;s/=== TPE1 (Lead performer(s)\/Soloist(s)): //&amp;quot; | recode &amp;quot;latin-1..&amp;quot;);&lt;br /&gt;
	TITLE=$(id3info &amp;quot;$ABSOLUTPATHOFFILE&amp;quot; | grep &amp;quot;TIT2&amp;quot; | tail --lines=1 | sed &amp;quot;s/=== TIT2 (Title\/songname\/content description): //&amp;quot; | recode &amp;quot;latin-1..&amp;quot;);&lt;br /&gt;
	# Artist und Titel gefunden?&lt;br /&gt;
	if [ -z $ARTIST -o -z $TITLE ] ; then&lt;br /&gt;
		DESTINATION=$(printf &amp;quot;%s/%03d-%s&amp;quot; $2 $STARTNUMBER &amp;quot;$(basename &amp;quot;$ROW&amp;quot;)&amp;quot;);&lt;br /&gt;
	else&lt;br /&gt;
		DESTINATION=$(printf &amp;quot;%s/%03d-%s-%s.mp3&amp;quot; $2 $STARTNUMBER &amp;quot;$ARTIST&amp;quot; &amp;quot;$TITLE&amp;quot;);&lt;br /&gt;
	fi;&lt;br /&gt;
	# Leereichen ersetzen&lt;br /&gt;
	if (( $UNDERSCORES )) ; then&lt;br /&gt;
		DESTINATION=${DESTINATION//\ /_}&lt;br /&gt;
	fi;&lt;br /&gt;
	# und endlich alles kopieren&lt;br /&gt;
	cp -v &amp;quot;$ABSOLUTPATHOFFILE&amp;quot; &amp;quot;$DESTINATION&amp;quot;;&lt;br /&gt;
	if [ $? -ne 0 ] ; then&lt;br /&gt;
		echo &amp;quot;An unexpected error occured. Abort&amp;quot;;&lt;br /&gt;
		exit 1;&lt;br /&gt;
	fi;&lt;br /&gt;
	STARTNUMBER=$((STARTNUMBER+1));&lt;br /&gt;
	read ROW;&lt;br /&gt;
done;&lt;br /&gt;
&lt;br /&gt;
if [ $ERRORNUM -ne 0 ]; then&lt;br /&gt;
	echo &amp;quot;There where $ERRORNUM errors.&amp;quot; &amp;gt;&amp;amp;2;&lt;br /&gt;
	exit 2;&lt;br /&gt;
fi;&lt;br /&gt;
&lt;br /&gt;
exit 0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Multimedia|Zurück zu Multimedia]][[Kategorie:Multimedia]]&lt;br /&gt;
[[Shellscripte|Zurück zu den Shellscripten]][[Kategorie:Shellscripte]]&lt;/div&gt;</summary>
		<author><name>K4m1K4tz3</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Dateien_mithilfe_einer_Playlist_sortieren&amp;diff=23493</id>
		<title>Dateien mithilfe einer Playlist sortieren</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Dateien_mithilfe_einer_Playlist_sortieren&amp;diff=23493"/>
		<updated>2008-01-03T12:32:45Z</updated>

		<summary type="html">&lt;p&gt;K4m1K4tz3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== playlistcopy.sh ===&lt;br /&gt;
&lt;br /&gt;
'''Einleitung'''&lt;br /&gt;
&lt;br /&gt;
Dieses Script ist entstanden, als ich vor dem Problem stand, geordnet meine MP3s auf eine Daten-CD zu brennen. Ziel war es, dass ein CD-Player die Lieder in der Reihenfolge abspielt, wie ich es wollte. Da ich kein passenden Programm gefunden habe, welches zudem noch die id3-Tags auswertete, um sie in den Namen der Dateien zu schreiben, machte ich mich ans Werk und schuf dieses kleine Script.&lt;br /&gt;
&lt;br /&gt;
'''Funktionen'''&lt;br /&gt;
&lt;br /&gt;
* lesen einer m3u Playlist&lt;br /&gt;
* bis zu 1000 Dateien werden kopiert und durchnummerriert&lt;br /&gt;
* man kann angeben, mit welcher Nummer begonnen werden soll&lt;br /&gt;
* Interpret und Titel werden aus den id3-Tags entnommen und im Dateinamen eingefügt&lt;br /&gt;
* kopiert ausschließlich MP3 Dateien&lt;br /&gt;
&lt;br /&gt;
'''Das Script playlistcopy.sh'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
# Dieses Script liest eine m3u Playlist aus, kopiert die darin enthaltenen Dateien&lt;br /&gt;
# und benennt sie der Reihelfolge um, wie sie in der Playlist stehen.&lt;br /&gt;
# Bsp: 001-ARTIST-TITLE.mp3, 002-ARTIST-TITLE.mp3, etc.&lt;br /&gt;
# So können sie dann z.B. auf eine Daten-CD kopiert werden und werden der Reihe nach&lt;br /&gt;
# von einem CD-Player abgespielt.&lt;br /&gt;
#&lt;br /&gt;
# Die Programme id3info und recode werden benötigt&lt;br /&gt;
#&lt;br /&gt;
# Version: 0.8&lt;br /&gt;
# Zuletzt geändert am: 03.01.2008&lt;br /&gt;
#&lt;br /&gt;
# Autor:  Mathias Rabe&lt;br /&gt;
#&lt;br /&gt;
# Der Autor übernimmt keinerlei Garantie auf evtl. entstehende Schäden.&lt;br /&gt;
#&lt;br /&gt;
# Dieses Script steht unter der GPL. Es gelten daher die dort&lt;br /&gt;
# vorgeschriebenen Bedingungen für die Verwendung dieses Scriptes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#--------------------------------Einstellungen----------------------------------&lt;br /&gt;
&lt;br /&gt;
#Nummer mit der angefangen werden soll zu zählen.&lt;br /&gt;
STARTNUMBER=1;&lt;br /&gt;
&lt;br /&gt;
#---------------------------------Programm--------------------------------------&lt;br /&gt;
&lt;br /&gt;
usage() {&lt;br /&gt;
	echo &amp;quot;Usage: $(basename $0) EXTENDED.M3U DIRECTORY&amp;quot; &amp;gt;&amp;amp;2;&lt;br /&gt;
	exit 1;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
# Prüfen ob wirklich alles angegeben wurde&lt;br /&gt;
if test $# -ne 2 ; then&lt;br /&gt;
	usage;&lt;br /&gt;
fi;&lt;br /&gt;
&lt;br /&gt;
if ! test -r $1 ; then&lt;br /&gt;
	echo &amp;quot;Playlist $1 doesn't exist.&amp;quot; &amp;gt;&amp;amp;2;&lt;br /&gt;
	usage;&lt;br /&gt;
fi;&lt;br /&gt;
&lt;br /&gt;
if ! test -d $2 ; then&lt;br /&gt;
	echo &amp;quot;Directory $2 doesn't exist. Creating it.&amp;quot;;&lt;br /&gt;
	mkdir $2;&lt;br /&gt;
	if [ $? -ne 0 ] ; then&lt;br /&gt;
		exit 1;&lt;br /&gt;
	fi;&lt;br /&gt;
fi;&lt;br /&gt;
&lt;br /&gt;
# existiert das Programm id3tag?&lt;br /&gt;
if ! test -e /usr/bin/id3info ; then&lt;br /&gt;
	echo &amp;quot;Couldn't find /usr/bin/id3info&amp;quot; &amp;gt;&amp;amp;2;&lt;br /&gt;
	exit 1;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# existiert das Programm recode?&lt;br /&gt;
if ! test -e /usr/bin/recode ; then&lt;br /&gt;
	echo &amp;quot;Couldn't find /usr/bin/recode&amp;quot; &amp;gt;&amp;amp;2;&lt;br /&gt;
	exit 1;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
ERRORNUM=0;&lt;br /&gt;
exec &amp;lt;$1;&lt;br /&gt;
read ROW;&lt;br /&gt;
while [ $? -eq 0 ] ; do&lt;br /&gt;
	# steht in der Zeile #EXTM3U ?&lt;br /&gt;
	if [ &amp;quot;$ROW&amp;quot; == &amp;quot;#EXTM3U&amp;quot; ] ; then&lt;br /&gt;
		read ROW;&lt;br /&gt;
		continue;&lt;br /&gt;
	fi;&lt;br /&gt;
	# fängt die aktuelle Zeile mit #EXTINF an?&lt;br /&gt;
	echo $ROW | grep &amp;quot;#EXTINF&amp;quot; &amp;gt; /dev/null;&lt;br /&gt;
	if [ $? -eq 0 ]; then &lt;br /&gt;
		read ROW;&lt;br /&gt;
		continue;&lt;br /&gt;
	fi;&lt;br /&gt;
	# Leerzeile gefunden?&lt;br /&gt;
	echo $ROW | grep &amp;quot;^$&amp;quot; &amp;gt; /dev/null;&lt;br /&gt;
	if [ $? -eq 0 ]; then &lt;br /&gt;
		echo &amp;quot;Error: Empty line found. Please clean up your playlist.&amp;quot; &amp;gt;&amp;amp;2;&lt;br /&gt;
		exit 2;&lt;br /&gt;
	fi;&lt;br /&gt;
	# Ist die Datei wirklich vorhanden, welche in der Playlist steht?&lt;br /&gt;
	if ! test -e &amp;quot;$ROW&amp;quot; ; then&lt;br /&gt;
		#der absolute Pfad ging nicht, also versuchen wir es nochmal mit dem relativen Pfad&lt;br /&gt;
		DIRNAMEOFLIST=$(dirname $1);&lt;br /&gt;
		ABSOLUTPATHOFFILE=$(printf &amp;quot;%s/%s&amp;quot; &amp;quot;$DIRNAMEOFLIST&amp;quot; &amp;quot;$ROW&amp;quot;)&lt;br /&gt;
		if ! test -e &amp;quot;$ABSOLUTPATHOFFILE&amp;quot; ; then&lt;br /&gt;
			echo &amp;quot;Error: File $ABSOLUTPATHOFFILE doesn't exist. Trying next one.&amp;quot; &amp;gt;&amp;amp;2; # Die Ausgabe ist zwar Müll, aber es funktioniert&lt;br /&gt;
			ERRORNUM=$((ERRORNUM+1));&lt;br /&gt;
			read ROW;&lt;br /&gt;
			continue;&lt;br /&gt;
		fi;&lt;br /&gt;
	else&lt;br /&gt;
		ABSOLUTPATHOFFILE=$ROW;&lt;br /&gt;
	fi;&lt;br /&gt;
	# Ist es auch eine mp3 Datei?&lt;br /&gt;
	echo $(file -ib &amp;quot;$ABSOLUTPATHOFFILE&amp;quot;) | grep &amp;quot;audio/mpeg&amp;quot; &amp;gt; /dev/null;&lt;br /&gt;
	if ! [ $? -eq 0 ] ; then&lt;br /&gt;
		echo &amp;quot;Error: File $ABSOLUTPATHOFFILE is no mp3 file. Trying next one.&amp;quot; &amp;gt;&amp;amp;2;&lt;br /&gt;
		ERRORNUM=$((ERRORNUM+1));&lt;br /&gt;
		read ROW;&lt;br /&gt;
		continue;&lt;br /&gt;
	fi;&lt;br /&gt;
	# Alles ok? Dann kopier und benenne sie um!&lt;br /&gt;
	ARTIST=$(id3info &amp;quot;$ABSOLUTPATHOFFILE&amp;quot; | grep &amp;quot;TPE1&amp;quot; | tail --lines=1 | sed &amp;quot;s/=== TPE1 (Lead performer(s)\/Soloist(s)): //&amp;quot; | recode &amp;quot;latin-1..&amp;quot;);&lt;br /&gt;
	TITLE=$(id3info &amp;quot;$ABSOLUTPATHOFFILE&amp;quot; | grep &amp;quot;TIT2&amp;quot; | tail --lines=1 | sed &amp;quot;s/=== TIT2 (Title\/songname\/content description): //&amp;quot; | recode &amp;quot;latin-1..&amp;quot;);&lt;br /&gt;
	DESTINATION=$(printf &amp;quot;%s/%03d-%s-%s.mp3&amp;quot; $2 $STARTNUMBER &amp;quot;$ARTIST&amp;quot; &amp;quot;$TITLE&amp;quot;);&lt;br /&gt;
	#DESTINATION=${DESTINATION//\ /_} # Dadurch können alle Lehrzeichen durch _ ersetzt werden.&lt;br /&gt;
	cp -v &amp;quot;$ABSOLUTPATHOFFILE&amp;quot; &amp;quot;$DESTINATION&amp;quot;;&lt;br /&gt;
	if [ $? -ne 0 ] ; then&lt;br /&gt;
		echo &amp;quot;An unexpected error occured. Abort&amp;quot;;&lt;br /&gt;
		exit 1;&lt;br /&gt;
	fi;&lt;br /&gt;
	STARTNUMBER=$((STARTNUMBER+1));&lt;br /&gt;
	read ROW;&lt;br /&gt;
done;&lt;br /&gt;
&lt;br /&gt;
if [ $ERRORNUM -ne 0 ]; then&lt;br /&gt;
	echo &amp;quot;There where $ERRORNUM errors.&amp;quot; &amp;gt;&amp;amp;2;&lt;br /&gt;
	exit 2;&lt;br /&gt;
fi;&lt;br /&gt;
&lt;br /&gt;
exit 0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Multimedia | Zurück zu Multimedia]][[Category:Multimedia]]&lt;/div&gt;</summary>
		<author><name>K4m1K4tz3</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Multimedia&amp;diff=23492</id>
		<title>Multimedia</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Multimedia&amp;diff=23492"/>
		<updated>2008-01-03T12:30:54Z</updated>

		<summary type="html">&lt;p&gt;K4m1K4tz3: Link &amp;quot;Dateien mithilfe einer Playlist sortieren&amp;quot; hinzugefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Multimediafähigkeit nachrüsten==&lt;br /&gt;
=== openSUSE ===&lt;br /&gt;
* [[YaST-Installationsquellen für openSUSE#Packman_.28Die_Multimediaf.C3.A4higkeiten_von_SuSE_Linux_erweitern.29|Packman als Quelle in YaST einbinden]]&lt;br /&gt;
*[[Suse multimediafähig machen und das Problem der DVD | Die Multimediafähigkeiten von Suse erweitern]] - Nach Anwendung dieser Anleitung spielt Suse alle erdenklichen Musikstücke (mp3, etc) und Videoformate ab.&lt;br /&gt;
*[[Pimp my SuSE]] - Suses Fähigkeiten erweitern und Suse aufmotzen.&lt;br /&gt;
&lt;br /&gt;
===diverse Distributionen===&lt;br /&gt;
* [[Ubuntu multimediafähig machen und das Problem der DVD]] - Hier wird erklärt, wie man bei Ubuntu/Kubuntu die Multimediafähigkeiten nachrüstet.&lt;br /&gt;
&lt;br /&gt;
== Den eigenen Desktop als Video aufnehmen ==&lt;br /&gt;
* [[vnc2swf]]&lt;br /&gt;
* [[screenkast]]&lt;br /&gt;
* [[recordmydesktop]]&lt;br /&gt;
&lt;br /&gt;
== Anleitungen und Programme ==&lt;br /&gt;
* [[MPlayer]]&lt;br /&gt;
* [[Alsamixer]]&lt;br /&gt;
* [[kmix]]&lt;br /&gt;
* [[TV-Browser]]&lt;br /&gt;
=== Alles rund um MP3-Dateien ===&lt;br /&gt;
&lt;br /&gt;
* [[MP3 Bitratenwandlung | Ändern der Bitrate von MP3-Dateien]]&lt;br /&gt;
* [[Amarok]]&lt;br /&gt;
&lt;br /&gt;
=== Alles rund um die runden Medien (CDs und DVDs) ===&lt;br /&gt;
&lt;br /&gt;
* [[K3b]]&lt;br /&gt;
* [[Nero]]&lt;br /&gt;
&lt;br /&gt;
==== ISO-Dateien ====&lt;br /&gt;
* [[Imageerstellung mit dd und ddrescue| ISO-Images erstellen auf der Kommandozeile]]&lt;br /&gt;
* [[ISO-Images per Loopdevice mounten | Einbinden von ISO-Dateien als virtuelles Laufwerk]]&lt;br /&gt;
* [[Open SuSE auf DVD brennen | ISO-Datei brennen]]&lt;br /&gt;
* [[Virtuelles (CD) Laufwerk unter Linux|Noch ein Weg &amp;quot;virtuelle CD/DVD Laufwerke&amp;quot; zu erstellen und zu nutzen]]&lt;br /&gt;
&lt;br /&gt;
==== DVDs ====&lt;br /&gt;
* [[Suse multimediafähig machen und das Problem der DVD]] - Hier wird erklärt, wie man Suse den Umgang mit nach der Installation nicht unterstützten Audio- und Videoformaten beibringt. Außerdem wird das Problem des Abspielens von Video DVDs umfassend erörtert.&lt;br /&gt;
* [[Videokonvertierung und DVD oder SVCD erstellen]]&lt;br /&gt;
&lt;br /&gt;
==== Soundprobleme ====&lt;br /&gt;
*[[Mehrere Programme gleichzeitig Sound ausgeben]]&lt;br /&gt;
&lt;br /&gt;
==== Videobearbeitung ====&lt;br /&gt;
*[[Kdenlive]]&lt;br /&gt;
&lt;br /&gt;
==== Realplayer ====&lt;br /&gt;
* [[Realplayer spielt nichts von amazon ab]]&lt;br /&gt;
&lt;br /&gt;
=== Konverter/Ripper ===&lt;br /&gt;
* [[Gnormalize]]&lt;br /&gt;
&lt;br /&gt;
* [[Videoconverterscript|Videoconverterscript zum Formatwandel für DVD/(S/X)VCD Authoring oder für die Betrachtung auf einer PSP]]&lt;br /&gt;
&lt;br /&gt;
== Internetstreaming / Internetradio ==&lt;br /&gt;
* [[Streamtuner]] - Internetradio hören und als mp3 rippen mit '''Streamtuner''' und '''Streamripper'''.&lt;br /&gt;
* [[Musterkonfigurationen#Streamingserver_Konfigurationen | Streamingserver Musterkonfigurationen]]&lt;br /&gt;
* [[Radiosender]]&lt;br /&gt;
* [[Stream-URL ermitteln]]&lt;br /&gt;
&lt;br /&gt;
== Programme für Musiker ==&lt;br /&gt;
*[[Musikerprogramme und Links dazu]]&lt;br /&gt;
&lt;br /&gt;
== Sonstiges ==&lt;br /&gt;
&lt;br /&gt;
* [[Neutrino d-box]]&lt;br /&gt;
* [[Kaffeine DVB-Kanallisten]]&lt;br /&gt;
* [[Kdetv Kanallisten]]&lt;br /&gt;
* [[Koverartist Ubuntu Problem|Koverartist - Fehlende Vorlagen unter Ubuntu ergänzen]]&lt;br /&gt;
* [[Kaufberatung MVP und MP3 Player]]&lt;br /&gt;
* [[Dateien mithilfe einer Playlist sortieren]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Hauptseite|Zurück zur Hauptseite]]&lt;br /&gt;
[[Category:Multimedia]][[Kategorie:Übersicht]]&lt;br /&gt;
&amp;lt;!--Jetzt müsste hier der größte Teil der Links wieder funktionieren--&amp;gt;&lt;/div&gt;</summary>
		<author><name>K4m1K4tz3</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Dateien_mithilfe_einer_Playlist_sortieren&amp;diff=23491</id>
		<title>Dateien mithilfe einer Playlist sortieren</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Dateien_mithilfe_einer_Playlist_sortieren&amp;diff=23491"/>
		<updated>2008-01-03T12:28:53Z</updated>

		<summary type="html">&lt;p&gt;K4m1K4tz3: Die Seite wurde neu angelegt: === playlistcopy.sh ===  '''Einleitung'''  Dieses Script ist entstanden, als ich vor dem Problem stand, geordnet meine MP3s auf eine Daten-CD zu brennen. Ziel war es, d...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== playlistcopy.sh ===&lt;br /&gt;
&lt;br /&gt;
'''Einleitung'''&lt;br /&gt;
&lt;br /&gt;
Dieses Script ist entstanden, als ich vor dem Problem stand, geordnet meine MP3s auf eine Daten-CD zu brennen. Ziel war es, dass ein CD-Player die Lieder in der Reihenfolge abspielt, wie ich es wollte. Da ich kein passenden Programm gefunden habe, welches zudem noch die id3-Tags auswertete, um sie in den Namen der Dateien zu schreiben, machte ich mich ans Werk und schuf dieses kleine Script.&lt;br /&gt;
&lt;br /&gt;
'''Funktionen'''&lt;br /&gt;
&lt;br /&gt;
* lesen einer m3u Playlist&lt;br /&gt;
* bis zu 1000 Dateien werden kopiert und durchnummerriert&lt;br /&gt;
* man kann angeben, mit welcher Nummer begonnen werden soll&lt;br /&gt;
* Interpret und Titel werden aus den id3-Tags entnommen und im Dateinamen eingefügt&lt;br /&gt;
* kopiert ausschließlich MP3 Dateien&lt;br /&gt;
&lt;br /&gt;
'''Das Script playlistcopy.sh'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
# Dieses Script liest eine m3u Playlist aus, kopiert die darin enthaltenen Dateien&lt;br /&gt;
# und benennt sie der Reihelfolge um, wie sie in der Playlist stehen.&lt;br /&gt;
# Bsp: 001-ARTIST-TITLE.mp3, 002-ARTIST-TITLE.mp3, etc.&lt;br /&gt;
# So können sie dann z.B. auf eine Daten-CD kopiert werden und werden der Reihe nach&lt;br /&gt;
# von einem CD-Player abgespielt.&lt;br /&gt;
#&lt;br /&gt;
# Die Programme id3info und recode werden benötigt&lt;br /&gt;
#&lt;br /&gt;
# Version: 0.8&lt;br /&gt;
# Zuletzt geändert am: 03.01.2008&lt;br /&gt;
#&lt;br /&gt;
# Autor:  Mathias Rabe&lt;br /&gt;
#&lt;br /&gt;
# Der Autor übernimmt keinerlei Garantie auf evtl. entstehende Schäden.&lt;br /&gt;
#&lt;br /&gt;
# Dieses Script steht unter der GPL. Es gelten daher die dort&lt;br /&gt;
# vorgeschriebenen Bedingungen für die Verwendung dieses Scriptes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#--------------------------------Einstellungen----------------------------------&lt;br /&gt;
&lt;br /&gt;
#Nummer mit der angefangen werden soll zu zählen.&lt;br /&gt;
STARTNUMBER=1;&lt;br /&gt;
&lt;br /&gt;
#---------------------------------Programm--------------------------------------&lt;br /&gt;
&lt;br /&gt;
usage() {&lt;br /&gt;
	echo &amp;quot;Usage: $(basename $0) EXTENDED.M3U DIRECTORY&amp;quot; &amp;gt;&amp;amp;2;&lt;br /&gt;
	exit 1;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
# Prüfen ob wirklich alles angegeben wurde&lt;br /&gt;
if test $# -ne 2 ; then&lt;br /&gt;
	usage;&lt;br /&gt;
fi;&lt;br /&gt;
&lt;br /&gt;
if ! test -r $1 ; then&lt;br /&gt;
	echo &amp;quot;Playlist $1 doesn't exist.&amp;quot; &amp;gt;&amp;amp;2;&lt;br /&gt;
	usage;&lt;br /&gt;
fi;&lt;br /&gt;
&lt;br /&gt;
if ! test -d $2 ; then&lt;br /&gt;
	echo &amp;quot;Directory $2 doesn't exist. Creating it.&amp;quot;;&lt;br /&gt;
	mkdir $2;&lt;br /&gt;
	if [ $? -ne 0 ] ; then&lt;br /&gt;
		exit 1;&lt;br /&gt;
	fi;&lt;br /&gt;
fi;&lt;br /&gt;
&lt;br /&gt;
# existiert das Programm id3tag?&lt;br /&gt;
if ! test -e /usr/bin/id3info ; then&lt;br /&gt;
	echo &amp;quot;Couldn't find /usr/bin/id3info&amp;quot; &amp;gt;&amp;amp;2;&lt;br /&gt;
	exit 1;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# existiert das Programm recode?&lt;br /&gt;
if ! test -e /usr/bin/recode ; then&lt;br /&gt;
	echo &amp;quot;Couldn't find /usr/bin/recode&amp;quot; &amp;gt;&amp;amp;2;&lt;br /&gt;
	exit 1;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
ERRORNUM=0;&lt;br /&gt;
exec &amp;lt;$1;&lt;br /&gt;
read ROW;&lt;br /&gt;
while [ $? -eq 0 ] ; do&lt;br /&gt;
	# steht in der Zeile #EXTM3U ?&lt;br /&gt;
	if [ &amp;quot;$ROW&amp;quot; == &amp;quot;#EXTM3U&amp;quot; ] ; then&lt;br /&gt;
		read ROW;&lt;br /&gt;
		continue;&lt;br /&gt;
	fi;&lt;br /&gt;
	# fängt die aktuelle Zeile mit #EXTINF an?&lt;br /&gt;
	echo $ROW | grep &amp;quot;#EXTINF&amp;quot; &amp;gt; /dev/null;&lt;br /&gt;
	if [ $? -eq 0 ]; then &lt;br /&gt;
		read ROW;&lt;br /&gt;
		continue;&lt;br /&gt;
	fi;&lt;br /&gt;
	# Leerzeile gefunden?&lt;br /&gt;
	echo $ROW | grep &amp;quot;^$&amp;quot; &amp;gt; /dev/null;&lt;br /&gt;
	if [ $? -eq 0 ]; then &lt;br /&gt;
		echo &amp;quot;Error: Empty line found. Please clean up your playlist.&amp;quot; &amp;gt;&amp;amp;2;&lt;br /&gt;
		exit 2;&lt;br /&gt;
	fi;&lt;br /&gt;
	# Ist die Datei wirklich vorhanden, welche in der Playlist steht?&lt;br /&gt;
	if ! test -e &amp;quot;$ROW&amp;quot; ; then&lt;br /&gt;
		#der absolute Pfad ging nicht, also versuchen wir es nochmal mit dem relativen Pfad&lt;br /&gt;
		DIRNAMEOFLIST=$(dirname $1);&lt;br /&gt;
		ABSOLUTPATHOFFILE=$(printf &amp;quot;%s/%s&amp;quot; &amp;quot;$DIRNAMEOFLIST&amp;quot; &amp;quot;$ROW&amp;quot;)&lt;br /&gt;
		if ! test -e &amp;quot;$ABSOLUTPATHOFFILE&amp;quot; ; then&lt;br /&gt;
			echo &amp;quot;Error: File $ABSOLUTPATHOFFILE doesn't exist. Trying next one.&amp;quot; &amp;gt;&amp;amp;2; # Die Ausgabe ist zwar Müll, aber es funktioniert&lt;br /&gt;
			ERRORNUM=$((ERRORNUM+1));&lt;br /&gt;
			read ROW;&lt;br /&gt;
			continue;&lt;br /&gt;
		fi;&lt;br /&gt;
	else&lt;br /&gt;
		ABSOLUTPATHOFFILE=$ROW;&lt;br /&gt;
	fi;&lt;br /&gt;
	# Ist es auch eine mp3 Datei?&lt;br /&gt;
	echo $(file -ib &amp;quot;$ABSOLUTPATHOFFILE&amp;quot;) | grep &amp;quot;audio/mpeg&amp;quot; &amp;gt; /dev/null;&lt;br /&gt;
	if ! [ $? -eq 0 ] ; then&lt;br /&gt;
		echo &amp;quot;Error: File $ABSOLUTPATHOFFILE is no mp3 file. Trying next one.&amp;quot; &amp;gt;&amp;amp;2;&lt;br /&gt;
		ERRORNUM=$((ERRORNUM+1));&lt;br /&gt;
		read ROW;&lt;br /&gt;
		continue;&lt;br /&gt;
	fi;&lt;br /&gt;
	# Alles ok? Dann kopier und benenne sie um!&lt;br /&gt;
	ARTIST=$(id3info &amp;quot;$ABSOLUTPATHOFFILE&amp;quot; | grep &amp;quot;TPE1&amp;quot; | tail --lines=1 | sed &amp;quot;s/=== TPE1 (Lead performer(s)\/Soloist(s)): //&amp;quot; | recode &amp;quot;latin-1..&amp;quot;);&lt;br /&gt;
	TITLE=$(id3info &amp;quot;$ABSOLUTPATHOFFILE&amp;quot; | grep &amp;quot;TIT2&amp;quot; | tail --lines=1 | sed &amp;quot;s/=== TIT2 (Title\/songname\/content description): //&amp;quot; | recode &amp;quot;latin-1..&amp;quot;);&lt;br /&gt;
	DESTINATION=$(printf &amp;quot;%s/%03d-%s-%s.mp3&amp;quot; $2 $STARTNUMBER &amp;quot;$ARTIST&amp;quot; &amp;quot;$TITLE&amp;quot;);&lt;br /&gt;
	#DESTINATION=${DESTINATION//\ /_} # Dadurch können alle Lehrzeichen durch _ ersetzt werden.&lt;br /&gt;
	cp -v &amp;quot;$ABSOLUTPATHOFFILE&amp;quot; &amp;quot;$DESTINATION&amp;quot;;&lt;br /&gt;
	if [ $? -ne 0 ] ; then&lt;br /&gt;
		echo &amp;quot;An unexpected error occured. Abort&amp;quot;;&lt;br /&gt;
		exit 1;&lt;br /&gt;
	fi;&lt;br /&gt;
	STARTNUMBER=$((STARTNUMBER+1));&lt;br /&gt;
	read ROW;&lt;br /&gt;
done;&lt;br /&gt;
&lt;br /&gt;
if [ $ERRORNUM -ne 0 ]; then&lt;br /&gt;
	echo &amp;quot;There where $ERRORNUM errors.&amp;quot; &amp;gt;&amp;amp;2;&lt;br /&gt;
	exit 2;&lt;br /&gt;
fi;&lt;br /&gt;
&lt;br /&gt;
exit 0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>K4m1K4tz3</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:OpenSUSE_und_Multimedia&amp;diff=20387</id>
		<title>Diskussion:OpenSUSE und Multimedia</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:OpenSUSE_und_Multimedia&amp;diff=20387"/>
		<updated>2007-07-22T14:11:35Z</updated>

		<summary type="html">&lt;p&gt;K4m1K4tz3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Diskussionsziele|Forenlink=http://www.linux-club.de/forum18.html|Forenname=Multimedia}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ich denke man sollte auch ffmpeg in der Liste mit aufnehmen. &lt;br /&gt;
&lt;br /&gt;
[[Benutzer:K4m1K4tz3|K4m1K4tz3]] 17:05, 20. Jul 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::Trag es ein. ;-) --[[Benutzer:Griffin|Griffin]] 17:36, 20. Jul 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::: w32-codecs-all liefern doch auch wmv/wma support oder? wodrin unterscheiden die sich?--[[Benutzer:DerMani|derMani]] 18:08, 20. Jul 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::::Notwendig ist das Paket wohl nicht. Ich habe es nicht installiert und bisher auch nicht vermisst. Die Erwähnung ist wohl &amp;quot;entbehrlich&amp;quot; oder andersrum positiv ausgedrückt &amp;quot;unschädlich&amp;quot;. Es ist ein interessantes Multimediapaket von Packman, das man aber wohl nicht unbedingt benötigt, aber gleichwohl gutartig installieren kann.&lt;br /&gt;
::::Ob man es demnach erwähnen muss? =&amp;gt; Nö.&lt;br /&gt;
::::Ob man es erwähnen kann? =&amp;gt; Jo.&lt;br /&gt;
::::Schlussfolgerung? =&amp;gt; Aus den benötigten Paketen nehme ich es mal raus. Bei den interessanten Paketen kann man es aber sehr gut stehen lassen. ;-)&lt;br /&gt;
::::Damit dürften alle zufrieden sein, oder? Wer genaueres weiß, kann ja hier genaueres schreiben. ;-) --[[Benutzer:Griffin|Griffin]] 13:52, 22. Jul 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:::::Ich habe dafür keine w32codec-all installiert und habe es bisher nicht vermisst. Kann alles abspielen.&lt;br /&gt;
:::::Ob man es demnach erwähnen muss? =&amp;gt; Nö.&lt;br /&gt;
:::::Ob man es erwähnen kann? =&amp;gt; Jo.&lt;br /&gt;
::::: ;-) [[Benutzer:K4m1K4tz3|K4m1K4tz3]] 15:45, 22. Jul 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::::::Na, dann hammers ja jetzt. :-) Als interessantes und optionales Paket ist es erwähnt. Das kann es, das darf es und da ist es richtig. :-) Perfekt also! So soll es sein. ;-) --[[Benutzer:Griffin|Griffin]] 15:50, 22. Jul 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:::::::Naja, ich wollte sagen das die w32codec-all genauso als Optional anzusehen sind. Habe mal geschaut, ich spiele 90% aller Videos mit ffmpeg ab. Egal ob wmv9 oder mpeg4 oder ...&lt;br /&gt;
:::::::Früher konnte ich mit den w32 Codecs keine wmv9 Dateien abspielen, geht das jetzt? Und hat vielleicht jemand ein wmv10 Video für mich um auch das mal zu prüfen? [[Benutzer:K4m1K4tz3|K4m1K4tz3]] 15:55, 22. Jul 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hab ich beides noch nicht bewusst probiert. Ich spiele die Dinger ab, wie sie kommen. Was es ist, interessiert mich meistens nicht. Wenn das mit w32 nicht geht (w32 aber andere Dinge kann), die Codecs also nicht identisch sind, dann müssen wir natürlich beide Pakete bei den wichtigen Paketen erwähnen. W32 ist das bekanntere und verbreitetere Paket, deshalb habe ich es bevorzugt benannt. Ich lasse mich da aber auch gerne von besseren Alternativen belehren, wenn es den tatsächlich welche sind.&lt;br /&gt;
&lt;br /&gt;
Na ja, erwähnt haben wir es ja jetzt und das erscheint mir m.E. auch völlig richtig zu sein. --[[Benutzer:Griffin|Griffin]] 16:00, 22. Jul 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:: Also mich interessiert es schon wie weit die w32 Codecs mitlerweile sind. Ich möchte hier gerne das aktuellste und natürlich Beste stehen haben. Leider kann ich ffmpeg nicht deinstallieren um dann zu testen was die w32 Codecs können, da ich einfach zu viele Abhängigkeiten zerstören würde.&lt;br /&gt;
&lt;br /&gt;
::PS: Kaffeine zeigt welchen Codec er nimmt, wenn man im Video mal rechtsklickt und dann auf Stück-Info geht.&lt;/div&gt;</summary>
		<author><name>K4m1K4tz3</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:OpenSUSE_und_Multimedia&amp;diff=20380</id>
		<title>Diskussion:OpenSUSE und Multimedia</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:OpenSUSE_und_Multimedia&amp;diff=20380"/>
		<updated>2007-07-22T13:55:45Z</updated>

		<summary type="html">&lt;p&gt;K4m1K4tz3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Diskussionsziele|Forenlink=http://www.linux-club.de/forum18.html|Forenname=Multimedia}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ich denke man sollte auch ffmpeg in der Liste mit aufnehmen. &lt;br /&gt;
&lt;br /&gt;
[[Benutzer:K4m1K4tz3|K4m1K4tz3]] 17:05, 20. Jul 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::Trag es ein. ;-) --[[Benutzer:Griffin|Griffin]] 17:36, 20. Jul 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::: w32-codecs-all liefern doch auch wmv/wma support oder? wodrin unterscheiden die sich?--[[Benutzer:DerMani|derMani]] 18:08, 20. Jul 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::::Notwendig ist das Paket wohl nicht. Ich habe es nicht installiert und bisher auch nicht vermisst. Die Erwähnung ist wohl &amp;quot;entbehrlich&amp;quot; oder andersrum positiv ausgedrückt &amp;quot;unschädlich&amp;quot;. Es ist ein interessantes Multimediapaket von Packman, das man aber wohl nicht unbedingt benötigt, aber gleichwohl gutartig installieren kann.&lt;br /&gt;
::::Ob man es demnach erwähnen muss? =&amp;gt; Nö.&lt;br /&gt;
::::Ob man es erwähnen kann? =&amp;gt; Jo.&lt;br /&gt;
::::Schlussfolgerung? =&amp;gt; Aus den benötigten Paketen nehme ich es mal raus. Bei den interessanten Paketen kann man es aber sehr gut stehen lassen. ;-)&lt;br /&gt;
::::Damit dürften alle zufrieden sein, oder? Wer genaueres weiß, kann ja hier genaueres schreiben. ;-) --[[Benutzer:Griffin|Griffin]] 13:52, 22. Jul 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:::::Ich habe dafür keine w32codec-all installiert und habe es bisher nicht vermisst. Kann alles abspielen.&lt;br /&gt;
:::::Ob man es demnach erwähnen muss? =&amp;gt; Nö.&lt;br /&gt;
:::::Ob man es erwähnen kann? =&amp;gt; Jo.&lt;br /&gt;
::::: ;-) [[Benutzer:K4m1K4tz3|K4m1K4tz3]] 15:45, 22. Jul 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::::::Na, dann hammers ja jetzt. :-) Als interessantes und optionales Paket ist es erwähnt. Das kann es, das darf es und da ist es richtig. :-) Perfekt also! So soll es sein. ;-) --[[Benutzer:Griffin|Griffin]] 15:50, 22. Jul 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:::::::Naja, ich wollte sagen das die w32codec-all genauso als Optional anzusehen sind. Habe mal geschaut, ich spiele 90% aller Videos mit ffmpeg ab. Egal ob wmv9 oder mpeg4 oder ...&lt;br /&gt;
:::::::Früher konnte ich mit den w32 Codecs keine wmv9 Dateien abspielen, geht das jetzt? Und hat vielleicht jemand ein wmv10 Video für mich um auch das mal zu prüfen? [[Benutzer:K4m1K4tz3|K4m1K4tz3]] 15:55, 22. Jul 2007 (CEST)&lt;/div&gt;</summary>
		<author><name>K4m1K4tz3</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:OpenSUSE_und_Multimedia&amp;diff=20369</id>
		<title>Diskussion:OpenSUSE und Multimedia</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:OpenSUSE_und_Multimedia&amp;diff=20369"/>
		<updated>2007-07-22T13:45:20Z</updated>

		<summary type="html">&lt;p&gt;K4m1K4tz3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Diskussionsziele|Forenlink=http://www.linux-club.de/forum18.html|Forenname=Multimedia}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ich denke man sollte auch ffmpeg in der Liste mit aufnehmen. &lt;br /&gt;
&lt;br /&gt;
[[Benutzer:K4m1K4tz3|K4m1K4tz3]] 17:05, 20. Jul 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::Trag es ein. ;-) --[[Benutzer:Griffin|Griffin]] 17:36, 20. Jul 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::: w32-codecs-all liefern doch auch wmv/wma support oder? wodrin unterscheiden die sich?--[[Benutzer:DerMani|derMani]] 18:08, 20. Jul 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::::Notwendig ist das Paket wohl nicht. Ich habe es nicht installiert und bisher auch nicht vermisst. Die Erwähnung ist wohl &amp;quot;entbehrlich&amp;quot; oder andersrum positiv ausgedrückt &amp;quot;unschädlich&amp;quot;. Es ist ein interessantes Multimediapaket von Packman, das man aber wohl nicht unbedingt benötigt, aber gleichwohl gutartig installieren kann.&lt;br /&gt;
::::Ob man es demnach erwähnen muss? =&amp;gt; Nö.&lt;br /&gt;
::::Ob man es erwähnen kann? =&amp;gt; Jo.&lt;br /&gt;
::::Schlussfolgerung? =&amp;gt; Aus den benötigten Paketen nehme ich es mal raus. Bei den interessanten Paketen kann man es aber sehr gut stehen lassen. ;-)&lt;br /&gt;
::::Damit dürften alle zufrieden sein, oder? Wer genaueres weiß, kann ja hier genaueres schreiben. ;-) --[[Benutzer:Griffin|Griffin]] 13:52, 22. Jul 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:::::Ich habe dafür keine w32codec-all installiert und habe es bisher nicht vermisst. Kann alles abspielen.&lt;br /&gt;
:::::Ob man es demnach erwähnen muss? =&amp;gt; Nö.&lt;br /&gt;
:::::Ob man es erwähnen kann? =&amp;gt; Jo.&lt;br /&gt;
::::: ;-) [[Benutzer:K4m1K4tz3|K4m1K4tz3]] 15:45, 22. Jul 2007 (CEST)&lt;/div&gt;</summary>
		<author><name>K4m1K4tz3</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=OpenSUSE_und_Multimedia&amp;diff=20176</id>
		<title>OpenSUSE und Multimedia</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=OpenSUSE_und_Multimedia&amp;diff=20176"/>
		<updated>2007-07-20T15:50:46Z</updated>

		<summary type="html">&lt;p&gt;K4m1K4tz3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;openSUSE mit einem Klick Mulitmedia/DVD fähig machen:&lt;br /&gt;
*  http://de.opensuse.org/KonvenientSUSE&lt;br /&gt;
= Suses Multimediafähigkeiten erweitern =&lt;br /&gt;
Ein frisch installiertes Suse Linux bietet nicht sehr viele Multimediamöglichkeiten. Sogar gängigste Formate, wie das mp3 Format, werden von Suse nicht ab Werk abgespielt. Um die Multimediafähigkeiten von Suse zu erweitern bedarf es daher eines kleinen Eingriffs, den aber auch ein Anfänger leicht bewerkstelligen kann und innerhalb weniger Minuten erledigt haben dürfte.&lt;br /&gt;
&lt;br /&gt;
== mp3 Support nachrüsten ==&lt;br /&gt;
Damit die bei Suse mitgelieferten Mediaplayer mp3-Dateien abspielen können, muss man einige wenige Dateien Nachinstallieren. Hierzu fügt man sich die nachfolgend in Klammern genannten Quellen als alternative Installationsquellen in YaST ein. Wie dies geht, wird [[YaST-Installationsquellen für SuSE Linux|hier für die verschiedenen Suse Versionen beschrieben]]. Siehe hierzu auch [[Suse multimediafähig machen und das Problem der DVD#Die Vorgehensweise|unten im Abschnitt &amp;quot;Die Vorgehensweise&amp;quot;]]. Erforderlich sind '''[[YaST-Installationsquellen für SuSE Linux#Packman (Die Multimediafähigkeiten von SuSE Linux erweitern)|Packman]]''', der '''[[YaST-Installationsquellen für SuSE Linux#Empfohlene Quellen|Suse Server]]''' (&amp;quot;Suse Linux Installationsquelle&amp;quot; oder auch &amp;quot;Suse Base&amp;quot; (&amp;quot;[[YaST-Installationsquellen für SuSE Linux#SuSE Linux Installationsquelle|oss]]&amp;quot; und &amp;quot;[[YaST-Installationsquellen für SuSE Linux#SuSE Linux Extra CD (non-oss Installationsquelle)|non-oss]]&amp;quot;!)) und '''[[YaST-Installationsquellen für SuSE Linux#Suser-Guru (Verschieden - zum Teil i686 optimierte - Pakete)|Suser-Guru (Guru)]]'''.&lt;br /&gt;
&lt;br /&gt;
Anschließend installiert man sich über YaST (YaST =&amp;gt; Software =&amp;gt; Software installieren oder löschen =&amp;gt; Filter &amp;quot;Suche&amp;quot; =&amp;gt; Eingabe der unten genannten Paketnamen in das Suchfeld) die nachfolgenden Pakete:&lt;br /&gt;
 amarok (von Guru)&lt;br /&gt;
 amarok-xine (von Guru)&lt;br /&gt;
 libxine1 (von Packman)&lt;br /&gt;
 xine-ui (von Packman)&lt;br /&gt;
 kaffeine (von Packman)&lt;br /&gt;
 w32codec-all (von Packman)&lt;br /&gt;
 libffmpeg0 (von Packman)&lt;br /&gt;
 xmms (von Packman, damit xmms mp3 abspielen kann)&lt;br /&gt;
 xmms-lib (von Packman)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Suse den Umgang mit sonstigen Multimediaformaten beibringen ==&lt;br /&gt;
Rpm-Pakete zur Erweiterung der Multimediafähigkeiten von Suse werden traditionell von [http://packman.links2linux.de/ Packman] angeboten. Da Packman Pakete aber häufig Paketabhängigkeiten zu anderen Paketen besitzen, wird dringend angeraten, zur Installation von Packman Paketen einen Paketmanager wie z.B. YaST (mit alternativen Installationsquellen) oder apt zu verwenden. Nachfolgend wird die Verwendung von YaST beschrieben, da sie für einen Anfänger den einfachsten und am leichtesten verständlichen Weg darstellt.&lt;br /&gt;
&lt;br /&gt;
=== Die Vorgehensweise ===&lt;br /&gt;
# Zunächst muss man sich '''[[YaST-Installationsquellen für SuSE Linux#Packman (Die Multimediafähigkeiten von SuSE Linux erweitern)|Packman]]''' und den '''[[YaST-Installationsquellen für SuSE Linux#Empfohlene Quellen|Suse Server]]''' (&amp;quot;Suse Linux Installationsquelle&amp;quot; oder auch &amp;quot;Suse Base&amp;quot; (&amp;quot;[[YaST-Installationsquellen für SuSE Linux#SuSE Linux Installationsquelle|oss]]&amp;quot; und &amp;quot;[[YaST-Installationsquellen für SuSE Linux#SuSE Linux Extra CD (non-oss Installationsquelle)|non-oss]]&amp;quot;!)) als alternative Installationsquelle in YaST einfügen. Wie das geht, wird [[YAST-Installationsquellen für SuSE Linux | hier für die verschiedenen Suse Versionen beschrieben]]. Da Packman Pakete grundsätzlich nur Abhängigkeiten zu anderen Packman Paketen und zu Suse Paketen besitzen, ist es erforderlich, sich Packman und den Suse-Server als Installationsquelle in YaST einzufügen.&lt;br /&gt;
# Nachdem man die Installationsquellen wie beschrieben eingefügt hat, startet man YaST.&lt;br /&gt;
# Punkt &amp;quot;Software&amp;quot; anwählen.&lt;br /&gt;
# &amp;quot;Software installieren oder löschen&amp;quot; anklicken. Da jetzt sämtliche Daten von den Servern geholt werden, kann dieser Punkt etwas dauern.&lt;br /&gt;
# Jetzt wählt man oben Filter &amp;quot;Suche&amp;quot;.&lt;br /&gt;
# in das Suchfeld gibt man nun die Namen der Pakete ein, die man installieren möchte.&lt;br /&gt;
&lt;br /&gt;
=== Benötigte oder interessante Pakete ===&lt;br /&gt;
* '''w32codec-all''' - das Paket enthält Windows Codec dlls für diverse Multimediaformate.&lt;br /&gt;
* '''libxine1''' - ersetzt das kastrierte &amp;quot;xine-lib&amp;quot; Paket von Suse.&lt;br /&gt;
* '''xine-ui''' - der Xine Player.&lt;br /&gt;
* '''kaffeine''' - großartiger Video-Player, der auf xine basiert. Von Packman garantiert unkastriert und aktuell.&lt;br /&gt;
* '''lame''' - mp3 Encoder (wird z.B. für [http://www.easylinux.de/2003/08/048-grip/ Grip] benötigt, wenn Grip CDs in das mp3 Format rippen soll).&lt;br /&gt;
* '''libffmpeg0''' - Beinhaltet verschiedene Bibliotheken. Unter anderem auch für *.wmv und *.wma Dateien.&lt;br /&gt;
* '''mplayer''' - Leistungsfähiger Multimediaplayer.&lt;br /&gt;
* '''vlc''' - besonders von Windows Umsteigern gerne genutzter Multimediaplayer.&lt;br /&gt;
Da [http://packman.links2linux.de/ Packman] ein wirklich reichhaltiges Angebot von Paketen bereithält, möchte ich es dem geneigten Leser an dieser Stelle empfehlen, sich selbst einmal bei [http://packman.links2linux.de/ Packman] umzusehen und dort nach interessanten Paketen zu stöbern. Alle Pakete können, nachdem man Packman als alternative Installationsquelle in YaST eingefügt hat [[YaST-Installationsquellen für SuSE Linux|(wie hier für die verschiedenen Suse Versionen beschrieben wird)]], über YaST installiert werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zusammenfassende Liste aller erforderlichen oder interessanten Multimediapakete ==&lt;br /&gt;
Die nachfolgende Liste nennt nochmals alle erforderlichen oder interessanten Pakete. Verwender anderer Paketmanager als YaST (apt, smart, etc.) können die Pakete dieser Liste einfach über ihren jeweiligen Paketmanager installieren.&lt;br /&gt;
* '''amarok''' - Der Audioplayer amaroK&lt;br /&gt;
* '''amarok-xine'''&lt;br /&gt;
* '''xmms'''&lt;br /&gt;
* '''xmms-lib'''&lt;br /&gt;
* '''w32codec-all''' - das Paket enthält Windows Codec dlls für diverse Multimediaformate.&lt;br /&gt;
* '''libxine1''' - ersetzt das kastrierte &amp;quot;xine-lib&amp;quot; Paket von Suse.&lt;br /&gt;
* '''xine-ui''' - der Xine Player.&lt;br /&gt;
* '''kaffeine''' - großartiger Video-Player, der auf xine basiert. Von Packman garantiert unkastriert und aktuell.&lt;br /&gt;
* '''lame''' - mp3 Encoder (wird z.B. für [http://www.easylinux.de/2003/08/048-grip/ Grip] benötigt, wenn Grip CDs in das mp3 Format rippen soll).&lt;br /&gt;
* '''libffmpeg0''' - Beinhaltet verschiedene Bibliotheken. Unter anderem auch für *.wmv und *.wma Dateien.&lt;br /&gt;
* '''mplayer''' - Leistungsfähiger Multimediaplayer.&lt;br /&gt;
* '''vlc''' - besonders von Windows Umsteigern gerne genutzter Multimediaplayer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Das Problem: DVD abspielen =&lt;br /&gt;
&lt;br /&gt;
== Die rechtliche Grauzone ==&lt;br /&gt;
DVDs abzuspielen ist unter Linux ein besonderes Problem. Video-DVDs sind nämlich mit einem Abspielschutz, dem Content-Scrambling-Verfahren (CSS), versehen, von dem teilweise auch behauptet wird, dass es sich hierbei auch um einen Kopierschutz handle. Ohne einen entsprechenden Schlüssel ist es daher nicht möglich, diese DVDs abzuspielen. Kommerzielle Abspielprogramme oder Heim-DVD-Player verfügen über eine entsprechende Lizenz und somit über den besagten Schlüssel. Open Source Anwendungen verfügen dagegen in aller Regel nicht über eine entsprechende kostenpflichtige Lizenz, weswegen Video-DVDs im allgemeinen unter Linux-Systemen nicht out-of-the-Box abspielbar sind.&lt;br /&gt;
&lt;br /&gt;
Es gibt zwar für Linux ein Paket namens [http://de.wikipedia.org/wiki/Libdvdcss libdvdcss2], welches DVDs entschlüsselt, die mit dem CSS Verfahren verschlüsselt sind und mit dem man unter Linux seine legal erworbenen Video-DVDs abspielen kann, die rechtliche Lage um dieses Paket ist jedoch leider unklar. Es erscheint nämlich fraglich, ob es sich bei CSS um eine &amp;quot;wirksame technische Maßnahme&amp;quot; nach [http://www.gesetze-im-internet.de/urhg/__95a.html § 95a UrhG] handeln könnte. Zu dieser Frage gibt es jedoch derzeit keine Rechtsprechung. Sollte das CSS Verfahren unter den Begriff der &amp;quot;wirksamen technischen Maßnahme&amp;quot; im Sinne des [http://www.gesetze-im-internet.de/urhg/__95a.html § 95a UrhG] zu subsumieren sein, so wäre die Umgehung von CSS durch die libdvdcss2 nicht gestattet. Die libdvdcss2 dürfte in diesem Fall nicht verwendet werden. Da es zu dieser Frage keine Rechtsprechung gibt, die Frage kontrovers diskutiert und mit unterschiedlichen Begründungen auch sehr unterschiedlich und uneinheitlich beantwortet wird, kann die Rechtslage um das Paket libdvdcss2 nur als unklar und ungewiss angesehen werden.&lt;br /&gt;
&lt;br /&gt;
Wegen dieser unklaren Rechtslage wird hier auf eine Installationsanleitung, einen Link auf das Paket und auf eine Empfehlung des Pakets ausdrücklich verzichtet. Auch wenn eine Installation über apt und smart möglich ist, so wird an dieser Stelle ausdrücklich darauf hingewiesen, dass auch dies aus den geschilderten rechtlichen Gründen an dieser Stelle nicht empfohlen werden kann. Eine Nennung der entsprechenden Quellen kann daher ebenfalls nicht erfolgen.&lt;br /&gt;
&lt;br /&gt;
Zur rechtlichen Problematik um das Paket libdvdcss2 siehe außerdem [http://www.linux-user.de/ausgabe/2006/02/060-multimedia-recht/index.html diesen Artikel der Zeitschrift LinuxUser], [http://packman.links2linux.de/?action=122 bei Packman] und [http://de.wikipedia.org/wiki/Libdvdcss bei Wikipedia] (jeweils m.w.N.), sowie in den unten angeführten Quellenangaben.&lt;br /&gt;
&lt;br /&gt;
== Eine legale Möglichkeit zum Abspielen von DVDs unter Linux ==&lt;br /&gt;
Wer die oben beschriebene rechtliche Grauzone gerne umgehen möchte, dem wird geraten das kommerzielle Programm '''LinDVD''' käuflich zu erwerben. Dieses Programm bringt alle erforderlichen Lizenzen mit und ermöglicht es so, legal DVDs unter Linux anzusehen.&lt;br /&gt;
&lt;br /&gt;
Homepage von LinDVD: http://www.intervideo.com/jsp/LinDVD.jsp &amp;lt;br/&amp;gt;&lt;br /&gt;
Artikel zu LinDVD in der Zeitschrift LinuxUser: http://www.linux-user.de/ausgabe/2007/02/008-lindvd/index.html &amp;lt;br/&amp;gt;&lt;br /&gt;
Artikel zu LinDVD in der Zeitschrift LinuxUser: http://www.linux-user.de/ausgabe/2007/01/072-lindvd &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Quellenangaben und weiterführende Links =&lt;br /&gt;
* [http://packman.links2linux.de/ Packman Seite] &lt;br /&gt;
* [http://www.linux-user.de/ausgabe/2006/02/060-multimedia-recht/index.html Zeitschrift LinuxUser, Artikel &amp;quot;Legal, illegal, multimedial&amp;quot;]&lt;br /&gt;
* [http://www.easylinux.de/2004/09/064-basics/ Zeitschrift EasyLinux, Artikel &amp;quot;Multimedia und Rechte - DVD und MP3 -- nein danke?]&lt;br /&gt;
* [http://de.wikipedia.org/wiki/Libdvdcss Wikipedia, Artikel &amp;quot;libdvdcss2&amp;quot;]&lt;br /&gt;
* [http://www.easylinux.de/2003/08/048-grip/ Artikel der Zeitschrift EasyLinux zu Grip (mit guter Anleitung)]&lt;br /&gt;
* [http://de.wikipedia.org/wiki/Content_Scrambling_System Wikipedia, Artikel zum &amp;quot;CSS&amp;quot;]&lt;br /&gt;
* [http://de.wikipedia.org/wiki/DVD-Video Wikipedia, Artikel &amp;quot;DVD-Video&amp;quot;]&lt;br /&gt;
* [http://de.wikipedia.org/wiki/DVD-Video#Verschl.C3.BCsselung Wikipedia, Artikel &amp;quot;DVD-Video&amp;quot;, Abschnitt &amp;quot;Verschlüsselung&amp;quot;]&lt;br /&gt;
* [http://www.gesetze-im-internet.de/urhg/index.html Das Urhebergesetz]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Multimedia | Zurück zu Multimedia]][[Category:Multimedia]][[Kategorie:HowTo]]&lt;/div&gt;</summary>
		<author><name>K4m1K4tz3</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Dd&amp;diff=20174</id>
		<title>Dd</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Dd&amp;diff=20174"/>
		<updated>2007-07-20T15:07:52Z</updated>

		<summary type="html">&lt;p&gt;K4m1K4tz3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{UnderConstruction}}  --[[Benutzer:Robi|Robi]] 19:40, 7. Jul 2007 (CEST)&lt;br /&gt;
{{Box Achtung||&lt;br /&gt;
viele der auf dieser Seite vorgestellten Befehle werden nur unter Rootkennung funktionieren und die Befehle müssen auf die Gegebenheiten des eigenen Rechners abgestimmt werden. Nur kleine Schreib- oder Denkfehler können schon zu ernsten Datenverlusten führen, desshalb '''vor dem Betätigen der Enter-Taste den Befehl genau anschauen'''&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= das Kommando dd = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== allgemeines zum Kommando dd ==&lt;br /&gt;
&lt;br /&gt;
dd ist ein Kommando das noch aus der Urzeit von [http://de.wikipedia.org/wiki/Unix Unix] stammt. Der Name sollte früher ''Copy and Convert'' bedeuten, das Programmkürzel '''&amp;quot;cc&amp;quot;''' ('''C'''ompiler '''C'''ollection) war jedoch schon an den [http://de.wikipedia.org/wiki/C_%28Programmiersprache%29 C-][http://de.wikipedia.org/wiki/Compiler Compiler] vergeben. Daher kam es wohl kurzerhand zu &amp;quot;'''dd'''&amp;quot;. Heute wird dieses Kürzel oftmals als '''disk dump''' oder ähnlich übersetzt, ursprünglich sollte es wohl doch mehr an das [http://de.wikipedia.org/wiki/Job_Control_Language JCL]-Kommando &amp;quot;Data Definition&amp;quot; erinnern, auch die für UNIX-Befehle doch sonderbaren Optionensschreibweisen erinnern noch sehr stark an diese Abstammung.&lt;br /&gt;
&lt;br /&gt;
Das UNIX-Kommando '''dd''' dient dem Umleiten von [http://de.wikipedia.org/wiki/Datenstrom Datenstömen]. Dabei kann es diese Datenströme [http://de.wikipedia.org/wiki/Byte Byteweise] bearbeiten und universell blocken. Als Quelle und Ziel der Datenströme können sowohl normale Dateien, die normalen Ein- und Ausgabekanäle der Prozesse und auch Geräteknoten verwendet werden. In früherer Zeit benötigte man das Programm dd , um inkompatible Formate und Zeichensätze zwischen unterschiedlichen Betriebssystemen und Geräten zu kopieren, und um Daten auf externen [http://de.wikipedia.org/wiki/Peripherieger%C3%A4t Peripheriegeräten] (oftmals [http://de.wikipedia.org/wiki/Bandlaufwerk Bandgeräte]) lesen und schreiben zu können.&lt;br /&gt;
 &lt;br /&gt;
Typischen Beispielaufgaben aus dieser Zeit könnten heute auf Linux etwa so ausgesehen:&lt;br /&gt;
*  Auslesen eines [http://de.wikipedia.org/wiki/EBCDIC EBCDIC]-Bandes (80 Zeichen pro Record, 10 Records pro Block, Dichte 1600 bpi) Ausgabe als [http://de.wikipedia.org/wiki/ASCII Ascii]-Datei:&lt;br /&gt;
    dd if=/dev/nst1 of=/datei ibs=800 cbs=80 conv=ascii,lcase&lt;br /&gt;
&lt;br /&gt;
Für Konvertierungsaufgaben benötigt man heute '''dd''' nur noch wenig. Dort wo noch mit solchen inkompatiblen Daten gearbeitet wird, benutzt man heute meist Programme die schon die entsprechende Ein- und Ausgabefilter mitbringen. Wohl aber benötigt man auch heute noch die universellen Bockungsmöglichkeiten von '''dd''' in Bezug auf Datenströme und [http://de.wikipedia.org/wiki/Ger%C3%A4tedatei#Blockorientierte_Ger.C3.A4te Geräteknoten], sowie die Möglichkeit im Datenstrom gezielt zu positionieren. Besondere &amp;quot;Berühmtheit&amp;quot; hat heutzutage jedoch die Möglichkeit erlangt, Partitionen und ganze Festplatten bytegenau zu kopieren, was fälschlicher Weise dazu verleitet mag '''dd''' auch noch in den Rang eines [[Liste_von_Backupprogrammen|Backuptools]] zu erheben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== die Optionen von dd ==&lt;br /&gt;
&lt;br /&gt;
Die Optionen von '''dd''' unterscheiden sich grundlegend von denen der meisten UNIX/Linux Kommandos. Eine Übersicht erhaltet ihr mit der Option '''--help''' oder der&lt;br /&gt;
[http://usr-share-man.org/man1/dd.html Manpage von dd] ''( Achtung: evtl. sind nicht alle Optionen in eurer installierten Version vorhanden)''. Auch eine Infoseite &amp;quot;'''info:/coreutils/dd invocation'''&amp;quot; sollte bei vielen installiert sein.&lt;br /&gt;
 &lt;br /&gt;
Die genaue '''SYNOPSIS''' ''(ältere Version)''&amp;lt;br&amp;gt;&lt;br /&gt;
 dd [--help] [--version] [if=file] [of=file] [ibs=bytes] [obs=bytes] [bs=bytes] [cbs=bytes] [skip=blocks]&lt;br /&gt;
 [seek=blocks] [count=blocks] [conv={ascii, ebcdic, ibm, block, unblock, lcase, ucase, swab, noerror, notrunc, sync}]&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ ''' Die wichtigsten Optionen im Überblick '''&lt;br /&gt;
&lt;br /&gt;
!''if=Datei''&lt;br /&gt;
||&lt;br /&gt;
Der Datenstrom, der umgeleitet werden soll. Das kann eine Datei oder Gerätedatei, also auch eine Festplatte oder ein anderes Gerät sein.  Wird ''if'' weggelassen liest '''dd''' von der Standardeingabe.&lt;br /&gt;
|-&lt;br /&gt;
!''of=Datei''&lt;br /&gt;
||&lt;br /&gt;
Die Datei, auf die geschrieben werden soll. Dies kann wieder eine Datei oder ein Gerät sein. Wird ''of'' weggelassen schreibt '''dd''' auf die Standardausgabe.&lt;br /&gt;
|-&lt;br /&gt;
!''ibs=Bytes''  &lt;br /&gt;
||&lt;br /&gt;
Eingabe-Blockgröße (''input block size''), gibt an, wie viele Bytes auf ein Mal gelesen werden sollen. &lt;br /&gt;
|-&lt;br /&gt;
!''obs=Bytes''  &lt;br /&gt;
||&lt;br /&gt;
Ausgabe-Blockgröße (''output block size''), gibt an, wie viele Bytes auf ein Mal geschrieben werden sollen.&lt;br /&gt;
|-&lt;br /&gt;
!''bs=bytes''&lt;br /&gt;
||&lt;br /&gt;
Kurzschreibweise für ''ibs=bytes obs=bytes''. Der Standardwert bei Nichtangabe ist 512 Bytes. &lt;br /&gt;
|-&lt;br /&gt;
!''count=Blocks''  &lt;br /&gt;
||&lt;br /&gt;
Angabe, um nur eine begrenzte Menge Blöcke zu kopieren.&lt;br /&gt;
|-&lt;br /&gt;
!''skip=Blocks''  &lt;br /&gt;
||&lt;br /&gt;
Angabe, um eine Anzahl Blocks beim lesen am Anfang zu überspringen.&lt;br /&gt;
|-&lt;br /&gt;
!''seek=blocks''  &lt;br /&gt;
||&lt;br /&gt;
Überspringt diese Anzahl Blöcke beim schreiben auf die Ausgabe.&lt;br /&gt;
|-&lt;br /&gt;
!''conv=Schlüsselwörter ''  &lt;br /&gt;
||&lt;br /&gt;
Wandelt den Datenstrom entsprechend einer Kommagetrennten Liste von Schlüsselwörtern.&lt;br /&gt;
|-&lt;br /&gt;
!''cbs=Bytes''  &lt;br /&gt;
||&lt;br /&gt;
Umwandlungs-Blockgröße (convert block size): Größe der Blöcke zum Umwandeln auf ein Mal.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== die Ein- und Ausgabefile ===&lt;br /&gt;
&lt;br /&gt;
Beide Filenamen werden in den Optionen angegeben nach folgenem Prinzip&lt;br /&gt;
 if=/PATH/EINGABEDATEI   #die Datei oder Gerät aus dem gelesen wird&lt;br /&gt;
 of=/PATH/AUSGABEDATEI   #die Datei oder Gerät auf das geschrieben wird&lt;br /&gt;
sollte einer oder beide nicht explizid so angegeben werden, dann wird von '''dd''' automatisch mit dem entsprechenden Standard-Ein/Ausgabe-Kanal gearbeitet. Man kann immer jeweils nur einen Dateinamen angeben, es geht also weder eine Space- noch eine Kommaseparierte Liste und auch die Shell übernimmt hier keine Path- oder Filenamensexpansionen. Nur relative und absolute Dateiadressierung sowie die '''tilde expansion''' sind zulässig, ansonsten sind immer komplette absolute oder relative Path und kompletter Dateinamen anzugeben. Auf den Inhalt von Variablen für die Dateinamen kann zugegriffen werden. Soweit im Dateinamen Sonderzeichen enthalten sind, muß das aber im dd-Komando unbedingt berücksichtigt werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
 NULL=/dev/null                  &lt;br /&gt;
 INFILE=&amp;quot;/home/user/datei orginal&amp;quot;&lt;br /&gt;
 dd if=&amp;quot;$INFILE&amp;quot; of=$NULL &lt;br /&gt;
&lt;br /&gt;
{{Box Achtung||&lt;br /&gt;
Beim Zugriff auf Geräteknoten, also zB Festplatten, Partitionen, Bandgeräte usw. immer einmal mehr prüfen ob nicht doch '''if''' und '''of''' verwechselt wurden. Es droht hier bei Verwechslungen unter Userkennung root Datenverlust. &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== die Blockgröße ===&lt;br /&gt;
&lt;br /&gt;
Die Blockgröße gibt an, wieviele Byte bei einem read- oder write-Kommando gleichzeitig verarbeitet werden. Im Normalfall ist man unter Linux ja gewohnt, dass man sich darum überhaupt nicht kümmern muss, das macht Linux im Hintergrund für uns immer richtig. Da wird zB von der Tastatur jedes einzelne Zeichen gelesen, Eingaben werden zeilenweise nach Bestätigung der ENTER-Taste verarbeitet, auf die Festplatte wird mittels des Caches mit 4KB Blockgröße lesend und schreibend zugegriffen, über Internet werden Pakete mit maximaler Größe von 1500 Byte gesendet usw. Alles Dinge von denen wir gar nichts mitbekommen, und von denen wir auch die meisten überhaupt nicht beeinflussen könnten, selbst wenn wir das wollten.&lt;br /&gt;
&lt;br /&gt;
Anders jedoch beim Befehl dd. Hier arbeitet der Befehl, sollten wir nichts anderes angeben, immer mit 512 Byte lesend und schreibend und hier können wir das sowohl beim lesenden- wie auch den schreibenden-Zugriff und sogar getrennt beeinflussen.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
'''Zu was soll das gut sein, werden sich die meisten fragen'''.&amp;lt;br&amp;gt;&lt;br /&gt;
Eine Regentonne voll mit Wasser kann man sowohl mit einem Eimer, mit einer Suppenkelle aber auch mit einem Kaffeelöffelchen &amp;quot;leerschaufeln&amp;quot;, was ist wohl die schnellste und rückenschonendste Methode? Ähnlich verhalten sich viele Geräte wenn wir direkt zB über dd auf sie zugreifen.&lt;br /&gt;
&lt;br /&gt;
Im folgende Beispiel wird eine kleine Partition einer SCSI-Platte mit &amp;quot;NULLEN&amp;quot; überschrieben, wobei mit der Blockgröße von dd gespielt wird. &amp;lt;br&amp;gt;&lt;br /&gt;
  time dd if=/dev/zero of=/dev/sdb1 bs=512&lt;br /&gt;
(wobei bei bs= die Werte 16 64 512 2K 8K 32K und 128K zum Einsatz kamen)&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! width=&amp;quot;20%&amp;quot; | Blockgröße &lt;br /&gt;
! width=&amp;quot;20%&amp;quot; | real time &lt;br /&gt;
! width=&amp;quot;20%&amp;quot; | user time &lt;br /&gt;
! width=&amp;quot;20%&amp;quot; | sys time&lt;br /&gt;
|-&lt;br /&gt;
!16 Byte &lt;br /&gt;
|| 2m26.593s|| 0m7.898s || 1m2.839s&lt;br /&gt;
|-&lt;br /&gt;
!64 Byte &lt;br /&gt;
|| 1m39.600s ||0m2.734s  || 0m23.812s&lt;br /&gt;
|-&lt;br /&gt;
!512 Byte &lt;br /&gt;
|| 1m18.710s||0m0.465s  ||  0m6.942s&lt;br /&gt;
|-&lt;br /&gt;
! 2 KByte &lt;br /&gt;
||1m16.131s  ||0m0.100s || 0m3.552s&lt;br /&gt;
|-&lt;br /&gt;
! 8 KByte &lt;br /&gt;
|| 0m29.137s || 0m0.016s  ||  0m1.299s&lt;br /&gt;
|-&lt;br /&gt;
! 32 KByte &lt;br /&gt;
|| 0m29.159s || 0m0.012s ||  0m1.507s&lt;br /&gt;
|-&lt;br /&gt;
! 128 KByte &lt;br /&gt;
|| 0m29.115s || 0m0.003s || 0m1.474s&lt;br /&gt;
|}&lt;br /&gt;
Wir erkennen, die default Einstellung von dd (512 Byte) ist zwar auf dieser Platte nicht die Allerschlechteste, aber es geht durchaus noch 3 Mal schneller. Da moderne Festplatten in der Regel heute einen Cache haben der zumindestens beim Lesen genutzt ist, ergeben sich beim Lesen von Partitionen oder ganzen Festplatten oftmals ganz andere (weniger unterschiedliche) Werte. &lt;br /&gt;
&lt;br /&gt;
Wesentlich gravierender sind die Unterschiede jedoch bei Bandlaufwerken, es gibt verschiedene Möglichkeiten wie  das Laufwerk die ihm übertragene Blockgröße interpretieren soll, man muss prinzipiell jeden Block mit der selben Blocksize lesen, mit der der Block auch geschrieben wurde, eine ungünstige Blockgröße kostet nicht nur Zeit sondern bedeutet auch erhöhten Verschleiß an Bandmaterial und Laufwerk und nicht zuletzt auch noch ein höheres Fehlerrisiko. Wer sich näher damit befassen will oder muss kann unter [[Bandlaufwerke_und_LINUX|Bandlaufwerke und Linux]] und speziell über die  [[Bandlaufwerke_und_LINUX#Die_richtige_Blockgröße|richtige Blockgröße bei Bandlaufwerken]] im Wiki näher infomieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es gibt im Internet die abendteuerlichsten Berechnungsmodelle für die &amp;quot;richtige Blockgröße&amp;quot; von dd für den Zugriff auf Festplatten. Man geht dabei von der Ausgabe des [http://www.die.net/doc/linux/man/man8/fdisk.8.html fdisk-Befehles] aus, und errechnet aus den dort ausgegebenen Werten der Köpfen, Sektoren, Cylindern und Units irgendwie eine &amp;quot;optimale Blockgröße&amp;quot; und kommt dann auf solche Werte wie zB. 16065 Byte.[http://linuxwiki.de/dd ] &amp;lt;br&amp;gt; &lt;br /&gt;
Abgesehen, dass solche Werte dann manchmal nicht einmal durch 512 (die kleinste Speichereinheit auf einer Festplatte) teilbar sind, schon eine einfache Überlegung müsste den völligen Unsinn eines solchen Unterfangens aufzeigen. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LINUX:~ # fdisk -l /dev/sdb&lt;br /&gt;
&lt;br /&gt;
Disk /dev/sdb: 18.2 GB, 18275768320 bytes&lt;br /&gt;
255 heads, 63 sectors/track, 2221 cylinders&lt;br /&gt;
Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
.......&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Diese Festplatte, die laut Hersteller 5 Scheiben mit je 2 Köpfen hat, sollte jetzt plötzlich 255 Köpfe haben. Damit müsste sie nach heutiger Bauweise in etwa 30 bis 35 cm dick sein und hätte ein stattliches Gewicht von einigen kg. '''Also absolute Vorsicht mit solchen Berechnungen.''' Die heutigen Platten verwalten intern ihre eigene [http://de.wikipedia.org/wiki/Festplattengeometrie Geometrie] und werden von außen nur über [http://de.wikipedia.org/wiki/Logical_Block_Addressing LBA]-Verfahren angesprochen. Die Geometrie die uns zB ''fdisk'' nach außen zeigt, ist eine reine logische die mit der tatsächlichen nur eines gemein hat, die ungefähre (etwas kleiner) Gesamtgröße, und kann mit Befehlen wie zB. ''fdisk'' bei Bedarf auch angepasst oder geändert werden. &lt;br /&gt;
&lt;br /&gt;
Die optimalsten Werte sind von eine Vielzahl von vor allem baulichen Faktoren abhängig und werden heute in vielen Geräten obendrein noch über Cache in den Geräten gepuffert, womit man mit größeren Werten nie falsch liegen kann.&amp;lt;br&amp;gt;&lt;br /&gt;
Prinzipiell, (wenn keine anderen Faktoren dagegen sprechen- siehe Positionierung im Datenstrom) nur Werte die durch 512 teilbar sind, für Disketten, kleine Speicherkarten und kleine Sticks und ganz alte oder schon teilweise defekte Platten 512 Byte, für die restlichen Platten 4 oder 8 KByte, bei CD-ROM und DVD 1 oder 2 KByte und für [http://de.wikipedia.org/wiki/Magneto_Optical_Disk MO-Disk] [http://de.wikipedia.org/wiki/Ultra_Density_Optical UDO] und andere [http://de.wikipedia.org/wiki/WORM WORM], nur die vom Hersteller und der jeweiligen Technologie vorgeschriebenen Blockgröße, und man sollte auf der richtigen Spur sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Positionierung innerhalb des Datenstrom === &lt;br /&gt;
&lt;br /&gt;
Als Datenstrom bezeichnen wir hier mal alles, womit dd arbeiten kann, also zB. Pipe, Datei, Gerät,... &amp;lt;br&amp;gt;&lt;br /&gt;
DD kennt als Bezugspunkt immer nur den Anfang von Eingangsstrom und Anfang vom Ausgangsstrom. Da man aber nicht immer den kompletten Eingangsstrom bis zum Ende auf Ausgangsstrom von Anfang an kopieren will, muss man innerhalb dieser beide Datenströme auch positionieren können. Das geht mit den Optionen '''skip= seek=''' und '''count=''' und diese sind jeweils von den gesetzten Blockgrössen abhängig.&lt;br /&gt;
&lt;br /&gt;
Wenn wir dd ohne solche Positionierungs-Optionen starten, dann kopiert dd den Eingangsdatenstrom von Anfang bis ein EOF ('''E'''nd '''O'''f '''F'''ile) kommt, komplett auf den Ausgangsdatenstrom. Bei Lese- oder Schreibfehlern wird an dieser Stelle dd abgebrochen. Ein EOF kann das Ende einer normalen File sein, aber auch zB der Abbruch eines am Eingang über Pipe verbundenen Befehles. Auch der Versuch zB. über eine Gerätegrenze (zB Partition zu Ende) zu lesen oder schreiben, führt zu einen EOF Fehler.&lt;br /&gt;
&lt;br /&gt;
Die Gesamtanzahl der zu kopierenden Blöcke kann mit der Option '''count=''' begrenzt werden. &amp;lt;br&amp;gt;&lt;br /&gt;
 count=100    &lt;br /&gt;
kopiert genau 100 Blöcke ( Eingangsblockgröße ) &lt;br /&gt;
&lt;br /&gt;
Es können am Eingangsstrom anfänglich Blöcke (Eingangsblockgröße) übersprungen werden, die dann nicht mit kopiert werden, und die auch nicht von einem eventuell gesetzem count-Wert abgezogen werden. Die Option dazu ist '''skip='''&amp;lt;br&amp;gt;&lt;br /&gt;
 skip=100 count=50  &lt;br /&gt;
kopiert genau 50 Blöcke (Eingangsblockgröße) wobei am Anfang 100 (Eingangsblockgröße) übersprungen werden, bevor mit dem kopieren begonnen wird.&lt;br /&gt;
&lt;br /&gt;
Es können am Ausgangsstrom anfänglich Blöcke (Ausgangsblockgröße) übersprungen werden bevor der erste Block dorthin kopiert wird. Diese Option ist '''seek='''.&amp;lt;br&amp;gt;&lt;br /&gt;
 seek=100 count=50 &lt;br /&gt;
kopiert die ersten 50 Blöcke (Eingangsblockgröße) vom Eingangstrom  ab dem 101 Block (Ausgangsblockgröße) in den Ausgangsstrom. (''Die ersten 100 Blocke der Größe obs= bleiben also im Ausgangsstrom unberührt, erst danach kommt der erste kopierte Block'') Diese Option macht nicht mit allen Ausgangsdatenströmen Sinn, und führt zB. in Verbindung mit der Standardausgabe zum &amp;quot;hängenbleiben&amp;quot; des Befehles, da ja erstmal auf Daten gewartet werden muss, die gar nicht kommen können. Beim Anwenden auf normale Dateien führt ein zu großer seek-Wert (größer als Ausgangsdatei) zum weiterschreiben der Datei am Ende.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Soweit zur Theorie und zu den wichtigsten Optionen &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== die Ausgaben von dd ==&lt;br /&gt;
&lt;br /&gt;
Wir untersuchen dazu einmal exemplarisch eine Ausgabe eines dd-Befehls, hier wurde von der Partition /dev/sda2 mit einer Blockgröße von 8KByte gelesen und auf ein Tape /dev/nst0 mit 256 KByte Blockgröße geschrieben.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LINUX:~ # dd if=/dev/sda2 of=/dev/nst0 ibs=8K obs=256K&lt;br /&gt;
262256+0 records in&lt;br /&gt;
8195+1 records out&lt;br /&gt;
2148401152 bytes (2.1 GB) copied, 74.8721 seconds, 28.7 MB/s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
; 262256+0 records in :&lt;br /&gt;
es wurden '''262256''' Blöcke a. 8K gelesen, die '''+0''' bedeuten, es gab am Ende keine Rest, also der letzte Block hatte wirklich auch 8K Größe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; 8195+1 records out :&lt;br /&gt;
es wurden '''8195''' Blöcke a. 256K geschrieben, die '''+1''' bedeutet, es wurde zusätzlich noch ein Restbock geschreiben, der nicht die volle Größe von 256K hatte. Wenn mit der Option &amp;quot;bs=&amp;quot; gearbeitet wird, oder die Blockgrößen sonst wie für Ein/Ausgabe gleich sind, dann sollten bei einem ordnungsgemäßen Ablauf des Befehls beide Werte immer gleich ausfallen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;2148401152 bytes (2.1 GB) copied, 74.8721 seconds, 28.7 MB/s :&lt;br /&gt;
die Schlußzeile erhalten wir nur in neueren Versionen von dd. Sie beinhaltet hier die Gesamtanzahl der übertragenen Byte die Zeit und die durchschnittliche Geschwindigkeit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Solange der Befehl dd läuft erhalten wir ansonsten von ihm keinerlei Ausgaben. Wir können uns aber den Status der aktuell übertragenen Daten in der oben beschriebenen Form anzeigen lassen, indem wir dem dd-Prozess ein Signal 10 '''(SIGUSR1)''' senden. Alle diese Ausgaben kommen über den Standardfehlerausgabekanal des Prozesses dd.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Anwendungsgebiete und Beispiele ==&lt;br /&gt;
&lt;br /&gt;
=== mit dd Dateien erzeugen ===&lt;br /&gt;
 &lt;br /&gt;
Hin und wieder benötigt man spezielle Dateien in bestimmter Größe und mit typischen oder speziellen Inhalt. Das können einfach Dateien sein, die man zum testen benötigt oder auch Dateien um darin zB Filesysteme anzulegen oder oder oder.&amp;lt;br&amp;gt;&lt;br /&gt;
Das geht mit dd sehr einfach. Wir benötigen nur einen Quelldatenstrom dazu. Auf die Blockgrößen brauchen wir hier meistens gar nicht zu achten (eventuell/selten könnte aber der gewünschte Quelldatenstrom eine Blockgröße fordern), da das Filesystem in das wir unsere Datei schreiben sowieso gebuffert ist, also können wir mit '''bs=''' und '''count=''' unsere gewünschte eindeutige Dateigröße sehr schön festlegen.  &lt;br /&gt;
 Blockgröße x Count = Dateigröße&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Erzeugen einer mit Nullen gefüllten Datei ====&lt;br /&gt;
&lt;br /&gt;
Als Quelldatenstrom nutzen wir dazu '''/dev/zero''' ( nicht /dev/null , da beim lesen von /dev/null nur ein EOF zurückgeliefert wird und wir eine Datei mit Länge Null erhalten würden)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
robi@LINUX:~/test&amp;gt; dd if=/dev/zero of=file.leer bs=1M count=1024&lt;br /&gt;
1024+0 Datensätze ein&lt;br /&gt;
1024+0 Datensätze aus&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
erzeugt eine 1GB große (ergibt sich aus 1MByte x 1024) Datei voller Nullen &lt;br /&gt;
&lt;br /&gt;
==== Erzeugen von Sparse Dateien ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
robi@LINUX:~/test&amp;gt; dd if=/dev/zero of=file.sparse count=0 obs=1 seek=1G&lt;br /&gt;
0+0 Datensätze ein&lt;br /&gt;
0+0 Datensätze aus&lt;br /&gt;
robi@LINUX:~/test&amp;gt; ls -l file.*&lt;br /&gt;
-rw-r--r--  1 robi users 1073741824 2007-06-29 23:37 file.leer&lt;br /&gt;
-rw-r--r--  1 robi users 1073741824 2007-06-30 01:24 file.sparse&lt;br /&gt;
-rw-r--r--  1 robi users 1073741824 2007-06-30 00:12 file.zufall&lt;br /&gt;
robi@LINUX:~/test&amp;gt; stat file.sparse&lt;br /&gt;
  File: ,,file.sparse&amp;quot;&lt;br /&gt;
  Size: 1073741824      Blocks: 0          IO Block: 4096   reguläre Datei&lt;br /&gt;
Device: 802h/2050d      Inode: 1038268     Links: 1&lt;br /&gt;
Access: (0644/-rw-r--r--)  Uid: ( 1001/    robi)   Gid: (  100/   users)&lt;br /&gt;
Access: 2007-06-30 01:24:39.168204352 +0200&lt;br /&gt;
Modify: 2007-06-30 01:24:39.168204352 +0200&lt;br /&gt;
Change: 2007-06-30 01:24:39.168204352 +0200&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Schreibt 0 Mal 1 Byte (also nichts) ab der Position 1073741824 und erzeugt somit ein 1GB große [http://de.wikipedia.org/wiki/Sparse-Datei Sparse Datei] ohne jeglichen Inhalt.&lt;br /&gt;
Man erkennt es eindeutig an der scheinbaren Differenz zwischen '''Size''' und der Anzahl der benutzen '''Blocks''' mit [http://www.die.net/doc/linux/man/man1/stat.1.html stat]&lt;br /&gt;
&lt;br /&gt;
{{Box Achtung||&lt;br /&gt;
An solchen sparse Dateien ist schon mancher Admin zB bei Backups verzweifelt, man kann ein solches File meist schon durch umkopieren mit cp in ein normales Files umwandeln.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Erzeugen einer Datei gefüllte mit Zufallszahlen ====&lt;br /&gt;
&lt;br /&gt;
Als Quelldatenstrom nutzen wir dazu unter Linux '''/dev/urandom''' (nicht /dev/random , das dauert sonst viel viel zu lange und bringt auch nur das selbe Ergebnis) &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
robi@LINUX:~/test&amp;gt; dd if=/dev/urandom of=file.zufall bs=1M count=1024&lt;br /&gt;
1024+0 Datensätze ein&lt;br /&gt;
1024+0 Datensätze aus&lt;br /&gt;
robi@LINUX:~/test&amp;gt; hexdump -C file.zufall | more&lt;br /&gt;
00000000  60 b2 03 a4 f5 13 46 d0  25 a4 f2 09 1c 31 9f 3f  |`².€õ.FÐ%€ò..1.?|&lt;br /&gt;
00000010  17 b0 8e 32 af a0 87 67  cf 87 2c 4f 6d 92 de 4d  |.°.2¯ .gÏ.,Om.ÞM|&lt;br /&gt;
00000020  38 3c a2 29 58 09 fd b7 ........&lt;br /&gt;
.......&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Als Größe wurde hier wieder wie schon oben 1GByte festgelegt. Mit [http://bashcurescancer.com/man/cmd/hexdump hexdump] haben wir gleich mal hineingeschaut, ob auch alles schön zufällig ist. ;-) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Erzeugen einer Datei mit typischen Eigenschaften und genau definierter Länge ====&lt;br /&gt;
&lt;br /&gt;
Die unterschiedlichen Dateien haben unterschiedliche Eigenschaften zB beim Komprimieren. ZB. Zufallsdateien lassen sich überhaupt nicht komprimieren, Dateien mit lauter Nullen dagegen extrem, Logdateien sehr gut, Textdateien auch noch gut, aber Binärdateien nicht besonders gut. Wenn wir jetzt so eine Datei mit solchen typischen Komprimierungseigenschaften zu Testzwecken benötigen, dann können wir und mit dd eine solche mit genaue definierter Länge erzeugen.&lt;br /&gt;
&lt;br /&gt;
Als Beispiel wollen wir hier eine genau 5MByte große Datei aus einigen Bilddateien erzeugen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
robi@LINUX:~/test&amp;gt; ls -l bild*.jpg&lt;br /&gt;
-rw-r--r--  1 robi users 277960 2007-06-29 22:34 bild0.jpg&lt;br /&gt;
-rw-r--r--  1 robi users 312872 2007-06-29 22:48 bild10.jpg&lt;br /&gt;
-rw-r--r--  1 robi users 120061 2007-06-29 22:08 bild1.jpg&lt;br /&gt;
-rw-r--r--  1 robi users 164171 2007-06-29 22:10 bild2.jpg&lt;br /&gt;
-rw-r--r--  1 robi users 179737 2007-06-29 22:13 bild3.jpg&lt;br /&gt;
-rw-r--r--  1 robi users 173341 2007-06-29 22:13 bild4.jpg&lt;br /&gt;
-rw-r--r--  1 robi users 165532 2007-06-29 22:14 bild5.jpg&lt;br /&gt;
-rw-r--r--  1 robi users 161892 2007-06-29 22:16 bild6.jpg&lt;br /&gt;
-rw-r--r--  1 robi users 126340 2007-06-29 22:17 bild7.jpg&lt;br /&gt;
-rw-r--r--  1 robi users 125396 2007-06-29 22:19 bild8.jpg&lt;br /&gt;
-rw-r--r--  1 robi users 289134 2007-06-29 22:21 bild9.jpg&lt;br /&gt;
robi@LINUX:~/test&amp;gt; cat bild*.jpg bild*.jpg bild*.jpg bild*.jpg | dd of=file.bild bs=1024K count=5 &lt;br /&gt;
5+0 Datensätze ein&lt;br /&gt;
5+0 Datensätze aus&lt;br /&gt;
robi@LINUX:~/test&amp;gt; ls -l file.bild&lt;br /&gt;
-rw-r--r--  1 robi users 5242880 2007-06-30 00:40 file.bild&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
Unsere Bilddateien haben zusammen nicht ganz 2 MB Größe. Wir Nutzen desshalb [http://linuxreviews.org/man/cat/index.html.de cat] , um die Dateien aneinander zu hängen, und da die Gesammtgröße aller Dateien nicht ausreichen würde, haben wir sie einfach durch  '''&amp;quot;bild*.jpg bild*.jpg bild*.jpg bild*.jpg&amp;quot;''' mehrere Male angegeben, (4 Mal sollte dann hier dicke reichen). ''(wenn man hier bei anderer Gelegenheit einmal zu viele Dateien dazu verwenden müsste, könnte eventuell die Bash einen Fehler bringen, '''zu viele Argumente''', dann kann man auch schrittweise vorgehen)'' &amp;lt;br&amp;gt;&lt;br /&gt;
Den so erzeugten Datenstrom von '''cat''' leiten wir per Pipe an '''dd''' weiter und mit '''&amp;quot;bs=1024K count=5&amp;quot;''' erzeugen wir dann ein genau 5MB großes File daraus, die typische Eigenschaften einer solchen JPEG Bilddatei hat, obwohl sie selbst kein (ein fehlerbehaftes) Bild ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== dd auf Partitionen und ganze Festplatten anwenden ===&lt;br /&gt;
&lt;br /&gt;
==== Allgemeine Bemerkungen und Warnungen ====&lt;br /&gt;
&lt;br /&gt;
Was passiert wenn wir mit dd auf eine Partition oder einer Festplatte zugreifen? &amp;lt;br&amp;gt;&lt;br /&gt;
* Die Byte werden alle sequentiell von der Festplatte gelesen. Dabei werden nicht nur die Inhalte der Dateien, sondern auch die Verwaltungsdaten und die Struktur der Partitionen und der Filesysteme mit gelesen, Ebenfalls mitgelesen werden natürlich auch derzeit unbenutzte- und leere Böcke, und Blöcke die derzeit zu gelöschten Dateien gehören. Die gesamte Partition oder Festplatte wird also Byte für Byte gelesen und so gegebenfalls auch Byte für Byte kopiert.&lt;br /&gt;
&lt;br /&gt;
* dd greift dabei direkt auf die Festplatte zu, also unter Umgehung des Cache der Filesysteme und des Swap. Das Filesystem bekommt das auch gar nicht mit. Wir sollten aus diesem Grunde auch für dd eine geeignete Blockgröße für die Zugriffe angeben (oder mit den default 512 Byte leben). Es ist also keinesfalls immer sichergestellt, dass zu jedem Zeitpunkt wirklich das mit dd gelesen wird, was auch wirklich im Filesystem in diesem Moment aktuell ist.    &lt;br /&gt;
&lt;br /&gt;
* Werden Filesysteme mit dd kopiert die aktuell noch '''readonly gemountet''' sind, dann ist das Ergebnis ein Image von diesem Filesystem das nicht sauber ausgehängt ist. Bevor wir es mounten können, muss erst ein [http://www.die.net/doc/linux/man/man8/fsck.8.html fsck] gemacht werden.&lt;br /&gt;
&lt;br /&gt;
* Werden Filesysteme mit dd kopiert die aktuell noch '''read-write gemountet''' sind, dann '''muss vor dem mounten des Images oder der Kopie bei Jounalfilesystemen ein kompletter Filesystemcheck gemacht werden'''. Ansonsten wird bei fsck nur das Journal abgearbeitet ( die Daten im Journal sind aber weder aktuell noch wirklich gültig und zutreffend) und entstandene Inkonsitenzen und Fehler werden nicht behoben. Solche Fehler und Inkonsitenzen entstehen, da dd ein Filesystem nicht innerhalb eines Bruchteiles von Sekunden lesen kann, sondern dazu einige Minuten oder gar Stunden benötigt. In dieser Zeit arbeitet aber der Cache vom Filesystem ganz normal weiter und ändert auch den Inhalt auf der Platte. Wird jetzt zB. während dd eine Partition ließt, ein Cronjob gestartet der die Logdateien großflächig umorganisiert. Dann kann es natürlich sein, das bestimmte Blöcke von dd schon verarbeitet sind, die später jedoch ungültig werden oder durch andere Blöcke ersetzt werden die dd erst dann ließt wenn sie schon geändert sind. Es ist also durchaus möglich, das selbst nach einem kompletten Filesystemcheck eines so entstandenen Images einige Dateien fehlen, oder einfach einen falschen Inhalt haben, oder im Extremfall, das das Filesystem so defekt ist, das es nur unter enormen Datenverlust wiederhergestellt werden kann. Besonders gefährlich wird das, wenn man bei einem Filesystemcheck nur das Journal abarbeitet, und dann ganz normal unwissentlich  mit einem  strukturdefektem Filesystem weiterarbeitet. Man denkt alles in Ordnung, und plötzlich geht irgendwas nicht richtig oder es geht gar nichts mehr. Jetzt kann ein kompletter Filesystemcheck richtig böse Sachen aufzeigen.&lt;br /&gt;
&lt;br /&gt;
* Zu den Verwaltungsdaten auf den Festplatte und Partitionen gehören natürlich auch die Partitionstabellen und gegebenenfalls Bootloader und auch Kennungs- Zustands- und Verwaltungsdaten von Softwareraid oder Virtuellen Laufwerken, vom Rechner als eindeutig gedeutete Filesystemkennungen, eventuell auch dem Filesystem bekannt gemachte defekte Blöcke. Werden diese Daten auf andere Festplatten kopiert und es sich dabei nicht um eine identischen Festplatte handeln sollte, die die ursprüngliche Festplatte ersetzen soll, sollte man sich hier sehr genau überlegen was man da macht, oder hin und wieder auch einmal mit einer Überraschung beim nächten Bootvorgang rechnen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Festplatte testen durch Lesen ====&lt;br /&gt;
&lt;br /&gt;
* Hin und wieder muss man mal eine Festplatte testen, ob denn diese überhaupt noch richtig angesprochen werden kann.&lt;br /&gt;
 dd if=/dev/hdb of=/dev/null bs=4K count=1000&lt;br /&gt;
:dieser Test dauert nur eine Sekunde, reicht aber aus, um zu erkennen ob die Platte überhaupt noch was tut.&lt;br /&gt;
&lt;br /&gt;
* Hat man viele SCSI-Platten im System, dann kann es hin und wieder vorkommen, man muss unbedingt wissen. welche physikalische Platte ist zB. /dev/sdf &amp;lt;br&amp;gt;&lt;br /&gt;
:solange die Platte bisher nicht mit Fehlern oder Totalausfall geglänzt hat:&lt;br /&gt;
 dd if=/dev/sdf of=/dev/null bs=8K count=100000&lt;br /&gt;
:dieser Test könnte so 30 bis 60 Sekunden laufen, in dieser Zeit sollte die Aktivitäts-LED dieser Platte permanet an sein. Sobald der Befehl beendet ist, oder mit &amp;quot;STRG + C&amp;quot; abgebrochen wird, ist sie aus, oder flackert sporatisch wieder wie eventuell die anderen auch. Wenn diese Platte aber Probleme bereitet, dann ist es meist besser diese nicht direkt anzusprechen, sondern die benachbarten Platten , hier im Beispiel also /dev/sde und /dev/sdg, die Platte zwischen diesen Beiden sollte dann die gesucht /dev/sdf sein.&lt;br /&gt;
&lt;br /&gt;
* Sollte es Busprobleme geben, zB wegen defekten oder ungeeigneten Kabel oder falschen DMA-Einstellungen oder Unverträglichkeit von 2 Geräten am Bus, kann man Lesetests über mehrere Minuten machen, gegebenenfalls über mehrere Geräte am selben Kontroller. Dabei die /var/log/messages auf Einträge beobachten. (Bei IDE Geräten: Fehler- und Befehlsbeschreibung [[Linux mit hdparm beschleunigen|hdparm]])   &lt;br /&gt;
&lt;br /&gt;
* Steht eine Platte in Verdacht auf sporatische oder gelegentliche Leseprobleme, und ist der erste kurze Ansprechtest erfolgreich gewesen, kann man einmal die gesamte Platte oder die entsprechend fehlerverdächtige Partition auslesen. '''(Achtung kann eventuell die Performance des Systems über einen längeren Zeitraum sehr negativ beeinflussen, je nachdem welche Filesysteme sich auf dieser Platte befinden)'''&lt;br /&gt;
 dd if=/dev/hda of=/dev/null bs=4k&lt;br /&gt;
:kommt es zum Abbruch des Befehles wegen Lesefehler, dann wird es allerhöchste Eisenbahn sich eine Reserve Platte zu besorgen, und das letzte Backup auf Vollständigkeit zu prüfen. Eventuell gleich noch ein Backup dieser Platte versuchen. Einige Backup-Programme haben auch Optionen die bei Lesefehlern nicht gleich abbrechen, sondern versuchen erstmal noch weiterzumachen. Fehlerhafte Dateien oder Abschnitte werden übersprungen.&lt;br /&gt;
&lt;br /&gt;
{{Box Achtung ||&lt;br /&gt;
Sollte die Elektonik des Kontrollers oder die Elektronik der Festplatte der Verursacher der zu untersuchenden Fehler gewesen sein, dann kann es in  Einzelfällen dazu führen, dass der dd-Befehl hängen bleibt, aber weder eine Fehlermeldung ausgibt, noch sich mit [http://www.die.net/doc/linux/man/man1/kill.1.html kill] beenden läßt. Mit [http://www.die.net/doc/linux/man/man1/top.1.html top] oder [http://www.die.net/doc/linux/man/man1/ps.1.html ps] ist der Prozessstatus '''&amp;quot;D&amp;quot;''' beim dd-Prozess zu erkennen. Hier einfach erst einmal einige Minuten warten, eventuell greift doch noch ein Befehlstimeout oder eines der Geräte am Bus forciert einen Busreset. Wenn dem nicht so ist und es nach 15 Minuten keine Änderung ergeben hat, dann hilft hier dann oft nur noch ein reboot, um den hängenden dd-Befehl loszuwerden.  &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== der MBR und dd ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== mit dd den Master Boot Record auf Festpatten lesen und schreiben =====&lt;br /&gt;
&lt;br /&gt;
Auf sehr vielen Seiten im Internet wird aufgezeigt wie man mit ''dd'' den [http://de.wikipedia.org/wiki/Master_Boot_Record MBR] ('''M'''aster '''B'''oot '''R'''ecord) einer Festplatte sichern und wieder zurückschreiben kann. Was auf vielen Seiten allerdings meistens fehlt, sind genauere Erklärungen dazu, was sich dort alles befindet, damit man besser abschätzen kann, unter welchen Bedingungen man was damit genau machen kann oder besser lassen sollte, und welche Alternativen es für einzelne Bereiche bzw. Abschnitte gibt. Aus diesem Grunde werden wir das hier einmal etwas ausführlicher behandeln.&lt;br /&gt;
&lt;br /&gt;
{{ Box Anmerkung ||&lt;br /&gt;
Wir sprechen im Weiteren hier von [http://de.wikipedia.org/wiki/BIOS BIOS]-basierten Computern der [http://de.wikipedia.org/wiki/X86-Prozessor x86-Architektur], es gibt durchaus bei anderen Betriebssystemen und Plattformen auch noch ganz andere Architekturen und Strukturen, aber wir bleiben hier mal bei der typischen IBM-kompatiblen PC-Technik, mit der wohl bis auf ganz wenige Ausnahmen hier alle ihr Linux installiert haben werden &lt;br /&gt;
}}&lt;br /&gt;
  &lt;br /&gt;
Sichern könnte man den MBR von zB der Festplatte /dev/hda folgend:&lt;br /&gt;
 dd if=/dev/hda of=/PATH/DATEI bs=512 count=1&lt;br /&gt;
Zurückspielen dieser Datei wieder in den MBR dieser Festplatte&lt;br /&gt;
 dd if=/PATH/DATEI of=/dev/hda bs=512 count=1&lt;br /&gt;
Sich nur den Inhalt einmal [http://de.wikipedia.org/wiki/Hexadezimalsystem hexadezimal] anschauen, kann man zB so hier&lt;br /&gt;
 dd if=/dev/hda bs=512 count=1 | hexdump -C | more &lt;br /&gt;
&lt;br /&gt;
Wie wir aus den Befehlen herauslesen können, es handelt sich hier beim MBR um die ersten 512 Byte der Festplatte. Wie der Name es schon vermuten läßt, es hat irgend etwas mit dem booten zu tun. Und in der Tat, beim Start des Rechners, schaut der BIOS welches Medium soll ich booten, und dann läd er von diesem Medium genau diese 512 ersten Byte. Findet er darin etwas für ihn interessantes, dann versucht er damit den Bootvorgang zu starten.&lt;br /&gt;
findet er nichts interessantes, dann schaut er ob noch weitere Medien konfiguriert und vorhanden sind, von denen er booten soll, und versucht dort sein Glück. Findet er dabei gar nichts brauchbares, dann kommt die Fehlermeldung, er hat kein Betriebssystem zum booten gefunden.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Was befindet sich nun in diesen ersten 512  Byte einer Festplatte? =====&lt;br /&gt;
&lt;br /&gt;
Wir werden das hier mal von hinten aufrollen. ''( Das erste Byte bezeichnen wir als Byte 0 demnach umfasst der Bereich den wir untersuchen Byte 0 bis Byte 511 )''&amp;lt;br&amp;gt;&lt;br /&gt;
# '''Byte 510''' (0x1fe) und '''Byte 511''' (0x1ff) enthalten eine Kennung (auch MBR-Signatur genannt) die dem BIOS mitteilt, das was hier im MBR steht, ist für dich ein gültiger MBR oder nicht gültig. Der BIOS erkennt den MBR als gültig nur dann an, wenn dort '''0x55 0xAA''' steht. Bei nicht bootfähigen Platten darf hier auch etwas anderes stehen, allerdings wurden schon BIOSe erwischt, die vorsichtshalber eine solche Platte dann gleich mal mit geringer Geschwindigkeit bedient haben, so dass hier prinzipiell immer dieser Wert stehen sollte, wenn eine gültige Partitionstabelle vorliegt.&lt;br /&gt;
# Die 64 Byte, '''Byte 446 bis Byte 509''' (0x1be bis 0x1fd) dort befindet sich prinzipiell auf jeder Festplatte immer die [http://de.wikipedia.org/wiki/Partitionstabelle Partitionstabelle] für die Partitionen 1 bis 4 . Pro Partition 16 Byte das ganze 4 Mal. Nicht definierte Partitionen sind mit NULLEN gefüllt.&lt;br /&gt;
# Die '''Byte 444''' (0x1bc) '''und Byte 445''' (0x1bd) enthalten den Wert '''0x0000''' und dienen nur zur Trennung und dem Schutz der einzelnen Bereiche&lt;br /&gt;
# Der Bereich von '''Byte 0 bis Byte 443''' (0x000 - 0x1bb) ist reserviert für einen [http://de.wikipedia.org/wiki/Boot-Loader Bootloader] ( wobei in einigen Windowssystemen noch ein Teilbereich davon fest definiert ist '''Byte 440-443''' (0x1b8 -0x1bb). hier befindet sich eine Disk-Signatur, mit deren Hilfe zB die Zuordnung zu den Laufwerksbuchstaben vorgenommen wird.) Es sind also in diesem Bereich maximal 444 Byte für einen Bootloader möglich, Es handelt sich dabei um ein kleines mittels [http://de.wikipedia.org/wiki/Assemblersprache Assemblerprogrammierung] geschrieben ausführbares Programm. Dieser Bereich kann aber durchaus auch leer sein (alles NULL) es können aber auch zB. Bootloader dort installiert sein, die bei Versuch diesen zu starten nur ausgeben, dass das Medium nicht bootfähig ist, oder Bootloader die nur einen anderen Bootloader von einer der  Partitionen laden und diesen dann starten oder nur ein Auswahlmenu bringen, um daraus dann auf andere Bootloader zu verzweigen. Aber auch Bootvieren sind dort möglich. Wie die einzelnen Bootloader arbeiten ist recht unterschiedlich. Jedoch können sie nur auf die wenigen Funktionen des BIOS zugreifen und ihre Aufgabe ist es, damit den Betriebssystemkern auf der Platte in den Arbeitsspeicher zu laden und zu starten, oder ein oder mehrere (größere) Programme zu laden, die genau das können. In vielen Bootloadern ist desshalb genau hinterlegt oder festgeschrieben, in welchen pysikalischem Bereich (genauer Block) der Festplatte sich die Datei befindet, die als nächstes geladen werden soll, denn die komplizierten Strukturen von Filesystemen würden natürlich in diese 444 Byte nicht hinein zu programmieren sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Schlußfolgerungen für das kopieren des MBR mittels dd =====&lt;br /&gt;
&lt;br /&gt;
Daraus ergeben sich jetzt eine ganze Reihe von Beschränkungen für das so schön einfache kopieren des MBR wie es oben angegeben ist. Prinzipiell gilt, es wird mit dd direkt in einen sehr sensieblen Bereich der Festplatte hineinschreiben, und dabei kann keinerlei logische Überprüfung vorgenommen werden. Solche Vorgehensweisen und Methoden sollten möglichst immer erst das letzte Mittel der Wahl darstellen. &lt;br /&gt;
* Das kopieren eines solchen MBR (512 Byte) auf die selbe Platte bringt nur Erfolg, wenn sich in der Zwischenzeit weder die Partitionstabelle noch der physikalische Ort (Block auf Festplatte) der Dateien geändert hat, die dieser Bootloader über den BIOS laden soll.&lt;br /&gt;
* Das kopieren eines solchen MBR (512 Byte) auf eine andere Platte macht nur dann Sinn, wenn es sich auch wirklich um eine identische Platte handelt. (Ausnahme wenn wir eine Platte durch eine größere Platte ersetzen müssten, und wir die Differenz sowieso nie benutzen möchten)&lt;br /&gt;
* Baugleiche Platten könnten ( ist im PC-Bereich ehr die Ausnahmen) logisch anders organisiert sein, da die [http://de.wikipedia.org/wiki/Festplattengeometrie Festplattengeometie] wie wir sie sehen nicht mit dem physikalischen Aufbau der Platte gleich ist und die Platte das selbst verwaltet. Solche Differenzen könnten in Ausnahmefällen schon beim Erwerb gleicher Platten aus unterschiedlichen Bezugsquellen vorliegen, oder irgendwann einmal über Software manuell geändert worden sein. Es ist auch nicht gänzlich auszuschließen, daß der eine oder andere Raidkontroller durchaus auch einmal so eine logische Plattengeometrie geändert haben könnte. Ein kopieren einer Partitionstabelle mit andere logischer Geometie könnte uU. durchaus dann zu defekten oder ungültigen Partitionstabellen führen.&lt;br /&gt;
* Wenn wir 512 Byte anfassen, sollten wir bedenken, das damit immer die Partitionstabelle der Partitionen 1-4 enthalten ist. Die logischen Partitionen jedoch nicht, und somit beim neu Beschreiben des MBR sogar verloren gehen können.&lt;br /&gt;
* Die Partitionstabelle wird in der Regel nur beim Start des Rechners oder bei speziellen Komandos von Linux neu ausgelesen. Wird mit dd die Partitionstabelle geändert, dann arbeitet der Kernel nach wie vor nach der alten Partitionstabelle weiter. Wird also eine komplette Platte überschrieben, und anschließend eine Partition versucht zu mounten, dann wird der Kernel das Filesystem an einer eventuell falschen Stelle suchen. &lt;br /&gt;
* Im Windowsumfeld könnten unter Umständen geklonte MBR (und somit enthaltene gleiche Disk-Signatur auf unterschiedlichen Platten) im gleichen System zu instabilem Betrieb oder Bootproblemen führen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Anwendungsbeispiele und Alternativen =====&lt;br /&gt;
&lt;br /&gt;
Den Bootloader sollte man nach dem kopieren oder verschieben der Rootpartition am besten wieder mit den dafür vorgesehen Tools neu schreiben. Siehe dazu [http://www.die.net/doc/linux/man/man8/grub-install.8.html grub-install] oder [[Grub-Install via &amp;quot;chroot&amp;quot; und Knoppix]] hier im Wiki, bei LILO gilt das analog, immer am Besten mit [http://www.die.net/doc/linux/man/man8/lilo.8.html lilo] wieder installieren, hilfreich sicher auch [[Lilo wieder herstellen]] hier im Wiki&amp;lt;br&amp;gt;&lt;br /&gt;
Die Partitionstabelle sollte man wenn möglich immer komplett (also auch die eventuellen logischen Partitionen) sichern und gegebenenfalls zurückschreiben oder clonen. Obwohl es nicht unmöglich ist, auch die logischen Partitionen mittels dd zu kopieren und wieder zurückzuschreiben, ist es so kompliziert, dass darauf verzichtet wird, es an dieser Stelle vorzustellen. Statt dessen soll hier auf den Artikel [[Partitionstabelle sichern und wiederherstellen]] verwiesen werden. Dort wird erklärt wie man die komplette Partitionstabelle mittels des Befehles [http://www.die.net/doc/linux/man/man8/sfdisk.8.html sfdisk] einfach und sicher speichern und wieder zurückschreiben kann.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Für die jetzt nur noch ganz wenigen verbleibenden Ausnahmen hier einige Beispiele (auf eigenen Gefahr) wie man mittels dd im MBR bestimmte Dinge erledigen kann.&lt;br /&gt;
{{Box Wichtig||&lt;br /&gt;
nach jeder geschriebenen Manipulation an der Partitionstabelle mittels dd wird der Kernel so lange mit der alten Partitionstabelle weiterarbeiten, bis der Rechner wieder neu gebootet wurde, oder wir dem Kernel explizied dazu gezwungen haben die jetzt neue Partitionstabelle von der Platte neu einzulesen. Dazu darf keine Partition dieser Platte mehr gemountet sein und auch kein Swap auf dieser Platte aktiv, dann '''sfdisk -R /dev/PLATTE''' }} &lt;br /&gt;
&lt;br /&gt;
'''Bootloader als Datei sichern und zurückschreiben'''&lt;br /&gt;
 dd if=/dev/hda of=/PATH/DATEI bs=1 count=444&lt;br /&gt;
 dd if=/PATH/DATEI of=/dev/hda bs=1 count=444&lt;br /&gt;
'''Bootloader mit Nullen überschreiben'''&lt;br /&gt;
 dd if=/dev/zero of=/dev/hda bs=1 count=444&lt;br /&gt;
'''Partitionstabelle (nur Partitionen 1 bis 4) hexadezimal anschauen'''&lt;br /&gt;
 dd if=/dev/hda bs=1 count=66 skip=446 | hexdump -C&lt;br /&gt;
'''Partitionstabelle (nur Partitionen 1 bis 4) als Datei sichern /zurückschreiben'''&lt;br /&gt;
 dd if=/dev/hda of=/PATH/DATEI bs=1 count=66 skip=446&lt;br /&gt;
 dd if=/PATH/DATEI of=/dev/hda bs=1 count=66 seek=446&lt;br /&gt;
'''Partitionstabelle (nur Partitionen 1 bis 4) auf andere Platte direkt kopieren (hda -&amp;gt; hdb)'''&lt;br /&gt;
 dd if=/dev/hda of=/dev/hdb bs=1 count=66 skip=446 seek=446 &lt;br /&gt;
'''Partitionstabelle löschen''' &lt;br /&gt;
 dd if=/dev/zero of=/dev/hda bs=1 count=64 seek=446&lt;br /&gt;
'''Windows Disk-Signatur mit Nullen überschreiben'''&lt;br /&gt;
 dd if=/dev/zero of=/dev/hdb bs=1 count=4 seek=440&lt;br /&gt;
'''MBR-Signatur wieder mit 0x55 0xAA beschreiben ( MBR wieder gültig machen)'''&lt;br /&gt;
 echo -en &amp;quot;\x55\xaa&amp;quot; | dd of=/dev/hda bs=1 count=2 seek=510&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== einzelne Partitionen und ganze Platten mit dd ====&lt;br /&gt;
&lt;br /&gt;
Das kopieren, klonen, oder als Image ablegen und wieder zurückschreiben von einzelnen Partitionen und ganzen Platten mittels dd, so wie es in unzähligen   Beiträgen beschrieben ist, ist und bleibt eine riskante Angelegenheit, solange man sich nicht bewußt ist, was man da eigentlich genau macht.&amp;lt;br&amp;gt;&lt;br /&gt;
Es werden genau genommen jedes Byte der Festplatte oder der Partition genau so gelesen, wie sie derzeit auf der Platte gespeichert sind, und wieder zurückgeschrieben, wie sie zum jeweiligen Zeitpunkt des Lesens auf der Festplatte vorhanden waren. [[# Allgemeine Bemerkungen und Warnungen| (siehe auch die allgemeinen Warnungen)]] Somit benötigt man ein zweites Medium, das auch groß genug ist, diese Daten auch wirklich aufzunehmen, den ein Image einer 200GB Festplatte ist nun einmal 200GB groß, auch wenn nur 10% davon mit Dateien belegt sind. Pinzipiell ist es demnach umso interessanter, je kleiner die Festplatte oder die Partition ist, und um so mehr Daten darauf aktuell abgelegt sind.  Solange man ein solches Image dann auch wieder auf die gleiche Festplatte oder in die gleiche Partition zurück schreibt, ist das auch relativ ungefählich. Wird eine größere Festplatte zum zurückspielen benutzt, dann wird die größere Festplatte auf die Orginalgröße der ursprünglichen Festplatte &amp;quot;herunterkonfiguriert&amp;quot;, ein Benutzen des übrigen unbenutzten Festplattenplatzes ist erst einmal ausgeschlossen und Versuche diesen doch noch nutzbar zu machen, sind sehr riskant für die Daten auf dieser Platte. Eine zu kleine Festplatte würde dann mindestens ein unvollständiges Filesystem ergeben, das sich gar nicht mounten läßt. Das selbe gilt für Partitionen analog. Sehr gefährlich ist zB. ein zurückschreiben von erweiterten und logischen Partitionen, wenn sich die Partitionstabelle geändert hat, bzw auf eine andere logische oder erweiterte Partition. Hierbei ist es durchaus möglich, das nach dem nächsten booten ein Teil der Daten auf der  Platte gar nicht mehr  aufzufinden sind.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Beispiele Clonen, Backup und Sicherung =====&lt;br /&gt;
&lt;br /&gt;
Es gilt, möglichst alle Filesysteme ungemountet auslesen, wo das nicht möglich ist, zumindestens '''Readonly''' gemountet auslesen und dann auf das Image einen [http://www.phpman.info/index.php?parameter=fsck.ext3&amp;amp;mode=man Filesystemcheck] machen. &lt;br /&gt;
&lt;br /&gt;
einzelne Partition als Image ablegen / Image temporär mounten / zurückschreiben&lt;br /&gt;
 # dd if=/dev/hda2 of=/PATH/DATEI.IMAGE bs=8K&lt;br /&gt;
 # mount -o loop /PATH/DATEI.IMAGE /mnt      # eventuell weitere Mountoptionen notwendig&lt;br /&gt;
 # dd if=/PATH/DATEI.IMAGE of=/dev/hda2 bs=8K&lt;br /&gt;
&lt;br /&gt;
Filesystemtype und Zustand eines Images ermitteln/korrieren (Konsolauszug)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LINUX:/ # file DATEI.IMAGE&lt;br /&gt;
DATEI.IMAGE: Linux rev 1.0 ext2 filesystem data (mounted or unclean)&lt;br /&gt;
LINUX:/ # fsck /PATH/DATEI.IMAGE  # evtl. weitere Optionen notwendig ; kompletten Path des Images&lt;br /&gt;
fsck 1.38 (30-Jun-2005)&lt;br /&gt;
e2fsck 1.38 (30-Jun-2005)&lt;br /&gt;
/PATH/DATEI.IMAGE was not cleanly unmounted, check forced.&lt;br /&gt;
Pass 1: Checking inodes, blocks, and sizes&lt;br /&gt;
Pass 2: Checking directory structure&lt;br /&gt;
Pass 3: Checking directory connectivity&lt;br /&gt;
Pass 4: Checking reference counts&lt;br /&gt;
Pass 5: Checking group summary information&lt;br /&gt;
/PATH/DATEI.IMAGE: 72/16632 files (12.5% non-contiguous), 24776/66432 blocks&lt;br /&gt;
LINUX:/ # file DATEI.IMAGE&lt;br /&gt;
DATEI.IMAGE: Linux rev 1.0 ext2 filesystem data&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
einzelne Partition auf eine Festplatte mit identischem Partitionstabelle kopieren&lt;br /&gt;
 # dd if=/dev/hda2 of=/dev/hdb2 bs=8K&lt;br /&gt;
&lt;br /&gt;
ganze Festplatte als Image ablegen / zurückschreiben&lt;br /&gt;
 # dd if=/dev/hda of=/PATH/DATEI.IMAGE bs=8K&lt;br /&gt;
 # dd if=/PATH/DATEI.IMAGE of=/dev/hda bs=8K&lt;br /&gt;
man kann von einem solchem Image auch [http://www.linux-club.de/viewtopic.php?t=79797 einzelne Partitionen temporär gemounten], dabei muss für das [http://www.phpman.info/index.php?parameter=mount&amp;amp;mode=man mount] der jeweilige Offset benutzt werden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Festplatte auf einen andere Festplatte clonen&lt;br /&gt;
 # dd if=/dev/hda of=/dev/hdb bs=8K&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Problem Komprimierung von dd-Image =====&lt;br /&gt;
 &lt;br /&gt;
Hin und wieder besteht die Notwendigkeit ein solches Image zu komprimieren, weil eben nur wenige wirkliche Daten auf der Platte/Partition liegen. Dabei wird man auf das Problem stoßen, das kann recht gut funktionieren aber muss nicht zwangsläufig. Das liegt dann meistens an den zur Zeit nicht benutzten oder gelöschten Datenblöcken. Sind diese zum großen Teil nicht oder nicht richtig komprimierbar, dann wird man auch wenig Erfolg bei der Komprimierung der gesamten Platte/Partition haben.&amp;lt;br&amp;gt;&lt;br /&gt;
Nachfolgend eine Möglichkeit wie man die leeren/unbenutzten Datenblöcke einer Partition sehr gut komprimierbar machen kann, ohne das die richtigen Daten dabei beschädigt werden. Man legt einfach neue &amp;quot;NULL&amp;quot;-Dateien an bis das Filesystem fast voll ist, danach löscht man sie wieder. Wir machen uns hier zum Vorteil, dass ein normaler User im Normalfall auf LINUX-Filesystemen nur bis zu 95% voll auf ein Filesystem schreiben kann. Ausnahme natürlich wenn [[Disk Quota]] eingerichtet ist.&lt;br /&gt;
&lt;br /&gt;
Als root in das Filesystem ein neues Verzeichnis anlegen und für Schreibrechte des Users sorgen&lt;br /&gt;
 # mkdir /PATH/test&lt;br /&gt;
 # chmod a+w /PATH/test&lt;br /&gt;
&lt;br /&gt;
Danach als User folgendes Script ausführen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
VERZEICHNIS=/PATH/test&lt;br /&gt;
&lt;br /&gt;
dd if=/dev/zero of=/tmp/file.null count=1024 bs=1K 2&amp;gt;/dev/null&lt;br /&gt;
echo &amp;quot;anlegen von Dateien bitte warten&amp;quot; &lt;br /&gt;
for i in {a..z}{a..z}{a..z}&lt;br /&gt;
 do&lt;br /&gt;
   for j in {0..9}{0..9}{0..9}{0..9}&lt;br /&gt;
   do&lt;br /&gt;
      NAME=${VERZEICHNIS}/leer$i$j&lt;br /&gt;
      cp /tmp/file.null $NAME 2&amp;gt;/dev/null || break 2&lt;br /&gt;
   done&lt;br /&gt;
done&lt;br /&gt;
rm /tmp/file.null&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
Als VERZEICHNIS ist hier genau das eben von root angelegte Verzeichnis anzugeben. Je nach Größe und Benutzungsgrad des Filesystems kann das schon seine Zeit dauern. Es werden 1MByte große Dateien in diesem Verzeichnis angelegt.&amp;lt;br&amp;gt;&lt;br /&gt;
Ist das Script fertig, muss erst einmal der Cache des Filesystems die Daten alle auf Platte schreiben, also entweder abwarten oder wenn möglich das Filesystem [http://www.phpman.info/index.php?parameter=umount&amp;amp;mode=man umounten] und anschließend wieder [http://www.phpman.info/index.php?parameter=mount&amp;amp;mode=man mounten]. ( Das ist vor allem wichtig bei sehr kleinen Filesystemen die eventuell sogar komplett im Speicher gecacht sein könnten.)&lt;br /&gt;
&lt;br /&gt;
Root kann jetzt das komplette Verzeichnis wieder löschen (Achtung &amp;quot;'''rm *'''&amp;quot; im Verzeichnis wird meist wegen zu vieler Argumente nicht funktionieren)&lt;br /&gt;
 rm -rf  /PATH/test&lt;br /&gt;
&lt;br /&gt;
Jetzt muss erst einmal wieder der Cache das Filesystem neu mit der Platte abgleichen, also hier auch am Besten umount / mount (der [http://www.phpman.info/index.php?parameter=sync&amp;amp;mode=man sync] Befehl hat hier erstaunlicherweise bei meinen Tests nicht immer das erhoffte Resultat gebracht)&lt;br /&gt;
&lt;br /&gt;
Jetzt ist diese Partition bereit zum Erstellen eines effektiven komprimierten Images.&lt;br /&gt;
 dd if=/dev/hda2 bs=4K | gzip &amp;gt; /PATH/DATEI.IMAGE.gz&lt;br /&gt;
Zurückschreiben könnte man dieses komprimierte Images zB.:&lt;br /&gt;
 zcat /PATH/DATEI.IMAGE.gz | dd of=/dev/hda2 bs=4K &lt;br /&gt;
&lt;br /&gt;
Mit ganzen Platten geht das analog, nur sollte man für optimale Ergebnisse eben alle Filesysteme vorher &amp;quot;aufräumen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Beispiel: dd nach einem Super-GAU im Filesystem =====&lt;br /&gt;
&lt;br /&gt;
Konstruieren wir uns doch einmal ein Super-GAU Szenario &lt;br /&gt;
&lt;br /&gt;
''(Ähnlichkeiten mit realen Ereignissen oder Personen sind rein zufällig ;-) )''&lt;br /&gt;
{{Box Beispiel ||&lt;br /&gt;
Nach monatelanger allnächtlicher Mühe ist die Doktorarbeit mit all ihren Texten, Bildern und Zeichnungen nun entgültig fertig. Korrektur ist gelesen, ist gut geworden, und man hat die Doktorwürden jetzt schon so gut wie in der Hand. Nur noch ausdrucken und fertig. Da man in den letzten Wochen leichtsinnigerweise kein Backup gemacht hat, man ist eben so optimistisch, es wird jetzt aber aller höchste Eisenbahn, dieses nachzuholen. Mit dem Kopf schon am überlegen ob wohl der Drucker auch noch genug Tinte hat, nur schnell noch ein paar alte temporäre Dateien löschen die nicht mit ins Backup brauchen. Doch was ist das jetzt für eine Fehlermeldung '''rm: cannot remove directory `./': Invalid argument''' und '''ls -l''' zeigt plötzlich auch nur '''total 0''' ???&amp;lt;br&amp;gt;&lt;br /&gt;
Der geschärfte Blick auf die Konsole läßt erkennen, die gesamte Doktorarbeit rekursiv gelöscht. Das Adrenalin schießt in den Kopf, wie war das nochmal mit reiserfs und gelöschten Dateien? - ein Aufschrei - ein Hechtsprung - den Kaltgerätestecker aus dem Rechner ziehen - alles Eins. &amp;lt;br&amp;gt;&lt;br /&gt;
Super-GAU komplett und morgen ist Abgabetermin.}}&lt;br /&gt;
&lt;br /&gt;
Wird jetzt an dieser Stelle der Rechner hochgefahren und normal gestartet hat man eventuell genau einen Reparaturversuch wieder an seine gelöschte Doktorarbeit zu kommen. Misslingt dieser Versuch ganz oder teilweise, dürfen eventuell größere Teile ganz neu geschreiben werden. Wohl dem der in dieser Situation jetzt genau das richtige Howto findet.&lt;br /&gt;
&lt;br /&gt;
Besser hier, eine große Festplatte suchen und zusätzlich anschließen. Den Rechner von CD booten und zu aller erst mittels dd ein Image der betroffenen Partition oder der gesamten Festplatte auf diese Platte erstellen. Erst dann einen normalen Boot versuchen oder mit der Reparatur der Filesysteme beginnen. Sollte der erste Versuch fehlschlagen, dann wieder das Image zurückspielen und das nächste Howto ausprobieren. Man kann so über das zurückschreiben des Images die haargenaue ursprünglich defekte Situation des Filesystems beliebig oft rekonstruieren und so seine Changen auf die Wiederherstellung der Daten bedeutend verbessern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Beispiel: mit dd nach verlorenen Dateiinhalten suchen =====&lt;br /&gt;
&lt;br /&gt;
{{Box Beispiel||&lt;br /&gt;
Wir haben eine Textdatei verloren, an der wir in den letzten Tagen rumgebastelt haben. Alle bisherigen Versuche die Datei wiederzufinden waren ergebnisslos. &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Sollte es sich um eine Textdatei, script, Quelltext oder ähnliches handeln, haben wir eine gute Change hier doch noch an den Inhalt heranzukommen, sollte sich dieser noch irgendwo in einem gelöschtem Datenblock befinden. Alles was wir benötigen ist die Paritition auf der sich das Filesystem befindet in der sich die Datei befunden haben muss, die ungefähre Größe dieser Datei in Zeilen, eine sehr markante Wortkombination innerhalb einer Zeile die nur in dieser Datei oder deren Kopien vorkommen kann, und eine etwaige Position dieses Suchbegriffes in Zeilen innerhalb der Datei.&lt;br /&gt;
&lt;br /&gt;
Wir nehmen folgendes an:&lt;br /&gt;
# Partition /dev/hda2&lt;br /&gt;
# Größe der Datei 100-150 Zeilen&lt;br /&gt;
# genaue Wortkombination im letztem Drittel &amp;quot;darf ich mir vormerken&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 dd if=/dev/hda2 bs=4K | strings | grep -B 150 -A 100 &amp;quot;darf ich mir vormerken&amp;quot; &amp;gt; /tmp/gefunden.txt&lt;br /&gt;
&lt;br /&gt;
Damit lesen wir mittels dd die Partition aus, [http://www.phpman.info/index.php?parameter=strings&amp;amp;mode=man strings] entfernt aus diesem Datenstrom schon einmal alles was nicht nach druckbaren aussieht, [http://www.phpman.info/index.php?parameter=grep&amp;amp;mode=man grep] durchsucht jetzt diesen Datenstrom nach dem Vorkommen der Wortkombination und wenn er eine solche gefunden hat, dann schreibt grep die Zeilen von 150 Zeilen davor bis 100 Zeilen danach in eine Datei Namens  /tmp/gefunden.txt , werden mehrere solcher Wortkombinationen gefunden, dann auch die entsprechenden Bereiche aus diesen Blöcken.&lt;br /&gt;
&lt;br /&gt;
Wenn sich also ein Datenblock auf der Festplatte befindet, der die genaue Zeilenwortkombination beinhaltet, dann werden wir den Textinhalt irgendwo innerhalb der gefunden.txt wiederfinden. Jedoch ohne eventuelle Leerzeilen, auch extrem kurze Zeilen (weniger als 4 druckbare Zeichen) sind verschwunden. Diesen Inhalt können wir aber immerhin jetzt aus gefunden.txt herauskopieren und wieder neu zu einer entsprechenden Datei formatieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== mit dd Partitionen und Festplatten sicher löschen =====&lt;br /&gt;
&lt;br /&gt;
Ein löschen ( besser ein überschreiben) von Partitionen und Festplatten mit dd ist ein weiteres beliebtes Anwendungsgebiet. Abzuraten jedoch bei Logischen Partitionen, hier könnten innerhalb der ersten 512 Byte Teile der Gesamt-Partitionstabelle überschrieben werden, und somit andere logische Partitionen nach dem nächsten reboot nicht mehr sichtbar sein.  Siehe hierzu auch [[Wie eine Platte unwiederherstellbar und sicher loeschen]]&lt;br /&gt;
&lt;br /&gt;
=== CD DVD und Floppy mit dd ===&lt;br /&gt;
&lt;br /&gt;
==== Floppy Images mit dd ====&lt;br /&gt;
&lt;br /&gt;
Der Eine oder Andere wird sie noch verstaubt in der Ecke habe, die gute alte 1,44er Floppy.  Von den eventuell noch benötigten Floppys kann man aber auch mit dd Image erstellen und diese dann übersichtlich auf seiner Festplatte verwalten.&lt;br /&gt;
&lt;br /&gt;
 dd if=/dev/fd0 of=/PATH/DATEI.IMG bs=1440K&lt;br /&gt;
als Blockgröße kann man bei intakten Floppys gleich 1440 KByte nehmen, sollte die Floppy schon &amp;quot;faule Stellen&amp;quot; haben, dann ist 512 Byte angesagt. (Einen gravierenden Geschwindigkeitsvorteil konnte ich bei Tests jetzt unter Linux nicht ausmachen)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bei Bedarf kann man dieses Image dann auch gleich temporär mounten&lt;br /&gt;
 mount -o loop /PATH/DATEI.IMG /mnt&lt;br /&gt;
Die Auto-Option wird hier die meisten Filesysteme von Floppy automatisch erkennen, ansonsten noch mit Mountoptionen nachhelfen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wird wirklich einmal wieder eine dieser Image als Diskette zB als Bootdiskette benötigt, dann das Ganze wieder rückwärts.&lt;br /&gt;
 dd if=/PATH/DATEI.IMG of=/dev/fd0 bs=512&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Floppy die beim Lesen schon Lesefehler produzieren kann man trotzdem zu einem Image abziehen. Solange nur einige wenige Blöcke kaputt sind, und nicht gerade ein geziptes Tar darauf abgelegt ist, kann man oftmals noch das wirklich Wichtige benutzen.&lt;br /&gt;
 dd if=/dev/fd0 of=/PATH/DATEI.IMG bs=512 conv=noerror,sync&lt;br /&gt;
Die Blockgröße hier zwingend 512 und die Option '''conv=noerror,sync''' sorgt dafür, das bei einem Lesefehler der entsprechende Block mit NULLen gefüllt wird, und dd bei diesem Lesefehler nicht abbricht. Es sind also alle intakten Blöcke hinterher an der richtigen Position und das Image läßt sich meist problemlos mounten, so das man in aller Ruhe und ohne nervige Lesefehler vom Floppylaufwerk, die defekten Dateien suchen kann. &amp;lt;br&amp;gt;&lt;br /&gt;
Die Ausgabe von dd in diesem Fall ist auch so präzise, dass man genau die fehlerhaften Stellen (mit den jetzt NULLen im Image) aus dem Fehlerausgabe herauslesen kann. Somit könnte man auch mit [http://www.phpman.info/index.php?parameter=hexdump&amp;amp;mode=man hexdump] schon mal nachschauen, ob es nicht doch nur die README erwischt hat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== CD DVD und dd ====&lt;br /&gt;
&lt;br /&gt;
Es gibt eine ganze Reihe von [http://de.wikipedia.org/wiki/Compact_Disk#Physische_Formate CD-] und [http://de.wikipedia.org/wiki/DVD#DVD-Datenstrukturen DVD-]Formaten, und es gibt allerlei Bemühungen, damit nicht unbedingt jeder mit solchen Scheiben machen kann, was er gerne möchte. Wir wollen das an dieser Stelle etwas unterstützen und hier nicht allzu tiefgründig werden, desshalb nur einige kurze Bemerkungen. &amp;lt;br&amp;gt;&lt;br /&gt;
# Mit einer Vielzahl dieser Scheiben könnte man bestimmt analog wie mit einer Floppy verfahren. Die Blockgröße innerhalb normaler Grenzen sollte bei den heutigen Laufwerken bei dd meist wenig bis keinen Einfluß auf die Lesegeschwindigkeit haben, fällt also oft erst beim Auftreten von Lesefehlern ins Gewicht.&lt;br /&gt;
# Ein Mounten eines Images wie oben beschrieben, funktioniert nicht zwangläufig mit jedem Type von Scheibenimage.&lt;br /&gt;
# Versucht nicht mit dd eine CD oder DVD zu brennen, dazu gibt es genügend Brenntools die auch die Kontrolle über die Brennerhardware haben.&lt;br /&gt;
# Den Inhalt zB. einer Audio-CD oder eine Video-DVD muss man noch lange nicht aufgeben, nur weil der Player immer an der selben Stelle abbricht. Mit dd könnte man hier schon noch etwas ausrichten, aber dd ist zwar universell aber nicht speziell für solche Zwecke gemacht, und hier nicht unbedingt die allerbeste Wahl.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bandlaufwerke und dd ===&lt;br /&gt;
&lt;br /&gt;
Bei den Bandlaufwerken sind wir dort, wofür dd ursprünglich einmal gedacht war. Hier kann dd als &amp;quot;Schweizer Taschenmesser&amp;quot; seine Stärken voll auspielen. In den letzten Jahren hat sich jedoch die Hardware entschieden verbessert, aber dd ist in seinen Grundzügen immer noch das Alte. dd ist nicht in der Lage den Datenstrom im Speicher erwähneswert zu cachen, so wie man es für moderne Laufwerke mit ihrem enomen Daten- und Durchsatzhunger gerne hätte. Wer sich näher damit befassen möchte, [[Bandlaufwerke und LINUX]] gibt eine Überblick und stellt auch [[Bandlaufwerke und LINUX#Pufferung der Daten zwischen Laufwerk und LINUX|Alternativen]] vor.  Dennoch für viele nicht alltägliche Problemchen kann man sich immer wieder auf dd verlassen, auch wenn man die Laufwerke damit nicht immer im optimalen Bereich ansteuern kann. Die Einsatzmöglichkeiten sind hier vielfältig und in Zusammenarbeit mit einigen Spezialtools kann man nach Art eines [http://de.wikipedia.org/wiki/MacGyver MacGyver] schon mal das Unmögliche möglich machen.&lt;br /&gt;
&lt;br /&gt;
Hier nur ein paar einfache Beispiele: ''(Voreinstellungen und Positionierungsbefehle für das Laufwerk lassen wir der Einfachheit halber bei der Vorstellung reiner Befehle weg, bei Konsolauszügen sind sie ansatzhalber enthalten)''&lt;br /&gt;
&lt;br /&gt;
Eine ganze Festplatte als Image auf ein Laufwerk sichern. / zurückspielen&lt;br /&gt;
 dd if=/dev/hda of=/dev/nst0 ibs=8K obs=64K&lt;br /&gt;
 dd if=/dev/nst0 of=/dev/hda ibs=64K obs=8K&lt;br /&gt;
Wir arbeiten hier also mit 8KByte mit der Festplatte aber mit 64KByte ''( oder Größer Laufwerkstypeabhängig)'' mit dem Bandlaufwerk. Durch die Hardwarkomprimierung der meisten Bandlaufwerke ist das übrigens sehr Speichereffektiv, wenn wir wie oben beschreiben [[#Problem Komprimierung von dd-Image|die ungenutzten Blöcke der Partitionen hin und wieder einmal NULLen]]. Das Image belegt dann oft nur unwesentlich mehr Platz auf dem Band wie eine Tarsicherung. Eine Zeiteinsparung erreichen wir hier in der Regel allerdings nicht, denn die ganzen Nullen müssen trotzdem über Kontroller und Bus zum Laufwerk transportiert werden. &lt;br /&gt;
&lt;br /&gt;
Prinzipiell können wir auf diese Art mit '''dd''' jede Datei, jeden Datenstrom auf ein Band schreiben und auch wieder lesen. Wir können mit '''dd''' auch das auslesen was mit anderen Backupprogrammen geschrieben wurde, Wichtig nur beim Lesen, wir müssen die selbe Blöckgröße verwenden mit der geschrieben wurde. Was wir allerdings komplett verlieren, wenn wir Dateien auf ein Band schreiben, den Dateinamen und Zugriffsrechte und alles was dazu gehört. Ist ein '''dd''' Befehl fertig, wird ein EOF-Marke aufs Band geschrieben. Es käme also jede Datei als ein eigenes Filearchiv auf dem Band an. Das lohnt sich nur bei sehr großen Dateien, oder bei Dateien die schon selbst ein Archiv sind, wie folgendes Beispiel zeigt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LINUX:/tmp # tar -cf ./test.tar /etc&lt;br /&gt;
tar: Removing leading `/' from member names&lt;br /&gt;
LINUX:/tmp # mtst -f /dev/nst0 rewind&lt;br /&gt;
LINUX:/tmp # mtst -f /dev/nst0 setblk 0&lt;br /&gt;
LINUX:/tmp # dd if=./test.tar of=/dev/nst0 bs=64K&lt;br /&gt;
348+1 records in&lt;br /&gt;
348+1 records out&lt;br /&gt;
LINUX:/tmp # mtst -f /dev/nst0 rewind&lt;br /&gt;
LINUX:/tmp #  tar -tvb 128 -f /dev/nst0 | more&lt;br /&gt;
drwxr-xr-x root/root         0 2007-07-16 20:08:35 etc/&lt;br /&gt;
drwxr-xr-x root/root         0 2006-06-01 14:21:44 etc/X11/&lt;br /&gt;
drwxr-xr-x root/root         0 2004-10-24 14:58:35 etc/X11/fs/&lt;br /&gt;
-rw-r--r-- root/root      2523 2004-04-06 04:27:19 etc/X11/fs/config&lt;br /&gt;
drwxr-xr-x root/root ....................&lt;br /&gt;
................&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
wir haben hier zum Test ein Tararchiv aus '''/etc''' erstellt und als Datei abgelegt, diese Datei dann auf das Band geschrieben und anschließend mit''' tar''' das Inhaltsverzeichnis direkt vom Bandarchiv ausgelesen. (Zu beachten hier, da wir mit '''dd''' mit 64 KByte geschrieben haben, müssen wir jetzt mit '''tar''' auch mit 64KByte zugreifen.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Da wir nun alles mögliche auf ein Band schreiben könnten, stellt sich die Frage, woher erkenne ich an einem unbekannten Band, was darauf abgelegt ist und mit welcher Blockgröße geschreiben wurde. Sprich, welches Tool müßte ich mit welchen Optionen verwenden, um das Band überhaupt lesen zu können. Die Lösung bietet dd.&amp;lt;br&amp;gt;&lt;br /&gt;
Nehmen wir ein Beispiel, wir bekommen ein Band von einem Freund, und dieser sagt, wir sollen und das einmal anschauen. Es sollte ein selbst geschriebenes Programm im Quelltext sein, soviel wissen wir, aber nicht mit welchem Programm es gesichert wurde, geschweige mit welcher Blockgröße geschrieben wurde.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;LINUX:/tmp # mtst -f /dev/nst0 rewind&lt;br /&gt;
LINUX:/tmp # mtst -f /dev/nst0 setblk 0&lt;br /&gt;
LINUX:/tmp # dd if=/dev/nst0 of=/tmp/block.data bs=128K count=1&lt;br /&gt;
0+1 records in&lt;br /&gt;
0+1 records out&lt;br /&gt;
LINUX:/tmp # ls -l block&lt;br /&gt;
-rw-r--r--  1 root root 5120 Jul 16 18:57 block&lt;br /&gt;
LINUX:/tmp # file block.data&lt;br /&gt;
block.data: ASCII cpio archive (SVR4 with no CRC)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
wir legen das Band ein, und lesen mittels '''dd''' und der größtmöglichen Blockgröße mit der Linux und das Laufwerk arbeiten würde, (hier im Beispiel ein EXABYTE Laufwerk das maximal 128KByte Blockgroße zulassen würde.) An der Ausgabe von '''dd''' erkennen wir, es wurde ein Block gelesen und als Datei abgespeichert der allerdings (erwartungsgemäß) nicht die 128KByte Größe erreicht hat.&amp;lt;br&amp;gt;&lt;br /&gt;
mit '''ls''' können wir jetzt erkennen wie groß die Datei und somit unser erster Block auf dem Band war, genau 5120 Byte (also 10 x 512Byte).&amp;lt;br&amp;gt;&lt;br /&gt;
mit '''file''' können wir jetzt auch noch Linux bemühen für uns herauszubekommen, was das für ein File sein könnte. '''file''' kann das aus dem Anfang einer Datei von sehr vielen Dateitypen erkennen. Den ersten Block der Datei, also den Anfang haben wir ja vom Band geholt, also setzen wir '''file''' darauf an. Als Ergebniss sehen wir, es würde mit '''cpio''' geschrieben und Blockgröße  5120 Byte (bei cpio der Defaultwert) geschrieben, eine genaue Formatbezeichnung hätten wir auch noch, wenn sie von '''cpio''' nicht selbst erkannt werden würde. Jetzt sollten wir alles wissen, um das Band auszulesen zu können. &lt;br /&gt;
&lt;br /&gt;
Neben Dateien und Archiven können wir auch Datenstöme auf Band schreiben. Das könnten jetzt zB Debugtraces von irgendwelchen Befehlen oder Trace von Netzverbindungen sein. Niemand kann genau vorhersagen wie schnell solche Datenstöme riesige Ausmaße annehmen, und niemand kann vorhersagen was alles für unbrauchbare und uninteressante Meldungen jetzt mitgelogt werden. Statt also hier noch irgend welche Filter nachzuschalten (und damit und einem zusätzlichen Schreiben der Logdatei auf die Festplatte den Rechner jetzt noch unnötig weiter zu belasten) - wir haben doch ein Bandlaufwerk - also schreiben wir den gesamten Trace einfach auf das Band, egal wie lang er wird, da passt schon ordentlich was drauf. Angenommen der Tracelog kommt in der Befehlskette als Standardausgabekanal an, dann einfach nach dd weiterleiten und auf Band schreiben.&lt;br /&gt;
 BEFEHL | AM_ENDE | DER-TRACELOG | dd of=/dev/nst0 bs=64K &lt;br /&gt;
Befehl fertig, dann kann entweder der Stream vom Laufwerk jetzt auf diesem oder einem anderem Rechner mittels '''dd''' in eine Datei zurückgespielt werden, oder dabei gleich noch mit '''grep''' gefiltert werden, um nur das wirklich Wichtige auszuwerten. Hat der Filter nicht funktioniert oder müssen noch weitere Filter hinzugefügt werden, kein Problem, der Stream kann ja beliebig oft vom Band ausgelesen werden, wir müssen also nicht nocheinmal den ganzen &amp;quot;Versuchsaufbau&amp;quot; rekonstruieren. &lt;br /&gt;
&lt;br /&gt;
Wir müssen dabei auch nicht immer nur das Ende einer Kette anzapfen. Zapfen wir doch mal eine mittels Pipe verbundene Befehlskette in der Mitte an, genau dort, wo der dickste Datenstrom anliegt, und schreiben diesen Datenstrom parallel zur normalen Befehlsverarbeitung aufs Band.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wir nehmen dazu einmal das Beispiel von vorhin, als wir auf der Platte nach verlorenen Dateiinhalten gesucht haben, und schreiben parallel dazu gleich noch das komplette Image dieser Partition auf das Band. Somit haben wir abgesichert, wird der von uns gesuchte Block später überschrieben, und wir ihn vorher immer noch nicht gefunden haben, können wir ihn immernoch beim Durchsuchen des Bandimages finden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LINUX:/tmp # mkfifo /tmp/pipe&lt;br /&gt;
LINUX:/tmp # mtst -f /dev/nst0 rewind&lt;br /&gt;
LINUX:/tmp # mtst -f /dev/nst0 setblk 0&lt;br /&gt;
LINUX:/tmp # dd if=/dev/sdb1 bs=4K | tee /tmp/pipe | strings | grep -B 50 -A 20 &amp;quot;Starker Schneefall&amp;quot; &amp;gt; /tmp/gefunden.txt &amp;amp;&lt;br /&gt;
[1] 6373&lt;br /&gt;
LINUX:/tmp # dd if=/tmp/pipe of=/dev/nst0 bs=64K&lt;br /&gt;
126504+0 records in&lt;br /&gt;
126504+0 records out&lt;br /&gt;
0+63252 records in&lt;br /&gt;
0+63252 records out&lt;br /&gt;
[1]+  Done     dd if=/dev/sdb1 bs=4K | tee /tmp/pipe | strings | grep -B 50 -A 20 &amp;quot;Starker Schneefall&amp;quot; &amp;gt;/tmp/gefunden.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wir legen uns eine [http://www.phpman.info/index.php?parameter=mkfifo&amp;amp;mode=man Named Pipe] an.&lt;br /&gt;
In der Suchbefehlskette duplizieren wir mittels [http://www.phpman.info/index.php?parameter=tee&amp;amp;mode=man tee] den Datenstrom in Richtung dieser Pipe.&lt;br /&gt;
Die gesamte Befehlskette schicken wir in den Hintergrund. Dort wird sie so lange untätig warten, bis jemand die Pipe zum lesen öffnet. Zum Lesen öffnen wir die Pipe dann mit dem nächsten '''dd''' Kommando und leiten die Ausgabe an das Laufwerk weiter. Wenn der '''dd''' Befehl beendet ist, ist auch unser Hintergrundbefehl beendet.&lt;br /&gt;
&lt;br /&gt;
Die Pipe brauchen wir jetzt nicht mehr, die können wir löschen, aber schauen wir uns das Ergebnis an.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LINUX:/tmp # rm /tmp/pipe&lt;br /&gt;
LINUX:/tmp # ls -l /tmp/gefunden.txt &lt;br /&gt;
-rw-r--r--  1 root root 4044 Jul 16 19:43 /tmp/gefunden.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
wir haben eine Datei ''gefunden.txt'' und wirklich, wir haben auch etwas gefunden &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LINUX:/tmp # mtst -f /dev/nst0 rewind&lt;br /&gt;
LINUX:/tmp # dd if=/dev/nst0 of=/tmp/test.img bs=64K&lt;br /&gt;
0+63252 records in&lt;br /&gt;
0+63252 records out&lt;br /&gt;
LINUX:/tmp # file /tmp/test.img&lt;br /&gt;
/tmp/test.img: Linux rev 1.0 ext2 filesystem data&lt;br /&gt;
LINUX:/tmp # fsck /tmp/test.img&lt;br /&gt;
fsck 1.34 (25-Jul-2003)&lt;br /&gt;
e2fsck 1.34 (25-Jul-2003)&lt;br /&gt;
/tmp/test.img: clean, 40/126976 files, 51084/506016 blocks&lt;br /&gt;
LINUX:/tmp # mount -o loop /tmp/test.img /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
Und wir können vom Band unser Partitionsimage lesen. Zum Test wird auch gleich noch einen Filesystemcheck gemachen und das mounten probiert.&lt;br /&gt;
&lt;br /&gt;
=== mit dd über Rechnergrenzen ===&lt;br /&gt;
&lt;br /&gt;
Daten von einem auf einen anderen Rechner übertragen oder weiterleiten ist eine häufig benötigte Funktion. Da '''dd''' problemlos mit den Standardein- und Ausgabekanälen arbeitet, könnten wir es in jede Pipe und somit auch in Verbindungen über Rechnergrenzen einschleusen. Einfache Verbindungen lassen sich so zB bequem über [http://www.phpman.info/index.php?parameter=rsh&amp;amp;mode=man rsh] [http://www.phpman.info/index.php?parameter=ssh&amp;amp;mode=man ssh] oder [http://linux.die.net/man/1/nc netcat] mit '''dd''' auf einer oder auf beiden Seiten der Pipe aufbauen.&lt;br /&gt;
&lt;br /&gt;
Beispiel: clonen einer Festplatte auf einen anderen Rechner&lt;br /&gt;
 dd if=/dev/hda bs=8K | ssh RECHNER2 &amp;quot;dd of=/dev/hdb bs=8K&amp;quot;&lt;br /&gt;
damit würden wir die ''/dev/hda'' unseres Rechners auf die ''/dev/hdb'' von RECHNER2 clonen.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ähnlich könnten wir wohl vieles andere auch über Netwerk weiterleiten. Der größte Teil der weiter oben vorgestellten Beispiele ginge also auch über Rechnergrenzen hinweg. Inwieweit das immer auch Sinn macht, sei mal dahingestellt, da sich vieles wahrscheinlich sogar auch ohne '''dd''' realisieren ließe. Das obrige Beispiel würde mit Sicherheit so hier genauso funktionieren.&lt;br /&gt;
 cat /dev/hda | ssh RECHNER2 &amp;quot;cat &amp;gt; /dev/hdb&amp;quot;&lt;br /&gt;
Die Performancevorteile, die wir aus der Blockung mit '''dd''' ziehen, würde durch die Netzverbindung und der zusätzlichen Verschlüsselung über '''ssh''' sowieso zu nichte gemacht. Wenn wir also nicht irgendwelche andere Funktionen, wie zB Byte-Konvertierungen oder die Positionierungsfunktionen im Datenstrom von dd mit benutzen können, und auch auf eine Blockung des Datenstromes verzichten können, dann ist '''dd''' über das Netzwerk in vielen Fällen überflüssig. ''(die Befehlsverkettung mit dd würde aber wahrscheinlich leichter zu interpretierende Befehlszeilen ergeben ;-))''&lt;br /&gt;
&lt;br /&gt;
Ganz anders, wenn wir die Blockung an irgend Stelle zwingend benötigen. Wie zum Beispiel beim Schreiben und Lesen auf Bandlaufwerke.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LINUX:/ # tar -cf - /etc | ssh RECHNER2 &amp;quot;dd of=/dev/nst0 obs=64K&amp;quot;&lt;br /&gt;
tar: Removing leading `/' from member names&lt;br /&gt;
tar: Removing leading `/' from hard link targets&lt;br /&gt;
49404+8 records in&lt;br /&gt;
386+0 records out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hiermit würden wir eine Sicherung mit '''tar''' gleich auf das Bandlaufwerk eines anderen Rechner schreiben.&lt;br /&gt;
Sicherung wieder recovern, &lt;br /&gt;
 ssh RECHNER2 &amp;quot;dd if=/dev/nst0 bs=64K&amp;quot; | tar -xvf -   &lt;br /&gt;
oder nur das Inhaltsverzeichnis anschauen&lt;br /&gt;
 ssh RECHNER2 &amp;quot;dd if=/dev/nst0 bs=64K&amp;quot; | tar -tvf -&lt;br /&gt;
Wir hätten hier also mittels der Verlängerung über '''ssh''' und '''dd''' ein remote Bandlaufwerk.&lt;br /&gt;
&lt;br /&gt;
Der Vervollständigkeit halber: wir müssen das Laufwerk auch von unserem eigenem Rechner aus steuern können, also remote, aber das geht genau so. &amp;lt;br&amp;gt;&lt;br /&gt;
Beispiele:&lt;br /&gt;
  ssh RECHNER2 &amp;quot;mtst -f /dev/nst0 setblk 0&amp;quot;&lt;br /&gt;
  ssh RECHNER2 &amp;quot;mtst -f /dev/nst0 rewind&amp;quot;&lt;br /&gt;
und wir müssen natürlich für root [[Einrichten von public keys mit ssh|Publickey-Authentifizierung]] einrichten, denn sonst müssten wir bei jedem ssh-Befehl das Passwort eingeben. Aber dann steht hier auch einer Sicherung durch ein Script auf ein entferntes Laufwerk nichts mehr im Wege. &lt;br /&gt;
 -- außer --&lt;br /&gt;
Das Ganze würde, wenn wir es tag täglich benutzen möchten, nur mit etwas älteren Laufwerken wirklich Sinn machen. Moderne Bandlaufwerke würden wir mit dem Datenstrom den wir somit dem Laufwerk anbieten nur zu tote langweilen. &amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt  jedoch Programme, die auch Blockfunktionen wie '''dd''' anbieten und darüber hinaus noch im Hauptspeicher oder auf Festplatte den Datenstrom cachen können. Darüber hinaus unter anderem auch noch die Eigenschaft haben, selbst mit TCP/IP Ports zu kommunizieren. Solchen Programmen ist hier bei regelmäßiger Anwendung auf moderne Bandlaufwerke der absolute Vorzug gegenüber von '''dd''' einzuräumen. [[Bandlaufwerke und LINUX#Das Programm mbuffer |Beispiele]] findet ihr unter [[Bandlaufwerke und LINUX]]. Auch bei vielen anderen Anwendungen können solche neuen Programme den guten alten dd-Befehl  100%ig und oft auch besser  ersetzen. dd ist und bleibt dennoch der Kultbefehl mit dem man unter Linux oder Unix mal eben schnell &amp;quot;zaubert&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Alternative Programme ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnu.org/software/ddrescue/ddrescue.html ddrescue] &amp;lt;br&amp;gt;&lt;br /&gt;
eine moderne Erweiterung von dd speziell geeignet um teilweise defekte Platten und Wechselmedien zu lesen oder zu kopieren. Es ist in der Handhabung etwas einfacher und die wichtige Optionen sind analog zu benutzen. Siehe auch [http://www.linux-user.de/ausgabe/2004/08/048-dd-rescue/ LinuxUser - Das Magazin für die Praxis -   LU 08/2004: Datenrettung mit ddrescue]  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.maier-komor.de/mbuffer.html mbuffer]&amp;lt;br&amp;gt;&lt;br /&gt;
eine Programm das einen Datenstrom im Speicher oder auf Festplatte sehr effektiv '''(buffern)''' kann, es wurde speziell für die Benutzung mit Bandlaufwerken entwickelt. Es ist nur eine indirekte Alternative für dd, ist aber durchaus in der Lage viele andere Aufgaben die bisher mit dd erledigt werden konnten, sehr effektiv zu meistern. Die Bedienung und Benutzung hat mit dd nichts gemein, und ist bisweilen sehr knifflig. Es hat eine ganze Reihe von nützlichen Zusatzfunktionen die in dd nicht enthalten sind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== weiterführende Links ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Konsole]]&lt;/div&gt;</summary>
		<author><name>K4m1K4tz3</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:OpenSUSE_und_Multimedia&amp;diff=20173</id>
		<title>Diskussion:OpenSUSE und Multimedia</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:OpenSUSE_und_Multimedia&amp;diff=20173"/>
		<updated>2007-07-20T15:05:45Z</updated>

		<summary type="html">&lt;p&gt;K4m1K4tz3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Diskussionsziele|Forenlink=http://www.linux-club.de/forum18.html|Forenname=Multimedia}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ich denke man sollte auch ffmpeg in der Liste mit aufnehmen. &lt;br /&gt;
&lt;br /&gt;
[[Benutzer:K4m1K4tz3|K4m1K4tz3]] 17:05, 20. Jul 2007 (CEST)&lt;/div&gt;</summary>
		<author><name>K4m1K4tz3</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Linupedia.org:Gesch%C3%83%C2%BCtzte_Seiten&amp;diff=18327</id>
		<title>Linupedia.org:GeschÃ¼tzte Seiten</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Linupedia.org:Gesch%C3%83%C2%BCtzte_Seiten&amp;diff=18327"/>
		<updated>2007-06-21T15:01:50Z</updated>

		<summary type="html">&lt;p&gt;K4m1K4tz3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Folgende Seiten wurden im LinucClub Wiki gesperrt. Wenn jemand diese Seiten ändern möchte sollte er sich an die zuständige Person(en) wenden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{| border=2&lt;br /&gt;
 |'''''Seite'''''&lt;br /&gt;
 |'''''Begründung'''''&lt;br /&gt;
 |'''''Zuständige Person(en)'''''&lt;br /&gt;
 |-&lt;br /&gt;
 |[[backupdate.sh]]&lt;br /&gt;
 |Aus Sicherheitsgründen wurde dieses Script gesperrt&lt;br /&gt;
 |[[Benutzer:framp|framp]]&lt;br /&gt;
 |-&lt;br /&gt;
 |[[Make_snapshotLC.sh]]&lt;br /&gt;
 |Aus Sicherheitsgründen wurde dieses Script gesperrt&lt;br /&gt;
 |[[Benutzer:framp|framp]]&lt;br /&gt;
 |}&lt;/div&gt;</summary>
		<author><name>K4m1K4tz3</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Linupedia.org:Gesch%C3%83%C2%BCtzte_Seiten&amp;diff=17924</id>
		<title>Linupedia.org:GeschÃ¼tzte Seiten</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Linupedia.org:Gesch%C3%83%C2%BCtzte_Seiten&amp;diff=17924"/>
		<updated>2007-06-16T10:14:31Z</updated>

		<summary type="html">&lt;p&gt;K4m1K4tz3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Folgende Seiten wurden im LinucClub Wiki gesperrt. Wenn jemand diese Seiten ändern möchte sollte er sich an die zuständige Person(en) wenden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{| border=2&lt;br /&gt;
 |'''''Seite'''''&lt;br /&gt;
 |'''''Begründung'''''&lt;br /&gt;
 |'''''Zuständige Person(en)'''''&lt;br /&gt;
 |-&lt;br /&gt;
 |[[backupdate.sh]]&lt;br /&gt;
 |Aus Sicherheitsgründen wurde dieses Script gesperrt&lt;br /&gt;
 |[[Benutzer:framp|framp]]&lt;br /&gt;
 |}&lt;/div&gt;</summary>
		<author><name>K4m1K4tz3</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:Backupprogramme&amp;diff=17896</id>
		<title>Diskussion:Backupprogramme</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:Backupprogramme&amp;diff=17896"/>
		<updated>2007-06-15T11:57:42Z</updated>

		<summary type="html">&lt;p&gt;K4m1K4tz3: Trotzdem dd erwähnen mit Warnung?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;hieß der nicht tomte? --[[Benutzer:Yehudi|Yehudi]] 21:06, 6. Jun 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
Joa, stimmt :-) --[[Benutzer:K4m1K4tz3|K4m1K4tz3]] 11:58, 8. Jun 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
== G4L oder G4U? ==&lt;br /&gt;
&lt;br /&gt;
Ich wäre aufgrund der Lizenzstreitigeiten bei G4L und G4U dafür, daß G4L aus der Liste fliegt, da dort Rechte des G4U Autoren offenbar bewusst ignoriert wurden und die Lizenzierung bei G4L daher wohl recht zweifelhaft sein dürfte. Siehe dazu auch im Link zum G4U Text im Artikel....aus dem MosNis ists deswegen auch schon länger rausgekegelt worden seit mir der Lizenzstreit da bekannt wurde, zumal beide ungefähr denselben Leistungsumfang bieten und damals (als ichs in den Anfangstagen des MosNis dort mit reinnahm) G4L einfach nur ein nettes Menü dazu lieferte was bei G4U nicht mitgeliefert wurde..&lt;br /&gt;
Lizenzverstöße/Codediebstahl durch Lizenzignorierung sollte man auch bei OSS nicht fördern find ich...&lt;br /&gt;
Bis denne,&lt;br /&gt;
--[[Benutzer:TomcatMJ|TomcatMJ]] 23:30, 10. Jun 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
:Nur ein Gerücht. Außerdem sind laut Wikipedia die angeblich Ähnlichkeiten weitgehend verschwunden, so daß ich wirklich keinerlei Veranlassung zu einer Entfernung sehe. Und außerdem: Was haben wir mit irgendwelchen Lizenzstreitereien zu tun? --[[Benutzer:Stefan Staeglich|Stefan Staeglich]] 17:48, 14. Jun 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
::Also als ich letzten Herbst mal den Vergleich selbst gemacht hab der auf http://www.feyrer.de/g4u/g4l.html vom g4u Programmierer bereits gemacht und doumentiert wurde, sah es nicht nach irgendwelchen nennenswerten Änderungen an den beanstandeten Codeteilen aus. Wenn da also nicht jetzt das Ganze g4l Projekt komplett umgekrempelt wurde, dann halte ich eher den Status als &amp;quot;Gerücht&amp;quot; für das eigentliche Gerücht...naja,auf alle Fälle ists da jedenfalls betreffs g4l leider noch hakelig mit dem Rechtsstatus. da bisher noch keine von beiden Seiten für eine eindeutige Klärung durch ein Gericht oder eine definitive Stellunsgnahme  seitens den g4l Leuten, die ja nichmal eine eigene Website für ihr Projekt haben wo sie dazu was sagen würden, weswegen es für mich eben auch nicht wirklich astrein zu sein scheint. Rechtlich haben wir damit natürlich nicht wirklich was zu tun,aber moralisch find ichs eben schon bedenlich wenn Codediebstahl dadurch unterstützt wird, daß man die Projekte in denen das auftritt und nicht umgehend abgeändert wird pusht...ist eben so wie mit Linux in der (ja nun definitiv unfriedlichen) Waffensystemtechnik, verboten ist es nicht wirklich aber damit dürften sich auch die wenigsten zivilen Programmierer anfreunden können und es eher ablehnen als dafür zu  streiten.....bei KKW-Steuerungsanlagen dürften diese Bedenken hingegen weniger wenn auch immer noch vorhanden sein (um mal 2 Vergleichsbeispiele für moralisch-ethische Bedenken anzubringen) ...--[[Benutzer:TomcatMJ|TomcatMJ]] 19:04, 14. Jun 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:::Ich schließe mich Stefan an. Ich habe bei dieser Frage nicht genügend Einblick und Wissen, wer da was von wem abgeschrieben haben soll. Es interessiert mich auch nicht. Solange wir hier nur über Behauptungen einer Firma reden, ist das für mich etwa so, als ob der berühmte Sack Reis in China umfällt. Da es keinerlei Auswirkungen auf unser Wiki hat, sollen die das ruhig mal unter sich ausmachen. Uns betrifft es nicht und wir haben auch nicht zu beurteilen, wer da möglicherweise wessen Lizenzen verletzt hat.&lt;br /&gt;
:::=&amp;gt; Ich sehe derzeit keinen Handlungsbedarf in dieser Angelegenheit.&lt;br /&gt;
:::--[[Benutzer:Griffin|Griffin]] 19:17, 14. Jun 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
::::'''''Uns betrifft es nicht und wir haben auch nicht zu beurteilen, wer da möglicherweise wessen Lizenzen verletzt hat.'''''&amp;lt;- Also ich denke schon, daß ich als denkfähiger Mensch durchaus von meinem Verstand Gebrauch machen darf und durchaus mir eine eigene Beurteilung der Sachlage zusteht. Das es uns betreffs dem Wiki hier nicht direkt tangiert ist nicht strittig, aber dieses &amp;quot;wir haben es nicht zu beurteilen&amp;quot; liest sich in meinen Augen wie &amp;quot;du darfst da nicht drüber nachdenken&amp;quot; und sorry, aber wer mir das Denken verbieten will muss mich schon erschiessen*g*...ich finde es halt bedenklich es kommentarlos einfach so stehen zu lassen hinsichtlich gerade der Codediebstahlsache und bisher konnte ich leider nur Argumente im Netz finden die '''für''' diese Codediebstahl sprachen aber noch kein einiziges was dagegen sprach und genau deshalb erwähne ich das eben hier auch und habe es ja deshalb auch aus dem offziziellen MosNis Projet gekegelt bis da die Lage endich mal defintiv geklärt wurde....solang das ungeklärt ist, ist es in meinen Augen ebenso bedenklich wie die Nutzung der libdvdcss (also nicht daß es nicht funktionieren würde, nur rechtlich halte ich es eben für eine ziemlich dunkelgraue Sache)...--[[Benutzer:TomcatMJ|TomcatMJ]] 19:26, 14. Jun 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
:::::Ich schließe mich da der Meinung von TomcatMJ an. --[[Benutzer:Yehudi|Yehudi]] 19:35, 14. Jun 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Niemand verbietet hier irgendwem, über irgendwas nachzudenken. So war meine Aussage weder gemeint noch sollte sie so verstanden werden. Es dürfte jedoch unstreitig sein, dass keiner von uns hinreichend mit der Materie vertraut ist, um hier irgendwelche Lizenzverletzungen in dem hier gegenständlichen Streit konkret nachweisen zu können. Wir sind weder Sachverständige noch haben wir diesen Sachverhalt als Richter zu beurteilen. Redmond wirft Linux ständig Patentverletzungen vor. Und? Hören wir deshalb auf, Linux zu supporten? Für mich gilt hier neben meiner völligen Gleichgültigkeit zu dem konkreten Problem die Unschuldsvermutung. Denkt ihr, was und worüber ihr wollt. Ich sehe unser Wiki nicht tangiert und kann demnach nicht erkennen, warum wir hier einen der Kandidaten streichen sollten. --[[Benutzer:Griffin|Griffin]] 19:45, 14. Jun 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
:Hast du dir denn http://www.feyrer.de/g4u/g4l.html ma angesehen? Im gegensatz zu dem Redmond FUD liefert der Programmierer von g4u wenigstens auch offen einsehbare und von jedem selbst überprüfbare Belege dazu, daß es dir egal ist ist eine Sache, aber das eben da keine haltlosen Anschuldigungen sondern belegbares die Konfliktursache ist lässt sich auch als nicht-Sachverständiger (btw.:Woher willst du eigentlich wissen was alle LC-Wikileser beruflich machen?*g* Es kann durchaus auch der ein oder andere vereidigte Sachverständige für Softwarefragen mit gerichtlicher Zulassung darunter sein ohne daß du davon weisst..) erkennen sofern man nur mal die gelieferten Informationen überprüft. &lt;br /&gt;
:Das deine Aussage missverstanden wurde lag wohl an der eindeutigen Formulierung die du dann wohl eigentlich nicht so treffen wolltest wie du sie trafst, daher sag ich einfach mal &amp;quot;Schwamm über diesen Punt,nächstesmal besser erst denken,dann posten*g*&amp;quot;. Naja, Löschung des Eintrags mag angesichts des bis heute nicht wirlich geklärten Status, auch wenn er sehr dubios ist, vieleicht etwas zu rigide sein, aber dann sollte zumindest schon beim Eintrag auf die Konfliktproblematik hingewiesen werden damit sich die User selbst ein Bild davon machen und dann entscheiden was sie davon halten, denn wenn wirs unommentiert lassen sehe ich das Wiki schon etwas tangiert da wir damit auch eine Art Stellungsnahme dazu äußern, nämlich Ignoranz gegenüber der Codediebstahlprobematik, was dann wiederum auch ein schlechtes Bild (nämlich indirekte Unterstützung solcher Vorgehensweisen) abgeben kann von dem ich mich hiermit ausdrücklich distanziere. --[[Benutzer:TomcatMJ|TomcatMJ]] 20:02, 14. Jun 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:: Gegen einen sachlichen und neutral formulierten Hinweis auf die Problematik habe ich nichts. --[[Benutzer:Griffin|Griffin]] 20:07, 14. Jun 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
:::Ich hab mal einen entsprechenden Hinweis eingefügt. Falls jemand eine bessere Formulierung dafür findet nur zu...:-) --[[Benutzer:TomcatMJ|TomcatMJ]] 20:16, 14. Jun 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
== dd hinzufügen? ==&lt;br /&gt;
&lt;br /&gt;
Vielleicht sollte man noch dd hinzufügen. Ist zwar kein richtiges Backupprogramm, aber Daten kann man damit trotzdem sichern ;-)&lt;br /&gt;
http://linuxwiki.de/dd&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:K4m1K4tz3|K4m1K4tz3]] 15:29, 14. Jun 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
: Lasst das dd bitte erst mal raus. Ich bin ein bekennender und strikter Gegner hier im Forum und auch im Wiki &amp;quot;Halbwissende&amp;quot; mit unvollständig und schlecht dokumentierten Befehlenszeilen und Beispielen mittels dd auf die Platten und Partitionen loszulassen. Habe das im Forum auch schon mehrfach kritisiert, aber auf mich hört ja keiner. http://www.linux-club.de/ftopic66240-0-asc-13.html . Und ich sage das nicht aus lauter Spaß, sonder weil ich dienstlich täglich mit diesem Befehl zu tun habe. Übrigens nach deiner Begründung müßte auch zB cat als Backupprogram aufgenommen werden.&lt;br /&gt;
 cat /dev/hda1 &amp;gt; /dev/hdb1&lt;br /&gt;
: macht auch eine Kopie von dieser Partition ;-) und etwas abgewandel und in eine Datei geschrieben oder übers Netzwerk auf einen anderen Rechner geht das so auch noch, habe ich dann wohl mit cat auch ein nenneswertes Backupprogramm ? Wenn ich mich ein bisschen anstrenge dann schaffe ich das auch noch ganz ohne Befehl nur mit der Shell und Ausgabeumleitungen. Also Backup ganz ohne Programm ??????? müssen wir wohl auch noch eine Leerzeile in die Tabelle einfügen.&lt;br /&gt;
: Den dd Wikiartikel den du erwähnst, halte ich für oberflächlich, unvollständig und stellenweise kreuzgefährlich. Sollte ich demnächst mal wieder etwas mehr Zeit haben, dann schreibe ich hier mal einen umfassenden Wikiartikel über dd , aber zur Zeit sieht es mit der Zeit bei mir mehr als traurig aus. &lt;br /&gt;
--[[Benutzer:Robi|Robi]] 01:41, 15. Jun 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
War ja nur ne Frage :-p&lt;br /&gt;
Zudem finde ich es sehr praktisch dass man halt mit dd ein komplettes Backup machen kann und dies auch noch komprimieren kann. Aber ich denke dass man da trotzdem etwas erwähnen sollte, wie etwa: dd sollte nur von erfahrenen Benutzern benutzt werden und wird deshalb nicht weiter erwähnt. Oder so ähnlich.&lt;br /&gt;
--[[Benutzer:K4m1K4tz3|K4m1K4tz3]] 13:57, 15. Jun 2007 (CEST)&lt;/div&gt;</summary>
		<author><name>K4m1K4tz3</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:Backupprogramme&amp;diff=17860</id>
		<title>Diskussion:Backupprogramme</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:Backupprogramme&amp;diff=17860"/>
		<updated>2007-06-14T13:28:25Z</updated>

		<summary type="html">&lt;p&gt;K4m1K4tz3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;hieß der nicht tomte? --[[Benutzer:Yehudi|Yehudi]] 21:06, 6. Jun 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
Joa, stimmt :-) --[[Benutzer:K4m1K4tz3|K4m1K4tz3]] 11:58, 8. Jun 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
== G4L oder G4U? ==&lt;br /&gt;
&lt;br /&gt;
Ich wäre aufgrund der Lizenzstreitigeiten bei G4L und G4U dafür, daß G4L aus der Liste fliegt, da dort Rechte des G4U Autoren offenbar bewusst ignoriert wurden udn die Lizenzierung bei G4L daher wohl recht zweifelhaft sein dürfte. Siehe dazu auch im Link zum G4U Text im Artikel....aus dem MosNis ists deswegen auch schon länger rausgekegelt worden seit mir der Lizenzstreit da bekannt wurde, zumal beide ungefähr denselben Leistungsumfang bieten und damals (als ichs in den Anfangstagen des MosNis dort mit reinnahm) G4L einfach nur ein nettes Menü dazu lieferte was bei G4U nicht mitgeliefert wurde..&lt;br /&gt;
Lizenzverstöße/Codediebstahl durch Lizezignorierung sollte man auch bei OSS nicht fördern find ich...&lt;br /&gt;
Bis denne,&lt;br /&gt;
--[[Benutzer:TomcatMJ|TomcatMJ]] 23:30, 10. Jun 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
== dd hinzufügen? ==&lt;br /&gt;
&lt;br /&gt;
Vielleicht sollte man noch dd hinzufügen. Ist zwar kein richtiges Backupprogramm, aber Daten kann man damit trotzdem sichern ;-)&lt;br /&gt;
http://linuxwiki.de/dd&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:K4m1K4tz3|K4m1K4tz3]] 15:29, 14. Jun 2007 (CEST)&lt;/div&gt;</summary>
		<author><name>K4m1K4tz3</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Backupprogramme&amp;diff=17490</id>
		<title>Backupprogramme</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Backupprogramme&amp;diff=17490"/>
		<updated>2007-06-08T09:58:40Z</updated>

		<summary type="html">&lt;p&gt;K4m1K4tz3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die folgenden Tabellen sind das Ergebnis der Linux-Club Community, die in http://www.linux-club.de/ftopic81889-0-asc-0.html ihre bevorzugten Backupprogramme und -scripte empfohlen bzw vorgestellt haben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Liste von Linux Backupprogrammen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{| border=2&lt;br /&gt;
 |'''''Name'''''&lt;br /&gt;
 |'''''Typ'''''&lt;br /&gt;
 |'''''Abstract'''''&lt;br /&gt;
 |-&lt;br /&gt;
 |[[backupdate.sh]]&lt;br /&gt;
 |Befehlszeilenscript&lt;br /&gt;
 | # Script zum sichern eines beliebigen Verzeichnisses mit rsync&lt;br /&gt;
# Es werden mehrere Ordner angelegt, mithilfe von Hardlinks,&lt;br /&gt;
# mit dem jeweils aktuellen Datum (backup_JahrMonatTag).&lt;br /&gt;
# Die ältesten Ordner werden gelöscht&lt;br /&gt;
 |-&lt;br /&gt;
 |[http://backup2l.sourceforge.net backup2l]&lt;br /&gt;
 |Befehlszeile&lt;br /&gt;
 |Low-Maintenance Backup/Restore Tool - Tool für automatische, inkrementelle Backups nach dem Generationenprinzip. Einfache, aber flexible Konfiguration über Kontrolldatei in Shell-Syntax. Basiert auf Standard-Tools tar, gzip und find. Einfache &amp;quot;Treiber&amp;quot;-Schnittstelle (Shell-Funktion) für alternative Archivprogramme oder Zusatzfunktionen wie Splitten oder Verschlüsseln.&lt;br /&gt;
 |-&lt;br /&gt;
 |[http://clonezilla.sourceforge.net Clonezilla]&lt;br /&gt;
 |Befehlszeile&lt;br /&gt;
 |Clonezilla basiert auf DRBL, Partition Image, ntfsclone, und udpcast, und erlaubt massiv paralleles clonen von 40 plus Computern&lt;br /&gt;
 |-&lt;br /&gt;
 |[https://faracvs.cs.uni-magdeburg.de/projects/christsc-darbackup darbackup]&lt;br /&gt;
 |Befehlszeile&lt;br /&gt;
|&lt;br /&gt;
# Erzeugung von Referenz-Sicherungen, die ein maximales Alter nicht überschreiten&lt;br /&gt;
# Erzeugung von differenziellen Sicherungen, die ein maximales Alter nicht überschreiten&lt;br /&gt;
# Erzeugung neuer Referenz-Sicherungen, falls existierende Sicherungen zu alt sind&lt;br /&gt;
# Erzeugung neuer Referenz-Sicherungen, falls die Gesamtgröße der differenziellen Sicherungen einen Grenzwert überschreitet&lt;br /&gt;
# Transfer von erzeugten Sicherungen per SSH auf entfernte Rechner&lt;br /&gt;
# Verwendung von bdelta/xdelta zur Speicherung von ausschliesslich geänderten Daten zwischen zwei differentiellen Sicherungen&lt;br /&gt;
# Verwendung von Konfigurationsdateien für unterschiedliche Sicherungs-Quellen und -Ziele &lt;br /&gt;
 |-&lt;br /&gt;
 |[http://sourceforge.net/projects/g4l Ghost for Linux]&lt;br /&gt;
 |Befehlszeile&lt;br /&gt;
 |Ghost for Linux ist ein disk und partition imaging und cloning tool ähnlich wie Norton Ghost(c). Die erzeugten Images werden optional compressed und per ftp transferiert oder lokal abgelegt.&lt;br /&gt;
 |-&lt;br /&gt;
 |[http://packman.links2linux.de/package/grsync%20 grsync]&lt;br /&gt;
 |GUI&lt;br /&gt;
 |Graphisches Interface für rsync&lt;br /&gt;
 |-&lt;br /&gt;
 | [http://kbackup.sourceforge.net/ kbackup]&lt;br /&gt;
 |Befehlszeile/GUI&lt;br /&gt;
 | Erstellt ein tar-Verzeichnisse, der ausgewählten Ordner. Nicht sehr viele Einstellungsmöglichkeiten, aber für den privaten Gebrauch ist es ausreichend.&lt;br /&gt;
 |-&lt;br /&gt;
 |-&lt;br /&gt;
 | [http://krusader.sourceforge.net/ krusader]&lt;br /&gt;
 |GUI&lt;br /&gt;
 |Ein Feature von Krusader ist der Synchronizer, mit dem man Verzeichnisse komfortabel synchronisieren kann. Ein Verzeichnis kann dabei auch auf einem ftp-Server liegen.&lt;br /&gt;
&lt;br /&gt;
Der Synchronizer kann Verzeichnisse additiv zusammenführen, oder ein Zielverzeichnis auf den Stand eines Quellverzeichnisses bringen (inkl. Löschungen).&lt;br /&gt;
 |-&lt;br /&gt;
 |[http://mkcdrec.ota.be/ mkCDrec]&lt;br /&gt;
 |Befehlszeile&lt;br /&gt;
 |mkCDrec erzeugt ein bootable (El Torito) disaster recovery image (CDrec.iso), und schreibt Backups von einem Linux System auf derselben CD-ROM (oder CD-RW) wenn der Platz dazu reicht oder auf ein multi-volume CD-ROM set. Backups können auch auf einer lokalen Disk, NFS disk oder (remote) tape abgelegt werden.&lt;br /&gt;
 |-&lt;br /&gt;
 | [http://man.cx/star star]&lt;br /&gt;
 |Befehlszeile&lt;br /&gt;
 |Ist eine sehr schnelle und moderne Erweiterung von tar das eine Reihe von Beschränkungen von tar aufhebt, und wesentlich mehr moderne tar-Formate unterstützt.&lt;br /&gt;
Bietet auch unter anderem ACL-Unterstützung.&lt;br /&gt;
 |-&lt;br /&gt;
 |[[rsync]]&lt;br /&gt;
 |Befehlszeile&lt;br /&gt;
 |'''Das''' Standard Synchronisationsprogramm von Linux. Sehr nützlich bei regelmäßigen (z.B. wöchentlichen) Snapshorts die jederzeit direkt verfügbar sind (kein Entpacken der Daten notwendig) durch Einsatz von Hardlinks. &lt;br /&gt;
 |-&lt;br /&gt;
 |tar&lt;br /&gt;
 |Befehlszeile&lt;br /&gt;
 |'''Das''' Standard Backupprogramm von Linux &lt;br /&gt;
 |}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ihre Backupprogramme für die obige Liste haben empfohlen ===&lt;br /&gt;
# joka&lt;br /&gt;
# tomte&lt;br /&gt;
# lips&lt;br /&gt;
# ginka&lt;br /&gt;
# robi&lt;br /&gt;
# [[Benutzer:framp|framp]]&lt;br /&gt;
&lt;br /&gt;
=== Ihre Backupscripte haben beigesteuert ===&lt;br /&gt;
&lt;br /&gt;
# K4m1K4tz3&lt;/div&gt;</summary>
		<author><name>K4m1K4tz3</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:Backupprogramme&amp;diff=17489</id>
		<title>Diskussion:Backupprogramme</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:Backupprogramme&amp;diff=17489"/>
		<updated>2007-06-08T09:58:16Z</updated>

		<summary type="html">&lt;p&gt;K4m1K4tz3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;hieß der nicht tomte? --[[Benutzer:Yehudi|Yehudi]] 21:06, 6. Jun 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
Joa, stimmt :-) --[[Benutzer:K4m1K4tz3|K4m1K4tz3]] 11:58, 8. Jun 2007 (CEST)&lt;/div&gt;</summary>
		<author><name>K4m1K4tz3</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Backupdate_sh&amp;diff=17484</id>
		<title>Backupdate sh</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Backupdate_sh&amp;diff=17484"/>
		<updated>2007-06-08T09:23:03Z</updated>

		<summary type="html">&lt;p&gt;K4m1K4tz3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
# Script zum sichern eines beliebigen Verzeichnisses mit rsync&lt;br /&gt;
# Es werden mehrere Ordner angelegt, mithilfe von Hardlinks,&lt;br /&gt;
# mit dem jeweils aktuellen Datum (backup_JahrMonatTag).&lt;br /&gt;
# Die ältesten Ordner werden gelöscht&lt;br /&gt;
#&lt;br /&gt;
# Dieses Skript kann durch einen Cron Job alle X Tage aufgerufen werden.&lt;br /&gt;
# Für weitere Infos siehe hier: http://www.newbie-net.de/anleitung_cron.html&lt;br /&gt;
# oder hier: http://www.selflinux.org/selflinux/html/cron.html&lt;br /&gt;
# Bsp. für ein Backup welches jeden Tag um 24 Uhr gestartet wird:&lt;br /&gt;
# 00 24 */1 * * User /Ordner/mit/Script/backup.sh&lt;br /&gt;
#&lt;br /&gt;
# Version: 1.0&lt;br /&gt;
# Zuletzt geändert am: 07.06.2007&lt;br /&gt;
#&lt;br /&gt;
# Autor  Mathias Rabe&lt;br /&gt;
#        mathiasrabe@web.de&lt;br /&gt;
#&lt;br /&gt;
# Dieses Script steht unter der GPL. Es gelten daher die dort &lt;br /&gt;
# vorgeschriebenen Bedingungen für die Verwendung dieses Scriptes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#--------------------------------Einstellungen----------------------------------&lt;br /&gt;
&lt;br /&gt;
# Wovon soll ein Backup gemacht werden?&lt;br /&gt;
# Bsp wenn nur ein paar Ordner/Dateien kopiert werden sollen und nicht der gesamte Inhalt:&lt;br /&gt;
# SOURCE_LOCATION=&amp;quot;/home/USER/original/Ordner1 /home/USER/original/Ordner2&amp;quot;;&lt;br /&gt;
SOURCE_LOCATION=/home/master/backuptest/original;&lt;br /&gt;
&lt;br /&gt;
# Wohin soll das Backup geschrieben werden?&lt;br /&gt;
BACKUP_LOCATION=/home/master/backuptest/backup;&lt;br /&gt;
&lt;br /&gt;
# Wie viele Backups sollen maximal existieren? Achtung: zu der Anzahl kommt noch das neu hinzugefügte Backup!&lt;br /&gt;
# Bsp: Wenn hier 3 eingetragen ist, sind höchstens 4 Ordner vorhanden.&lt;br /&gt;
BACKUPS_UNTIL_ERASE=3;&lt;br /&gt;
&lt;br /&gt;
#---------------------------------Programm--------------------------------------&lt;br /&gt;
&lt;br /&gt;
if ! test -d $BACKUP_LOCATION ; then&lt;br /&gt;
        echo &amp;quot;Backupverzeichnis $BACKUP_LOCATION existiert nicht&amp;quot;;&lt;br /&gt;
        exit 0;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
cd $BACKUP_LOCATION;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DATE=$(date +&amp;quot;%Y%m%d&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
# TODO: Nachfolgende Funktionen schmeißen noch Fehlermeldungen beim Programm ls, &lt;br /&gt;
# wenn kein backup_* Ordner existiert. Die Funktionen werden anscheinend auch schon&lt;br /&gt;
# am Anfang ausgeführt, obwohl sie erst später ausgeführt werden sollen.&lt;br /&gt;
# Beeinträchtigt aber keineswegs die Funktioninalität!&lt;br /&gt;
NEWEST_BACKUP() {&lt;br /&gt;
        VAR_NEWEST_BACKUP=$(ls -d $BACKUP_LOCATION/backup_* | tail --lines=1) ;&lt;br /&gt;
return $? ; } ;&lt;br /&gt;
&lt;br /&gt;
OLDEST_BACKUP() {&lt;br /&gt;
        VAR_OLDEST_BACKUP=$(ls -rd $BACKUP_LOCATION/backup_* | tail --lines=1) ;&lt;br /&gt;
return $? ; } ;&lt;br /&gt;
&lt;br /&gt;
FILECOUNT() {&lt;br /&gt;
        VAR_FILECOUNT=$(ls -d $BACKUP_LOCATION/backup_* | wc -w) ;&lt;br /&gt;
return $? ; } ;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if test -d $BACKUP_LOCATION/backup_$DATE ; then&lt;br /&gt;
        echo &amp;quot;Ein aktuelles Backup existiert bereits&amp;quot;;&lt;br /&gt;
        exit 0;&lt;br /&gt;
fi;&lt;br /&gt;
&lt;br /&gt;
#älteste Ordner löschen, Anzahl wie viele Ordner vorhanden sein sollen bei BACKUPS_UNTIL_ERASE definieren!&lt;br /&gt;
FILECOUNT;&lt;br /&gt;
&lt;br /&gt;
while [ $VAR_FILECOUNT -gt $BACKUPS_UNTIL_ERASE ] ; do&lt;br /&gt;
        OLDEST_BACKUP;&lt;br /&gt;
        rm -rfv $VAR_OLDEST_BACKUP ;&lt;br /&gt;
        FILECOUNT;&lt;br /&gt;
done;&lt;br /&gt;
&lt;br /&gt;
#neues Backup erstellen:&lt;br /&gt;
NEWEST_BACKUP;&lt;br /&gt;
&lt;br /&gt;
rsync -arbuv --delete --progress --link-dest=$VAR_NEWEST_BACKUP $SOURCE_LOCATION $BACKUP_LOCATION/backup_$DATE/ ;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>K4m1K4tz3</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Backupdate_sh&amp;diff=17452</id>
		<title>Backupdate sh</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Backupdate_sh&amp;diff=17452"/>
		<updated>2007-06-07T21:25:30Z</updated>

		<summary type="html">&lt;p&gt;K4m1K4tz3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
# Script zum sichern eines beliebigen Verzeichnisses mit rsync&lt;br /&gt;
# Es werden mehrere Ordner angelegt, mithilfe von Hardlinks,&lt;br /&gt;
# mit dem jeweils aktuellen Datum (backup_JahrMonatTag).&lt;br /&gt;
# Die ältesten Ordner werden gelöscht&lt;br /&gt;
#&lt;br /&gt;
# Dieses Skript kann durch einen Cron Job alle X Tage aufgerufen werden.&lt;br /&gt;
# Für weitere Infos siehe hier: http://www.newbie-net.de/anleitung_cron.html&lt;br /&gt;
# oder hier: http://www.selflinux.org/selflinux/html/cron.html&lt;br /&gt;
# Bsp. für ein Backup welches jeden Tag um 24 Uhr gestartet wird:&lt;br /&gt;
# 00 24 */1 * * User /Ordner/mit/Script/backup.sh&lt;br /&gt;
#&lt;br /&gt;
# Version: 1.0&lt;br /&gt;
# Zuletzt geändert am: 07.06.2007&lt;br /&gt;
#&lt;br /&gt;
# Autor  Mathias Rabe&lt;br /&gt;
#        mathiasrabe@web.de&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#--------------------------------Einstellungen----------------------------------&lt;br /&gt;
&lt;br /&gt;
# Wovon soll ein Backup gemacht werden?&lt;br /&gt;
# Bsp wenn nur ein paar Ordner/Dateien kopiert werden sollen und nicht der gesamte Inhalt:&lt;br /&gt;
# SOURCE_LOCATION=&amp;quot;/home/USER/original/Ordner1 /home/USER/original/Ordner2&amp;quot;;&lt;br /&gt;
SOURCE_LOCATION=/home/master/backuptest/original;&lt;br /&gt;
&lt;br /&gt;
# Wohin soll das Backup geschrieben werden?&lt;br /&gt;
BACKUP_LOCATION=/home/master/backuptest/backup;&lt;br /&gt;
&lt;br /&gt;
# Wie viele Backups sollen maximal existieren? Achtung: zu der Anzahl kommt noch das neu hinzugefügte Backup!&lt;br /&gt;
# Bsp: Wenn hier 3 eingetragen ist, sind höchstens 4 Ordner vorhanden.&lt;br /&gt;
BACKUPS_UNTIL_ERASE=3;&lt;br /&gt;
&lt;br /&gt;
#---------------------------------Programm--------------------------------------&lt;br /&gt;
&lt;br /&gt;
if ! test -d $BACKUP_LOCATION ; then&lt;br /&gt;
        echo &amp;quot;Backupverzeichnis $BACKUP_LOCATION existiert nicht&amp;quot;;&lt;br /&gt;
        exit 0;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
cd $BACKUP_LOCATION;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DATE=$(date +&amp;quot;%Y%m%d&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
# TODO: Nachfolgende Funktionen schmeißen noch Fehlermeldungen beim Programm ls, &lt;br /&gt;
# wenn kein backup_* Ordner existiert. Die Funktionen werden anscheinend auch schon&lt;br /&gt;
# am Anfang ausgeführt, obwohl sie erst später ausgeführt werden sollen.&lt;br /&gt;
# Beeinträchtigt aber keineswegs die Funktioninalität!&lt;br /&gt;
NEWEST_BACKUP() {&lt;br /&gt;
        VAR_NEWEST_BACKUP=$(ls -d $BACKUP_LOCATION/backup_* | tail --lines=1) ;&lt;br /&gt;
return $? ; } ;&lt;br /&gt;
&lt;br /&gt;
OLDEST_BACKUP() {&lt;br /&gt;
        VAR_OLDEST_BACKUP=$(ls -rd $BACKUP_LOCATION/backup_* | tail --lines=1) ;&lt;br /&gt;
return $? ; } ;&lt;br /&gt;
&lt;br /&gt;
FILECOUNT() {&lt;br /&gt;
        VAR_FILECOUNT=$(ls -d $BACKUP_LOCATION/backup_* | wc -w) ;&lt;br /&gt;
return $? ; } ;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if test -d $BACKUP_LOCATION/backup_$DATE ; then&lt;br /&gt;
        echo &amp;quot;Ein aktuelles Backup existiert bereits&amp;quot;;&lt;br /&gt;
        exit 0;&lt;br /&gt;
fi;&lt;br /&gt;
&lt;br /&gt;
#älteste Ordner löschen, Anzahl wie viele Ordner vorhanden sein sollen bei BACKUPS_UNTIL_ERASE definieren!&lt;br /&gt;
FILECOUNT;&lt;br /&gt;
&lt;br /&gt;
while [ $VAR_FILECOUNT -gt $BACKUPS_UNTIL_ERASE ] ; do&lt;br /&gt;
        OLDEST_BACKUP;&lt;br /&gt;
        rm -rfv $VAR_OLDEST_BACKUP ;&lt;br /&gt;
        FILECOUNT;&lt;br /&gt;
done;&lt;br /&gt;
&lt;br /&gt;
#neues Backup erstellen:&lt;br /&gt;
NEWEST_BACKUP;&lt;br /&gt;
&lt;br /&gt;
rsync -arbuv --delete --progress --link-dest=$VAR_NEWEST_BACKUP $SOURCE_LOCATION $BACKUP_LOCATION/backup_$DATE/ ;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>K4m1K4tz3</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Backupdate_sh&amp;diff=17439</id>
		<title>Backupdate sh</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Backupdate_sh&amp;diff=17439"/>
		<updated>2007-06-07T16:46:37Z</updated>

		<summary type="html">&lt;p&gt;K4m1K4tz3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
# Script zum sichern eines beliebigen Verzeichnisses mit rsync&lt;br /&gt;
# Es werden mehrere Ordner angelegt, mithilfe von Hardlinks,&lt;br /&gt;
# mit dem jeweils aktuellen Datum (backup_JahrMonatTag).&lt;br /&gt;
# Die ältesten Ordner werden gelöscht&lt;br /&gt;
#&lt;br /&gt;
# Dieses Skript kann durch einen Cron Job alle X Tage aufgerufen werden.&lt;br /&gt;
# Für weitere Infos siehe hier: http://www.newbie-net.de/anleitung_cron.html&lt;br /&gt;
# oder hier: http://www.selflinux.org/selflinux/html/cron.html&lt;br /&gt;
# Bsp. für ein Backup welches jeden Tag um 24 Uhr gestartet wird:&lt;br /&gt;
# 00 24 */1 * * User /Ordner/mit/Script/backup.sh&lt;br /&gt;
#&lt;br /&gt;
# Version: 1.0&lt;br /&gt;
# Zuletzt geändert am: 07.06.2007&lt;br /&gt;
#&lt;br /&gt;
# Autor  Mathias Rabe&lt;br /&gt;
#        Albert-Einstein-Str. 47&lt;br /&gt;
#        63263 Neu-Isenburg&lt;br /&gt;
#        mathiasrabe@web.de&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#--------------------------------Einstellungen----------------------------------&lt;br /&gt;
&lt;br /&gt;
# Wovon soll ein Backup gemacht werden?&lt;br /&gt;
# Bsp wenn nur ein paar Ordner/Dateien kopiert werden sollen und nicht der gesamte Inhalt:&lt;br /&gt;
# SOURCE_LOCATION=&amp;quot;/home/USER/original/Ordner1 /home/USER/original/Ordner2&amp;quot;;&lt;br /&gt;
SOURCE_LOCATION=/home/master/backuptest/original;&lt;br /&gt;
&lt;br /&gt;
# Wohin soll das Backup geschrieben werden?&lt;br /&gt;
BACKUP_LOCATION=/home/master/backuptest/backup;&lt;br /&gt;
&lt;br /&gt;
# Wie viele Backups sollen maximal existieren? Achtung: zu der Anzahl kommt noch das neu hinzugefügte Backup!&lt;br /&gt;
# Bsp: Wenn hier 3 eingetragen ist, sind höchstens 4 Ordner vorhanden.&lt;br /&gt;
BACKUPS_UNTIL_ERASE=3;&lt;br /&gt;
&lt;br /&gt;
#---------------------------------Programm--------------------------------------&lt;br /&gt;
&lt;br /&gt;
if ! test -d $BACKUP_LOCATION ; then&lt;br /&gt;
        echo &amp;quot;Backupverzeichnis $BACKUP_LOCATION existiert nicht&amp;quot;;&lt;br /&gt;
        exit 0;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
cd $BACKUP_LOCATION;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DATE=$(date +&amp;quot;%Y%m%d&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
# TODO: Nachfolgende Funktionen schmeißen noch Fehlermeldungen beim Programm ls, &lt;br /&gt;
# wenn kein backup_* Ordner existiert. Die Funktionen werden anscheinend auch schon&lt;br /&gt;
# am Anfang ausgeführt, obwohl sie erst später ausgeführt werden sollen.&lt;br /&gt;
# Beeinträchtigt aber keineswegs die Funktioninalität!&lt;br /&gt;
NEWEST_BACKUP() {&lt;br /&gt;
        VAR_NEWEST_BACKUP=$(ls -d $BACKUP_LOCATION/backup_* | tail --lines=1) ;&lt;br /&gt;
return $? ; } ;&lt;br /&gt;
&lt;br /&gt;
OLDEST_BACKUP() {&lt;br /&gt;
        VAR_OLDEST_BACKUP=$(ls -rd $BACKUP_LOCATION/backup_* | tail --lines=1) ;&lt;br /&gt;
return $? ; } ;&lt;br /&gt;
&lt;br /&gt;
FILECOUNT() {&lt;br /&gt;
        VAR_FILECOUNT=$(ls -d $BACKUP_LOCATION/backup_* | wc -w) ;&lt;br /&gt;
return $? ; } ;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if test -d $BACKUP_LOCATION/backup_$DATE ; then&lt;br /&gt;
        echo &amp;quot;Ein aktuelles Backup existiert bereits&amp;quot;;&lt;br /&gt;
        exit 0;&lt;br /&gt;
fi;&lt;br /&gt;
&lt;br /&gt;
#älteste Ordner löschen, Anzahl wie viele Ordner vorhanden sein sollen bei BACKUPS_UNTIL_ERASE definieren!&lt;br /&gt;
FILECOUNT;&lt;br /&gt;
&lt;br /&gt;
while [ $VAR_FILECOUNT -gt $BACKUPS_UNTIL_ERASE ] ; do&lt;br /&gt;
        OLDEST_BACKUP;&lt;br /&gt;
        rm -rfv $VAR_OLDEST_BACKUP ;&lt;br /&gt;
        FILECOUNT;&lt;br /&gt;
done;&lt;br /&gt;
&lt;br /&gt;
#neues Backup erstellen:&lt;br /&gt;
NEWEST_BACKUP;&lt;br /&gt;
&lt;br /&gt;
rsync -arbuv --delete --progress --link-dest=$VAR_NEWEST_BACKUP $SOURCE_LOCATION $BACKUP_LOCATION/backup_$DATE/ ;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>K4m1K4tz3</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Backupdate_sh&amp;diff=17438</id>
		<title>Backupdate sh</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Backupdate_sh&amp;diff=17438"/>
		<updated>2007-06-07T16:45:40Z</updated>

		<summary type="html">&lt;p&gt;K4m1K4tz3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
# Script zum sichern eines beliebigen Verzeichnisses mit rsync&lt;br /&gt;
# Es werden mehrere Ordner angelegt, mithilfe von Hardlinks,&lt;br /&gt;
# mit dem jeweils aktuellen Datum (backup_JahrMonatTag).&lt;br /&gt;
# Die ältesten Ordner werden gelöscht&lt;br /&gt;
#&lt;br /&gt;
# Dieses Skript kann durch einen Cron Job alle X Tage aufgerufen werden.&lt;br /&gt;
# Für weitere Infos siehe hier: http://www.newbie-net.de/anleitung_cron.html&lt;br /&gt;
# oder hier: http://www.selflinux.org/selflinux/html/cron.html&lt;br /&gt;
# Bsp. für ein Backup welches jeden Tag um 24 Uhr gestartet wird (nicht getestet!):&lt;br /&gt;
# 00 24 */1 * * User /Ordner/mit/Script/backup.sh&lt;br /&gt;
#&lt;br /&gt;
# Version: 1.0&lt;br /&gt;
# Zuletzt geändert am: 07.06.2007&lt;br /&gt;
#&lt;br /&gt;
# Autor  Mathias Rabe&lt;br /&gt;
#        Albert-Einstein-Str. 47&lt;br /&gt;
#        63263 Neu-Isenburg&lt;br /&gt;
#        mathiasrabe@web.de&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#--------------------------------Einstellungen----------------------------------&lt;br /&gt;
&lt;br /&gt;
# Wovon soll ein Backup gemacht werden?&lt;br /&gt;
# Bsp wenn nur ein paar Ordner/Dateien kopiert werden sollen und nicht der gesamte Inhalt:&lt;br /&gt;
# SOURCE_LOCATION=&amp;quot;/home/USER/original/Ordner1 /home/USER/original/Ordner2&amp;quot;;&lt;br /&gt;
SOURCE_LOCATION=/home/master/backuptest/original;&lt;br /&gt;
&lt;br /&gt;
# Wohin soll das Backup geschrieben werden?&lt;br /&gt;
BACKUP_LOCATION=/home/master/backuptest/backup;&lt;br /&gt;
&lt;br /&gt;
# Wie viele Backups sollen maximal existieren? Achtung: zu der Anzahl kommt noch das neu hinzugefügte Backup!&lt;br /&gt;
# Bsp: Wenn hier 3 eingetragen ist, sind höchstens 4 Ordner vorhanden.&lt;br /&gt;
BACKUPS_UNTIL_ERASE=3;&lt;br /&gt;
&lt;br /&gt;
#---------------------------------Programm--------------------------------------&lt;br /&gt;
&lt;br /&gt;
if ! test -d $BACKUP_LOCATION ; then&lt;br /&gt;
        echo &amp;quot;Backupverzeichnis $BACKUP_LOCATION existiert nicht&amp;quot;;&lt;br /&gt;
        exit 0;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
cd $BACKUP_LOCATION;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DATE=$(date +&amp;quot;%Y%m%d&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
# TODO: Nachfolgende Funktionen schmeißen noch Fehlermeldungen beim Programm ls, &lt;br /&gt;
# wenn kein backup_* Ordner existiert. Die Funktionen werden anscheinend auch schon&lt;br /&gt;
# am Anfang ausgeführt, obwohl sie erst später ausgeführt werden sollen.&lt;br /&gt;
# Beeinträchtigt aber keineswegs die Funktioninalität!&lt;br /&gt;
NEWEST_BACKUP() {&lt;br /&gt;
        VAR_NEWEST_BACKUP=$(ls -d $BACKUP_LOCATION/backup_* | tail --lines=1) ;&lt;br /&gt;
return $? ; } ;&lt;br /&gt;
&lt;br /&gt;
OLDEST_BACKUP() {&lt;br /&gt;
        VAR_OLDEST_BACKUP=$(ls -rd $BACKUP_LOCATION/backup_* | tail --lines=1) ;&lt;br /&gt;
return $? ; } ;&lt;br /&gt;
&lt;br /&gt;
FILECOUNT() {&lt;br /&gt;
        VAR_FILECOUNT=$(ls -d $BACKUP_LOCATION/backup_* | wc -w) ;&lt;br /&gt;
return $? ; } ;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if test -d $BACKUP_LOCATION/backup_$DATE ; then&lt;br /&gt;
        echo &amp;quot;Ein aktuelles Backup existiert bereits&amp;quot;;&lt;br /&gt;
        exit 0;&lt;br /&gt;
fi;&lt;br /&gt;
&lt;br /&gt;
#älteste Ordner löschen, Anzahl wie viele Ordner vorhanden sein sollen bei BACKUPS_UNTIL_ERASE definieren!&lt;br /&gt;
FILECOUNT;&lt;br /&gt;
&lt;br /&gt;
while [ $VAR_FILECOUNT -gt $BACKUPS_UNTIL_ERASE ] ; do&lt;br /&gt;
        OLDEST_BACKUP;&lt;br /&gt;
        rm -rfv $VAR_OLDEST_BACKUP ;&lt;br /&gt;
        FILECOUNT;&lt;br /&gt;
done;&lt;br /&gt;
&lt;br /&gt;
#neues Backup erstellen:&lt;br /&gt;
NEWEST_BACKUP;&lt;br /&gt;
&lt;br /&gt;
rsync -arbuv --delete --progress --link-dest=$VAR_NEWEST_BACKUP $SOURCE_LOCATION $BACKUP_LOCATION/backup_$DATE/ ;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>K4m1K4tz3</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Backupprogramme&amp;diff=17431</id>
		<title>Backupprogramme</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Backupprogramme&amp;diff=17431"/>
		<updated>2007-06-07T16:14:05Z</updated>

		<summary type="html">&lt;p&gt;K4m1K4tz3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die folgenden Tabellen sind das Ergebnis der Linux-Club Community, die in http://www.linux-club.de/ftopic81889-0-asc-0.html ihre bevorzugten Backupprogramme empfohlen haben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Liste von Linux Backupprogrammen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{| border=2&lt;br /&gt;
 |'''''Name'''''&lt;br /&gt;
 |'''''Typ'''''&lt;br /&gt;
 |'''''Abstract'''''&lt;br /&gt;
 |-&lt;br /&gt;
 |backupdate.sh (Script s.u.)&lt;br /&gt;
 |Befehlszeile&lt;br /&gt;
 | # Script zum sichern eines beliebigen Verzeichnisses mit rsync&lt;br /&gt;
# Es werden mehrere Ordner angelegt, mithilfe von Hardlinks,&lt;br /&gt;
# mit dem jeweils aktuellen Datum (backup_JahrMonatTag).&lt;br /&gt;
# Die ältesten Ordner werden gelöscht&lt;br /&gt;
 |-&lt;br /&gt;
 |[http://backup2l.sourceforge.net backup2l]&lt;br /&gt;
 |Befehlszeile&lt;br /&gt;
 |Low-Maintenance Backup/Restore Tool - Tool für automatische, inkrementelle Backups nach dem Generationenprinzip. Einfache, aber flexible Konfiguration über Kontrolldatei in Shell-Syntax. Basiert auf Standard-Tools tar, gzip und find. Einfache &amp;quot;Treiber&amp;quot;-Schnittstelle (Shell-Funktion) für alternative Archivprogramme oder Zusatzfunktionen wie Splitten oder Verschlüsseln.&lt;br /&gt;
 |-&lt;br /&gt;
 |[http://clonezilla.sourceforge.net Clonezilla]&lt;br /&gt;
 |Befehlszeile&lt;br /&gt;
 |Clonezilla basiert auf DRBL, Partition Image, ntfsclone, und udpcast, und erlaubt massiv paralleles clonen von 40 plus Computern&lt;br /&gt;
 |-&lt;br /&gt;
 |[https://faracvs.cs.uni-magdeburg.de/projects/christsc-darbackup darbackup]&lt;br /&gt;
 |Befehlszeile&lt;br /&gt;
|&lt;br /&gt;
# Erzeugung von Referenz-Sicherungen, die ein maximales Alter nicht überschreiten&lt;br /&gt;
# Erzeugung von differenziellen Sicherungen, die ein maximales Alter nicht überschreiten&lt;br /&gt;
# Erzeugung neuer Referenz-Sicherungen, falls existierende Sicherungen zu alt sind&lt;br /&gt;
# Erzeugung neuer Referenz-Sicherungen, falls die Gesamtgröße der differenziellen Sicherungen einen Grenzwert überschreitet&lt;br /&gt;
# Transfer von erzeugten Sicherungen per SSH auf entfernte Rechner&lt;br /&gt;
# Verwendung von bdelta/xdelta zur Speicherung von ausschliesslich geänderten Daten zwischen zwei differentiellen Sicherungen&lt;br /&gt;
# Verwendung von Konfigurationsdateien für unterschiedliche Sicherungs-Quellen und -Ziele &lt;br /&gt;
 |-&lt;br /&gt;
 |[http://sourceforge.net/projects/g4l Ghost for Linux]&lt;br /&gt;
 |Befehlszeile&lt;br /&gt;
 |Ghost for Linux ist ein disk und partition imaging und cloning tool ähnlich wie Norton Ghost(c). Die erzeugten Images werden optional compressed und per ftp transferiert oder lokal abgelegt.&lt;br /&gt;
 |-&lt;br /&gt;
 |[http://packman.links2linux.de/package/grsync%20 grsync]&lt;br /&gt;
 |GUI&lt;br /&gt;
 |Graphisches Interface für rsync&lt;br /&gt;
 |-&lt;br /&gt;
 | [http://kbackup.sourceforge.net/ kbackup]&lt;br /&gt;
 |Befehlszeile/GUI&lt;br /&gt;
 | Erstellt ein tar-Verzeichnisse, der ausgewählten Ordner. Nicht sehr viele Einstellungsmöglichkeiten, aber für den privaten Gebrauch ist es ausreichend.&lt;br /&gt;
 |-&lt;br /&gt;
 |-&lt;br /&gt;
 | [http://krusader.sourceforge.net/ krusader]&lt;br /&gt;
 |GUI&lt;br /&gt;
 |Ein Feature von Krusader ist der Synchronizer, mit dem man Verzeichnisse komfortabel synchronisieren kann. Ein Verzeichnis kann dabei auch auf einem ftp-Server liegen.&lt;br /&gt;
&lt;br /&gt;
Der Synchronizer kann Verzeichnisse additiv zusammenführen, oder ein Zielverzeichnis auf den Stand eines Quellverzeichnisses bringen (inkl. Löschungen).&lt;br /&gt;
 |-&lt;br /&gt;
 |[http://mkcdrec.ota.be/ mkCDrec]&lt;br /&gt;
 |Befehlszeile&lt;br /&gt;
 |mkCDrec erzeugt ein bootable (El Torito) disaster recovery image (CDrec.iso), und schreibt Backups von einem Linux System auf derselben CD-ROM (oder CD-RW) wenn der Platz dazu reicht oder auf ein multi-volume CD-ROM set. Backups können auch auf einer lokalen Disk, NFS disk oder (remote) tape abgelegt werden.&lt;br /&gt;
 |-&lt;br /&gt;
 |[[rsync]]&lt;br /&gt;
 |Befehlszeile&lt;br /&gt;
 |'''Das''' Standard Synchronisationsprogramm von Linux. Sehr nützlich bei regelmäßigen (z.B. wöchentlichen) Snapshorts die jederzeit direkt verfügbar sind (kein Entpacken der Daten notwendig) durch Einsatz von Hardlinks. &lt;br /&gt;
 |-&lt;br /&gt;
 |tar&lt;br /&gt;
 |Befehlszeile&lt;br /&gt;
 |'''Das''' Standard Backupprogramm von Linux &lt;br /&gt;
 |}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kleine BackupScripte ===&lt;br /&gt;
&lt;br /&gt;
====  backupdate.sh ====&lt;br /&gt;
&lt;br /&gt;
Eingereicht von K4m1K4tz3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
# Version: 20070607&lt;br /&gt;
#&lt;br /&gt;
# Script zum sichern eines beliebigen Verzeichnisses mit rsync&lt;br /&gt;
# Es werden mehrere Ordner angelegt, mithilfe von Hardlinks,&lt;br /&gt;
# mit dem jeweils aktuellen Datum (backup_JahrMonatTag).&lt;br /&gt;
# Die ältesten Ordner werden gelöscht&lt;br /&gt;
#&lt;br /&gt;
# Dieses Skript kann durch einen Cron Job alle X Tage aufgerufen werden.&lt;br /&gt;
# Für weitere Infos siehe hier: http://www.newbie-net.de/anleitung_cron.html&lt;br /&gt;
# oder hier: http://www.selflinux.org/selflinux/html/cron.html&lt;br /&gt;
# Bsp. für ein Backup welches jeden Tag um 24 Uhr gestartet wird (nicht getestet!):&lt;br /&gt;
# 00 24 */1 * * User /Ordner/mit/Script/backup.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#--------------------------------Einstellungen----------------------------------&lt;br /&gt;
&lt;br /&gt;
# Wovon soll ein Backup gemacht werden?&lt;br /&gt;
SOURCE_LOCATION=/home/master/backuptest/original;&lt;br /&gt;
&lt;br /&gt;
# Wohin soll das Backup geschrieben werden?&lt;br /&gt;
BACKUP_LOCATION=/home/master/backuptest/backup;&lt;br /&gt;
&lt;br /&gt;
# Wie viele Backups sollen maximal existieren? Achtung: zu der Anzahl kommt noch das neu hinzugefügte Backup!&lt;br /&gt;
# Bsp: Wenn hier 3 eingetragen ist, sind höchstens 4 Ordner vorhanden.&lt;br /&gt;
BACKUPS_UNTIL_ERASE=3;&lt;br /&gt;
&lt;br /&gt;
#---------------------------------Programm--------------------------------------&lt;br /&gt;
&lt;br /&gt;
if ! test -d $BACKUP_LOCATION ; then&lt;br /&gt;
        echo &amp;quot;Backupverzeichnis $BACKUP_LOCATION existiert nicht&amp;quot;;&lt;br /&gt;
        exit 0;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
cd $BACKUP_LOCATION;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DATE=$(date +&amp;quot;%Y%m%d&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
NEWEST_BACKUP() {&lt;br /&gt;
        VAR_NEWEST_BACKUP=$(ls -d $BACKUP_LOCATION/backup_* | tail --lines=1) ;&lt;br /&gt;
return $? ; } ;&lt;br /&gt;
&lt;br /&gt;
OLDEST_BACKUP() {&lt;br /&gt;
        VAR_OLDEST_BACKUP=$(ls -rd $BACKUP_LOCATION/backup_* | tail --lines=1) ;&lt;br /&gt;
return $? ; } ;&lt;br /&gt;
&lt;br /&gt;
FILECOUNT() {&lt;br /&gt;
        VAR_FILECOUNT=$(ls -d $BACKUP_LOCATION/backup_* | wc -w) ;&lt;br /&gt;
return $? ; } ;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if test -d $BACKUP_LOCATION/backup_$DATE ; then&lt;br /&gt;
        echo &amp;quot;Ein aktuelles Backup existiert bereits&amp;quot;;&lt;br /&gt;
        exit 0;&lt;br /&gt;
fi;&lt;br /&gt;
&lt;br /&gt;
#älteste Ordner löschen, Anzahl wie viele Ordner vorhanden sein sollen bei BACKUPS_UNTIL_ERASE definieren!&lt;br /&gt;
FILECOUNT;&lt;br /&gt;
&lt;br /&gt;
while [ $VAR_FILECOUNT -gt $BACKUPS_UNTIL_ERASE ] ; do&lt;br /&gt;
        OLDEST_BACKUP;&lt;br /&gt;
        rm -rfv $VAR_OLDEST_BACKUP ;&lt;br /&gt;
        FILECOUNT;&lt;br /&gt;
done;&lt;br /&gt;
&lt;br /&gt;
#neues Backup erstellen:&lt;br /&gt;
NEWEST_BACKUP;&lt;br /&gt;
&lt;br /&gt;
rsync -arbuv --delete --progress --link-dest=$VAR_NEWEST_BACKUP $SOURCE_LOCATION $BACKUP_LOCATION/backup_$DATE/ ;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ihre Backupprogramme für die obige Liste haben empfohlen ===&lt;br /&gt;
# joka&lt;br /&gt;
# tompte&lt;br /&gt;
# lips&lt;br /&gt;
# ginka&lt;br /&gt;
# [[Benutzer:framp|framp]]&lt;br /&gt;
&lt;br /&gt;
=== Ihre Backupscripte haben beigesteuert ===&lt;br /&gt;
&lt;br /&gt;
# K4m1K4tz3&lt;/div&gt;</summary>
		<author><name>K4m1K4tz3</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Backupprogramme&amp;diff=17427</id>
		<title>Backupprogramme</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Backupprogramme&amp;diff=17427"/>
		<updated>2007-06-07T15:49:22Z</updated>

		<summary type="html">&lt;p&gt;K4m1K4tz3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die folgenden Tabellen sind das Ergebnis der Linux-Club Community, die in http://www.linux-club.de/ftopic81889-0-asc-0.html ihre bevorzugten Backupprogramme empfohlen haben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Liste von Linux Backupprogrammen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{| border=2&lt;br /&gt;
 |'''''Name'''''&lt;br /&gt;
 |'''''Typ'''''&lt;br /&gt;
 |'''''Abstract'''''&lt;br /&gt;
 |-&lt;br /&gt;
 | [[Liste von Backupprogrammen#240008.php] 240008.php]&lt;br /&gt;
 |Befehlszeile&lt;br /&gt;
 | # Script zum sichern eines beliebigen Verzeichnisses mit rsync&lt;br /&gt;
# Es werden mehrere Ordner angelegt, mithilfe von Hardlinks,&lt;br /&gt;
# mit dem jeweils aktuellen Datum (backup_JahrMonatTag).&lt;br /&gt;
# Die ältesten Ordner werden gelöscht&lt;br /&gt;
 |-&lt;br /&gt;
 |[http://backup2l.sourceforge.net backup2l]&lt;br /&gt;
 |Befehlszeile&lt;br /&gt;
 |Low-Maintenance Backup/Restore Tool - Tool für automatische, inkrementelle Backups nach dem Generationenprinzip. Einfache, aber flexible Konfiguration über Kontrolldatei in Shell-Syntax. Basiert auf Standard-Tools tar, gzip und find. Einfache &amp;quot;Treiber&amp;quot;-Schnittstelle (Shell-Funktion) für alternative Archivprogramme oder Zusatzfunktionen wie Splitten oder Verschlüsseln.&lt;br /&gt;
 |-&lt;br /&gt;
 |[http://clonezilla.sourceforge.net Clonezilla]&lt;br /&gt;
 |Befehlszeile&lt;br /&gt;
 |Clonezilla basiert auf DRBL, Partition Image, ntfsclone, und udpcast, und erlaubt massiv paralleles clonen von 40 plus Computern&lt;br /&gt;
 |-&lt;br /&gt;
 |[https://faracvs.cs.uni-magdeburg.de/projects/christsc-darbackup darbackup]&lt;br /&gt;
 |Befehlszeile&lt;br /&gt;
|&lt;br /&gt;
# Erzeugung von Referenz-Sicherungen, die ein maximales Alter nicht überschreiten&lt;br /&gt;
# Erzeugung von differenziellen Sicherungen, die ein maximales Alter nicht überschreiten&lt;br /&gt;
# Erzeugung neuer Referenz-Sicherungen, falls existierende Sicherungen zu alt sind&lt;br /&gt;
# Erzeugung neuer Referenz-Sicherungen, falls die Gesamtgröße der differenziellen Sicherungen einen Grenzwert überschreitet&lt;br /&gt;
# Transfer von erzeugten Sicherungen per SSH auf entfernte Rechner&lt;br /&gt;
# Verwendung von bdelta/xdelta zur Speicherung von ausschliesslich geänderten Daten zwischen zwei differentiellen Sicherungen&lt;br /&gt;
# Verwendung von Konfigurationsdateien für unterschiedliche Sicherungs-Quellen und -Ziele &lt;br /&gt;
 |-&lt;br /&gt;
 |[http://sourceforge.net/projects/g4l Ghost for Linux]&lt;br /&gt;
 |Befehlszeile&lt;br /&gt;
 |Ghost for Linux ist ein disk und partition imaging und cloning tool ähnlich wie Norton Ghost(c). Die erzeugten Images werden optional compressed und per ftp transferiert oder lokal abgelegt.&lt;br /&gt;
 |-&lt;br /&gt;
 |[http://packman.links2linux.de/package/grsync%20 grsync]&lt;br /&gt;
 |GUI&lt;br /&gt;
 |Graphisches Interface für rsync&lt;br /&gt;
 |-&lt;br /&gt;
 | [http://kbackup.sourceforge.net/ kbackup]&lt;br /&gt;
 |Befehlszeile/GUI&lt;br /&gt;
 | Erstellt ein tar-Verzeichnisse, der ausgewählten Ordner. Nicht sehr viele Einstellungsmöglichkeiten, aber für den privaten Gebrauch ist es ausreichend.&lt;br /&gt;
 |-&lt;br /&gt;
 |-&lt;br /&gt;
 | [http://krusader.sourceforge.net/ krusader]&lt;br /&gt;
 |GUI&lt;br /&gt;
 |Ein Feature von Krusader ist der Synchronizer, mit dem man Verzeichnisse komfortabel synchronisieren kann. Ein Verzeichnis kann dabei auch auf einem ftp-Server liegen.&lt;br /&gt;
&lt;br /&gt;
Der Synchronizer kann Verzeichnisse additiv zusammenführen, oder ein Zielverzeichnis auf den Stand eines Quellverzeichnisses bringen (inkl. Löschungen).&lt;br /&gt;
 |-&lt;br /&gt;
 |[http://mkcdrec.ota.be/ mkCDrec]&lt;br /&gt;
 |Befehlszeile&lt;br /&gt;
 |mkCDrec erzeugt ein bootable (El Torito) disaster recovery image (CDrec.iso), und schreibt Backups von einem Linux System auf derselben CD-ROM (oder CD-RW) wenn der Platz dazu reicht oder auf ein multi-volume CD-ROM set. Backups können auch auf einer lokalen Disk, NFS disk oder (remote) tape abgelegt werden.&lt;br /&gt;
 |-&lt;br /&gt;
 |[[rsync]]&lt;br /&gt;
 |Befehlszeile&lt;br /&gt;
 |'''Das''' Standard Synchronisationsprogramm von Linux. Sehr nützlich bei regelmäßigen (z.B. wöchentlichen) Snapshorts die jederzeit direkt verfügbar sind (kein Entpacken der Daten notwendig) durch Einsatz von Hardlinks. &lt;br /&gt;
 |-&lt;br /&gt;
 |tar&lt;br /&gt;
 |Befehlszeile&lt;br /&gt;
 |'''Das''' Standard Backupprogramm von Linux &lt;br /&gt;
 |}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kleine BackupScripte ===&lt;br /&gt;
&lt;br /&gt;
====  backupdate.sh ====&lt;br /&gt;
&lt;br /&gt;
Eingereicht von K4m1K4tz3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
# Version: 20070607&lt;br /&gt;
#&lt;br /&gt;
# Script zum sichern eines beliebigen Verzeichnisses mit rsync&lt;br /&gt;
# Es werden mehrere Ordner angelegt, mithilfe von Hardlinks,&lt;br /&gt;
# mit dem jeweils aktuellen Datum (backup_JahrMonatTag).&lt;br /&gt;
# Die ältesten Ordner werden gelöscht&lt;br /&gt;
#&lt;br /&gt;
# Dieses Skript kann durch einen Cron Job alle X Tage aufgerufen werden.&lt;br /&gt;
# Für weitere Infos siehe hier: http://www.newbie-net.de/anleitung_cron.html&lt;br /&gt;
# oder hier: http://www.selflinux.org/selflinux/html/cron.html&lt;br /&gt;
# Bsp. für ein Backup welches jeden Tag um 24 Uhr gestartet wird (nicht getestet!):&lt;br /&gt;
# 00 24 */1 * * User /Ordner/mit/Script/backup.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#--------------------------------Einstellungen----------------------------------&lt;br /&gt;
&lt;br /&gt;
# Wovon soll ein Backup gemacht werden?&lt;br /&gt;
SOURCE_LOCATION=/home/peter/*.pdf;&lt;br /&gt;
&lt;br /&gt;
# Wohin soll das Backup geschrieben werden?&lt;br /&gt;
BACKUP_LOCATION=/home/peter/backups;&lt;br /&gt;
&lt;br /&gt;
# Wie viele Backups sollen maximal existieren? Achtung: zu der Anzahl kommt noch das neu hinzugefügte Backup!&lt;br /&gt;
Bsp: Wenn hier 3 eingetragen ist, sind höchstens 4 Ordner vorhanden.&lt;br /&gt;
BACKUPS_UNTIL_ERASE=3;&lt;br /&gt;
&lt;br /&gt;
#---------------------------------Programm--------------------------------------&lt;br /&gt;
&lt;br /&gt;
if ! test -d $BACKUP_LOCATION ; then&lt;br /&gt;
        echo &amp;quot;Backupverzeichnis $BACKUP_LOCATION existiert nicht&amp;quot;;&lt;br /&gt;
        exit 0;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
cd $BACKUP_LOCATION;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DATE=$(date +&amp;quot;%Y%m%d%S&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
NEWEST_BACKUP() {&lt;br /&gt;
        VAR_NEWEST_BACKUP=$(ls -d $BACKUP_LOCATION/backup_* | tail --lines=1) ;&lt;br /&gt;
return $? ; } ;&lt;br /&gt;
&lt;br /&gt;
OLDEST_BACKUP() {&lt;br /&gt;
        VAR_OLDEST_BACKUP=$(ls -rd $BACKUP_LOCATION/backup_* | tail --lines=1) ;&lt;br /&gt;
return $? ; } ;&lt;br /&gt;
&lt;br /&gt;
FILECOUNT() {&lt;br /&gt;
        VAR_FILECOUNT=$(ls -d $BACKUP_LOCATION/backup_* | wc -w) ;&lt;br /&gt;
return $? ; } ;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if test -d $BACKUP_LOCATION/backup_$DATE ; then&lt;br /&gt;
        echo &amp;quot;Ein aktuelles Backup existiert bereits&amp;quot;;&lt;br /&gt;
        exit 0;&lt;br /&gt;
fi;&lt;br /&gt;
&lt;br /&gt;
#älteste Ordner löschen, Anzahl wie viele Ordner vorhanden sein sollen bei BACKUPS_UNTIL_ERASE definieren!&lt;br /&gt;
FILECOUNT;&lt;br /&gt;
&lt;br /&gt;
while [ $VAR_FILECOUNT -gt $BACKUPS_UNTIL_ERASE ] ; do&lt;br /&gt;
        OLDEST_BACKUP;&lt;br /&gt;
        rm -rfv $VAR_OLDEST_BACKUP ;&lt;br /&gt;
        FILECOUNT;&lt;br /&gt;
done;&lt;br /&gt;
&lt;br /&gt;
#neues Backup erstellen:&lt;br /&gt;
NEWEST_BACKUP;&lt;br /&gt;
&lt;br /&gt;
rsync -arbuv --delete --progress --link-dest=$VAR_NEWEST_BACKUP $SOURCE_LOCATION  $BACKUP_LOCATION/backup_$DATE/ ;                      &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ihre Backupprogramme für die obige Liste haben empfohlen ===&lt;br /&gt;
# joka&lt;br /&gt;
# tompte&lt;br /&gt;
# lips&lt;br /&gt;
# ginka&lt;br /&gt;
# [[Benutzer:framp|framp]]&lt;br /&gt;
&lt;br /&gt;
=== Ihre Backupscripte haben beigesteuert ===&lt;br /&gt;
&lt;br /&gt;
# K4m1K4tz3&lt;/div&gt;</summary>
		<author><name>K4m1K4tz3</name></author>
		
	</entry>
</feed>