<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>controlc.de &#187; backup</title>
	<atom:link href="http://controlc.de/tag/backup/feed/" rel="self" type="application/rss+xml" />
	<link>http://controlc.de</link>
	<description>mehr als nur ein Notizblock</description>
	<lastBuildDate>Mon, 16 Apr 2012 12:43:35 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>iPhone &#124; Einzelne Daten aus dem Backup zurückspielen</title>
		<link>http://controlc.de/2010/08/26/iphone-einzelne-daten-aus-dem-backup-zuruckspielen/</link>
		<comments>http://controlc.de/2010/08/26/iphone-einzelne-daten-aus-dem-backup-zuruckspielen/#comments</comments>
		<pubDate>Thu, 26 Aug 2010 16:13:38 +0000</pubDate>
		<dc:creator>controlc.de</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[iOS 4]]></category>
		<category><![CDATA[jailbreak]]></category>
		<category><![CDATA[OpenSSH]]></category>
		<category><![CDATA[restore]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://controlc.de/?p=1838</guid>
		<description><![CDATA[Der ultimative Tipp bei Geschwindigkeitsproblemen des iPhones ist immer das »auf Werkseinstellungen zurückstellen« — besonders bei neuen Major-Releases von iOS. Damit gehen leider auch immer alle Daten verloren. Die normalen Sachen wie Kalender, Adressen und Co. kann man wieder mit iTunes synchronisieren, aber was ist mit den SMS, der Anrufliste usw.? Um diese Daten wieder [...]]]></description>
			<content:encoded><![CDATA[	<p style="text-align: center;"><a href="http://controlc.de/wp-content/uploads/2010/08/snail-iphone.png" class="floatbox" rev="group:1838 caption:`snail-iphone`"><img class="aligncenter size-large wp-image-1847" title="snail-iphone" src="http://controlc.de/wp-content/uploads/2010/08/snail-iphone-1024x602.png" alt="" width="491" height="289" /></a></p>
	<p>Der ultimative Tipp bei Geschwindigkeitsproblemen des iPhones ist immer das »<a href="http://www.macuser.de/forum/f122/installation-i-os4-534224/index3.html#post6181874">auf Werkseinstellungen zurückstellen</a>« — besonders bei neuen Major-Releases von iOS. Damit gehen leider auch immer alle Daten verloren. Die normalen Sachen wie Kalender, Adressen und Co. kann man wieder mit <em>iTunes</em> synchronisieren, aber was ist mit den SMS, der Anrufliste usw.?</p>
	<p>Um diese Daten wieder einzuspielen muss folgendes beachtet werden:</p>
	<ol>
	<li>Ohne Jailbreak geht gar nix.</li>
	<li>Backups werden von <em>iTunes</em> lokal überschrieben, wenn man nach dem Wiederherstellen auf das Einspielen des Backups verzichtet -  also den Backup-Ordner unter <em>/Users/BENUTZERNAME/Library/Application Support/MobileSync</em> immer sichern.</li>
	<li>Man braucht Geduld.</li>
	</ol>
	<p><span id="more-1838"></span>Zuerst schauen wir uns mal den Backup-Ordner an</p>
	<p><a href="http://controlc.de/wp-content/uploads/2010/08/iPhone-backup-folder.png" class="floatbox" rev="group:1838 caption:`iPhone backup folder`"><img class="aligncenter size-medium wp-image-1840" title="iPhone backup folder" src="http://controlc.de/wp-content/uploads/2010/08/iPhone-backup-folder-300x237.png" alt="" width="300" height="237" /></a>In dem Ordner Backup liegt also (mindestens) ein Ordner mit einer kryptischen Zahlen-/Buchstabenkombination als Namen. Diese Bezeichnung symbolisiert das Gerät. Innerhalb dieses Ordners liegen nun ein Haufen ebenfalls kryptisch bezeichneter Dateien. Es gibt zwar im Netz einige Zordnungen von Bezeichnungen zu Funktionen zu finden, aber ich möchte lieber einen anderen Weg aufzeigen. Dazu nutzen wir das Programm <a href="http://supercrazyawesome.com/">iPhone / iPod Touch Backup Extractor</a>, welches uns mit der sehr aufgeräumten Oberfläche begrüßt.</p>
	<p><a href="http://controlc.de/wp-content/uploads/2010/08/iPhone-Backup-Extractor.png" class="floatbox" rev="group:1838 caption:`iPhone Backup Extractor`"><img class="aligncenter size-medium wp-image-1841" title="iPhone Backup Extractor" src="http://controlc.de/wp-content/uploads/2010/08/iPhone-Backup-Extractor-300x300.png" alt="" width="300" height="300" /></a>Nachdem man auf den Button »Read Backups« gedrückt hat, sieht man eine Auswahlbox mit den vorhandenen Backups (in der Regel nur eins, in meinem Fall ist noch ein iPod zu sehen).</p>
	<p><a href="http://controlc.de/wp-content/uploads/2010/08/iPhone-Backup-Extractor-Auswahl-des-Backups.png" class="floatbox" rev="group:1838 caption:`iPhone Backup Extractor - Auswahl des Backups`"><img class="aligncenter size-medium wp-image-1842" title="iPhone Backup Extractor - Auswahl des Backups" src="http://controlc.de/wp-content/uploads/2010/08/iPhone-Backup-Extractor-Auswahl-des-Backups-300x224.png" alt="" width="300" height="224" /></a>Und hier erkennt man schon, das man den richtigen Backup-Ordner an die richtige Stelle kopiert haben muss, um auf das gewünscht Backup zugreifen zu können. Also vorher am besten den Ordner <em>/Users/BENUTZERNAME/Library/Application Support/MobileSync</em> sichern und darin den entsprechenden Ordner mit den alten, auszulesenden Backupdaten ersetzen.</p>
	<p>Nachdem man die Backupdaten eingelesen wurden, kann man nun die zu extrahierenden Daten auswählen.</p>
	<p><a href="http://controlc.de/wp-content/uploads/2010/08/iPhone-Backup-Extractor-Selektion-iOS-files.png" class="floatbox" rev="group:1838 caption:`iPhone Backup Extractor - Selektion iOS files`"><img class="aligncenter size-medium wp-image-1844" title="iPhone Backup Extractor - Selektion iOS files" src="http://controlc.de/wp-content/uploads/2010/08/iPhone-Backup-Extractor-Selektion-iOS-files-300x182.png" alt="" width="300" height="182" /></a>Für die iOS-internen Datenbanken (hatte ich schon gesagt, das die Daten wie SMS und Anruferliste in iOS in kleine Datenbanken geschrieben werden?) wählen wir ganz unten die <em>iOS Files</em> aus und bestätigen die Auswahl mit »Extract«. Jetzt werden alle gewünschten Daten ausgelesen und in einen gewünschten Ordner extrahiert.</p>
	<p>Wenn wir uns den Ordner anschauen, dann sehen wir folgendes</p>
	<p><a href="http://controlc.de/wp-content/uploads/2010/08/extracted-ios-files.png" class="floatbox" rev="group:1838 caption:`extracted ios files`"><img class="aligncenter size-medium wp-image-1845" title="extracted ios files" src="http://controlc.de/wp-content/uploads/2010/08/extracted-ios-files-300x214.png" alt="" width="300" height="214" /></a>Die für uns relevanten Daten liegen in den Unterordnern von <em>Library</em>.</p>
	<p>Jetzt kommen wir zu dem Teil, wie die Daten zurück aufs iPhone gelangen. Dazu benötigen wir erst einmal Jailbreak, da uns Apple verbietet nativ aufs iPhone zu schauen. Wie man ein iPhone ausbrechen läßt erklären inzwischen genug Seiten — die benötigte Software erhält man beim <a href="http://blog.iphone-dev.org/">iphone-dev-Team</a>.</p>
	<p>Der für uns relevante Teil ist nach dem Jailbreak das Installieren von OpenSSH auf dem iPhone — nur so können wir Daten vom Mac zum iPhone übertragen. Dazu öffnen wir auf dem iPhone<em> <a href="http://cydia.saurik.com/">Cydia</a></em> und befolgen die <a href="http://cydia.saurik.com/openssh.html">Anweisungen</a></p>
	<p style="text-align: left;"><a href="http://controlc.de/wp-content/uploads/2010/08/cydia-openssh-instructions.png" class="floatbox" rev="group:1838 caption:`cydia openssh instructions`"><img class="aligncenter size-full wp-image-1851" title="cydia openssh instructions" src="http://controlc.de/wp-content/uploads/2010/08/cydia-openssh-instructions.png" alt="" width="223" height="541" /></a><br />
Ich kann nur dringend dazu raten sofort anschließend das <a href="http://cydia.saurik.com/password.html">root-Passwort zu wechseln</a>. Dazu nutze ich <em><a href="http://iterm.sourceforge.net/">iTerm</a></em>, andere mögen mit Apples <em>Terminal</em> auch zufrieden sein — das ist reine Geschmackssache.</p>
	<p style="text-align: left;">Jetzt haben wir endlich Zugriff auf die Dateiebene des iPhones und können uns umschauen. Die für uns relevanten Daten liegen unter <em>/private/var/mobile/Library</em> in den jeweiligen Unterordnern — die Ordner heissen genau so, wie wir sie aus dem iPhone Backup extrahiert haben. Nun können wir die Dateien einfach austauschen, sprich vom Mac aufs iPhone kopieren. Dazu kann man das Kommandozeilen-Tool <em>scp</em> oder aber<em> <a href="http://cyberduck.ch/">Cyberduck</a></em> bemühen. Ich würde zur Sicherheit zum Schluss für die Dateien noch die Besitzer mit</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">chmod</span> mobile:mobile <span style="color: #000000; font-weight: bold;">*</span></pre></div></div>

	<p>geradebiegen und das iPhone einmal neu starten.</p>
	<p>Jetzt sollten die gewünschten Daten wieder alle da sein.</p>
	<p><strong>Habt Ihr auch die Erfahrung gemacht, das ein zurückgesetztes iPhone schneller ist als ein Upgrade? Braucht Ihr solch eine Möglichkeit des Restores oder sind Euch die damit verbundenen Daten egal?</strong>
</p>
]]></content:encoded>
			<wfw:commentRss>http://controlc.de/2010/08/26/iphone-einzelne-daten-aus-dem-backup-zuruckspielen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>bash &#124; Backups mit tar</title>
		<link>http://controlc.de/2009/11/22/bash-backups-mit-tar/</link>
		<comments>http://controlc.de/2009/11/22/bash-backups-mit-tar/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 11:40:58 +0000</pubDate>
		<dc:creator>controlc.de</dc:creator>
				<category><![CDATA[allgemeine IT]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[command line]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[tar]]></category>

		<guid isPermaLink="false">http://controlc.de/?p=1041</guid>
		<description><![CDATA[In einem älteren Artikel habe ich mich schon mal damit beschäftigt, wie man in *nix-basierten Betriebssystemen leicht Backups anlegen kann. Da der Bedarf bei mir wieder mal akuter wurde, haber ich mich wieder mal damit beschäftigt und möchte hier erklären, wie man was machen kann. Backup von bestimmten Dateien Häufiger möchte man, wenn man mal [...]]]></description>
			<content:encoded><![CDATA[	<p><a href="http://controlc.de/wp-content/uploads/2009/11/Bash.png" class="floatbox" rev="group:1041 caption:`Bash`"><img class="aligncenter size-medium wp-image-1063" title="Bash" src="http://controlc.de/wp-content/uploads/2009/11/Bash-300x232.png" alt="Bash" width="300" height="232" /></a>In einem <a href="http://controlc.de/2009/05/20/bash-schnelles-backup-anlegen/">älteren Artikel</a> habe ich mich schon mal damit beschäftigt, wie man in *nix-basierten Betriebssystemen leicht Backups anlegen kann. Da der Bedarf bei mir wieder mal akuter wurde, haber ich mich wieder mal damit beschäftigt und möchte hier erklären, wie man was machen kann.</p>
	<h4><span id="more-1041"></span>Backup von bestimmten Dateien</h4>
	<p>Häufiger möchte man, wenn man mal schnell etwas in einer Config-Datei etwas ändert, davon fix ein Backup anlegen. Klassisch habe ich das meist schnell mit</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">cp</span> DATEI.conf DATEI.conf.orig</pre></div></div>

	<p>gelöst. Was aber passiert, wenn man dann später nochmal was ändern will respektive ein neues Backup angelegt werden soll?! Wie man dieses Problem erschlägt, habe ich schon mal in <a href="http://controlc.de/2009/05/20/bash-schnelles-backup-anlegen/">diesem Artikel</a> erklärt — das war aber nur ein Schnellschuß. Das Problem dabei ist nämlich, das man ja jeweils die alten Backups nochmal mitsichert und dadurch die Backups immer größer werden. Dies kann man durch einen Exclude-Parameter von tar auschließen. Der Befehl um in einem Verzeichnis alle Dateien zu sichern lautet also</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">tar</span> <span style="color: #660033;">-cz</span> <span style="color: #660033;">--no-recursion</span> <span style="color: #660033;">--exclude</span>=backup-<span style="color: #000000; font-weight: bold;">*</span>.tar.gz <span style="color: #660033;">-f</span> backup-$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">date</span> +<span style="color: #000000; font-weight: bold;">%</span>F-<span style="color: #000000; font-weight: bold;">%</span>H-<span style="color: #000000; font-weight: bold;">%</span>M<span style="color: #7a0874; font-weight: bold;">&#41;</span>.tar.gz <span style="color: #000000; font-weight: bold;">*</span></pre></div></div>

	<h4>Backup von ganzen Pfaden inkl. der Unterverzeichnisse</h4>
	<p>In einigen Fällen will man nicht nur die Dateien in einem Verzeichnis sichern sondern lieber gleich den Inhalt gesamte Verzeichnis inklusive aller Unterverzeichnisse</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">tar</span> <span style="color: #660033;">-cz</span> <span style="color: #660033;">--exclude</span>=backup-<span style="color: #000000; font-weight: bold;">*</span>.tar.gz <span style="color: #660033;">-f</span> backup-$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">date</span> +<span style="color: #000000; font-weight: bold;">%</span>F-<span style="color: #000000; font-weight: bold;">%</span>H-<span style="color: #000000; font-weight: bold;">%</span>M<span style="color: #7a0874; font-weight: bold;">&#41;</span>.tar.gz .</pre></div></div>

	<h4>Backup von Dateien bzw. Pfaden, die im gesamten System verteilt sind</h4>
	<p>Und schließlich hat man den Fall, das man alle wichtigen Dateien eines Systems sichern will, die aber über das gesamte System verteilt sind. Dies erreicht man mit einer Include-Datei</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">tar</span> cvzf <span style="color: #000000; font-weight: bold;">/</span>backup-$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">date</span> +<span style="color: #000000; font-weight: bold;">%</span>F-<span style="color: #000000; font-weight: bold;">%</span>T<span style="color: #7a0874; font-weight: bold;">&#41;</span>.tar.gz <span style="color: #660033;">-T</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>backup-include-dir.conf</pre></div></div>

	<p>wobei man in die Datei <em>/etc/backup-include-dir.conf</em> alle Pfade bzw. alle Dateien reinschreibt, die gesichert werden sollen. Wichtig ist dabei nur: Pro Datei/Pfad jeweils eine Zeile.</p>
	<p>Und denkt daran: Solche Befehlszeilen eignen sich wunderbar dazu als alias definiert zu werden, damit man schnell drauf zugreifen kann, wenn man es mal braucht.
</p>
]]></content:encoded>
			<wfw:commentRss>http://controlc.de/2009/11/22/bash-backups-mit-tar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mac &#124; VMware Fusion über die Kommandozeile steuern</title>
		<link>http://controlc.de/2009/06/11/mac-vmware-fusion-uber-die-kommandozeile-steuern/</link>
		<comments>http://controlc.de/2009/06/11/mac-vmware-fusion-uber-die-kommandozeile-steuern/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 09:48:04 +0000</pubDate>
		<dc:creator>controlc.de</dc:creator>
				<category><![CDATA[debian]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[command line]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[vmrun]]></category>
		<category><![CDATA[vmware fusion]]></category>

		<guid isPermaLink="false">http://controlc.de/?p=621</guid>
		<description><![CDATA[Wie schon hier geschrieben, nutze ich Windows in einer Virtuellen Maschine.  Mit VMware Fusion 2.0 unterstützt auch die Mac-Variante des Desktop-Virtualisierers vmrun — einer Möglichkeit vom Hostsystem per Kommandozeile das Gastsystem zu steuern. Ich will in diesem Beitrag kurz aufzeigen, welche Möglichkeiten sich ergeben — wer es genauer wissen möchte kann bei VMware nachschauen. Zuerst [...]]]></description>
			<content:encoded><![CDATA[	<p>Wie schon <a href="http://controlc.de/2009/05/08/einrichtung-eines-backups/">hier</a> geschrieben, nutze ich Windows in einer Virtuellen Maschine.  Mit <a href="http://www.vmware.com/products/fusion/">VMware Fusion 2.0</a> unterstützt auch die Mac-Variante des Desktop-Virtualisierers <em>vmrun</em> — einer Möglichkeit vom Hostsystem per Kommandozeile das Gastsystem zu steuern. Ich will in diesem Beitrag kurz aufzeigen, welche Möglichkeiten sich ergeben — wer es genauer wissen möchte kann bei <a href="http://www.vmware.com/pdf/vix162_vmrun_command.pdf">VMware</a> nachschauen.</p>
	<p><span id="more-621"></span>Zuerst aber muß man wissen, wo man den Befehl <em>vmrun</em> finden kann — in <code>/Library/Application Support/VMware Fusion/</code></p>
	<p>Um den Befehl global ausführen zu können muß man den Pfad zur PATH-Variablen hinzufügen</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">PATH</span>=<span style="color: #ff0000;">&quot;<span style="color: #007800;">$PATH</span>:/Library/Application Support/VMware Fusion&quot;</span></pre></div></div>

	<h3>Allgemeines</h3>
	<p>Zuerst man <em>vmrun</em> sagen mit welchem Typ er sich verbinden soll.</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">vmrun <span style="color: #660033;">-T</span> fusion</pre></div></div>

	<p>Als nächstes kommt die Authentifizierung am Gastsystem</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">vmrun <span style="color: #660033;">-T</span> fusion <span style="color: #660033;">-gu</span> USERNAME <span style="color: #660033;">-gp</span> USERPW</pre></div></div>

	<p>Nun kommen wir zu den einzelnen Kommandos, welche man absetzen kann. Als Parameter fast jeden Kommandos muß man das VMX-File der entsprechenden virtuellen Maschine angeben. Bei VMware Fusion befinden sich diese im Unterordner in <code>/Users/USERNAME/Documents/Virtual\ Machines.localized/</code> Um sich alle bekannten VMs anzeigen zu lassen nutzt man am besten</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">vmrun <span style="color: #660033;">-T</span> fusion list</pre></div></div>

	<h3>Ausführen von Programmen im Gastsystem</h3>
	<p>Am Interessantesten für mich ist die Möglichkeit Befehle direkt in der virtuellen Maschine absetzen zu können. Dafür gibt es das Kommando <em>runProgramInGuest</em>. Der komplette Syntax lautet:</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">vmrun <span style="color: #660033;">-T</span> fusion <span style="color: #660033;">-gu</span> USERNAME <span style="color: #660033;">-gp</span> USERPW runProgramInGuest ~<span style="color: #000000; font-weight: bold;">/</span>Documents<span style="color: #000000; font-weight: bold;">/</span>Virtual\ Machines.localized<span style="color: #000000; font-weight: bold;">/</span>XP<span style="color: #000000; font-weight: bold;">/</span>xp.vmx BEFEHL</pre></div></div>

	<p>Sollte die Befehlszeile etwas länger sein und mehrere Parameter enthalten, so muß der Befehl in Hochkommas gesetzt werden. Enthält wiederrum ein Parameter auch schon ein Hochkomma, so muß dem gesamten Befehl ebenso ein weiteres Hochkomma gegeben werden. Faustregel: Für jedes Hochkomma-Paar im Befehl selber muß dem gesamten Parameter selber ein extra Hochkomma hinzugegeben werden.</p>
	<p>Um, wie in <a href="http://controlc.de/2009/05/24/debian-postfix-und-relay_recipient_maps-vom-exchange-i/">diesem Beitrag</a> geschrieben, dem Active Directory meines Windows-Servers alle zur Zeit gültigen EMail-Adressen zu entlocken nutze ich folgende Befehlszeile</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">.<span style="color: #000000; font-weight: bold;">/</span>vmrun <span style="color: #660033;">-T</span> fusion <span style="color: #660033;">-gu</span> ADMIN<span style="color: #000000; font-weight: bold;">@</span>DOMAIN.DE <span style="color: #660033;">-gp</span> GANZGEHEIM runProgramInGuest ~<span style="color: #000000; font-weight: bold;">/</span>Documents<span style="color: #000000; font-weight: bold;">/</span>Virtual\ Machines.localized<span style="color: #000000; font-weight: bold;">/</span>Windows\ Server\ <span style="color: #000000;">2003</span>\ Small\ Business.vmwarevm<span style="color: #000000; font-weight: bold;">/</span>Windows\ Server\ <span style="color: #000000;">2003</span>\ Small\ Business.vmx <span style="color: #ff0000;">&quot;&quot;</span>ldifde.exe <span style="color: #660033;">-m</span> <span style="color: #660033;">-n</span> <span style="color: #660033;">-g</span> <span style="color: #660033;">-f</span> <span style="color: #ff0000;">&quot;C:\Mailgw<span style="color: #000099; font-weight: bold;">\r</span>ecipient.txt&quot;</span> <span style="color: #660033;">-r</span> <span style="color: #ff0000;">&quot;(mailnickname=*)&quot;</span> <span style="color: #660033;">-l</span> proxyAddresses<span style="color: #ff0000;">&quot;&quot;</span></pre></div></div>

	<p>Wenn ich gleich den Upload noch hinzufügen will, lege ich in den Pfad c:\mailgw auf dem Windows-Server eine Batch-Datei, die mir nach und nach alles ausführt (also Extract der Emailadressen und Kopieren per pscp).</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">.<span style="color: #000000; font-weight: bold;">/</span>vmrun <span style="color: #660033;">-T</span> fusion <span style="color: #660033;">-gu</span> ADMIN<span style="color: #000000; font-weight: bold;">@</span>DOMAIN.DE <span style="color: #660033;">-gp</span> GANZGEHEIM runProgramInGuest ~<span style="color: #000000; font-weight: bold;">/</span>Documents<span style="color: #000000; font-weight: bold;">/</span>Virtual\ Machines.localized<span style="color: #000000; font-weight: bold;">/</span>Windows\ Server\ <span style="color: #000000;">2003</span>\ Small\ Business.vmwarevm<span style="color: #000000; font-weight: bold;">/</span>Windows\ Server\ <span style="color: #000000;">2003</span>\ Small\ Business.vmx <span style="color: #ff0000;">&quot;c:\mailgw\userextract.cmd&quot;</span></pre></div></div>

	<h3>Backup einer virtuellen Maschine</h3>
	<p>Um meinen virtuelle Windows-Server zu sichern nutze ich zur Zeit <a href="http://www.acronis.de/homecomputing/products/trueimage/">Acronis Trueimage</a> innerhalb der VM und sichere auf eine externe Platte, welche per Shared Folder in die VM eingebunden ist. Das ist natürlich »von hinten durch die Brust ins Auge«, war aber auf die Schnelle das Naheliegendste. Wie in <strong><a class="row-title" title="&quot;mac | Einrichtung eines Backups&quot; bearbeiten" href="post.php?action=edit&amp;post=213">mac | Einrichtung eines Backups</a></strong> geschrieben ist es ein Wunsch von mir das Backup direkt aus OSX heraus zu starten. Dies könnte ich jetzt mit dem Absetzen eines Befehls erreichen (ob Trueimage das untersützt wäre noch zu recherchieren) oder aber ich erstelle ein Snapshot per <em>vmrun</em></p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">.<span style="color: #000000; font-weight: bold;">/</span>vmrun <span style="color: #660033;">-T</span> fusion snapshot ~<span style="color: #000000; font-weight: bold;">/</span>Documents<span style="color: #000000; font-weight: bold;">/</span>Virtual\ Machines.localized<span style="color: #000000; font-weight: bold;">/</span>Windows\ Server\ <span style="color: #000000;">2003</span>\ Small\ Business.vmwarevm<span style="color: #000000; font-weight: bold;">/</span>Windows\ Server\ <span style="color: #000000;">2003</span>\ Small\ Business.vmx MySnapshot</pre></div></div>

	<p>Zu Testen wäre jetzt, wie groß die Snapshots sind und ob die VM während der Erstellung erreichbar ist oder aber gestoppt bzw. heruntergefahren werden muß.</p>
	<p>Nutzt Ihr <em>vmrun</em> und wenn ja, wie?
</p>
]]></content:encoded>
			<wfw:commentRss>http://controlc.de/2009/06/11/mac-vmware-fusion-uber-die-kommandozeile-steuern/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>bash &#124; schnelles Backup anlegen</title>
		<link>http://controlc.de/2009/05/20/bash-schnelles-backup-anlegen/</link>
		<comments>http://controlc.de/2009/05/20/bash-schnelles-backup-anlegen/#comments</comments>
		<pubDate>Wed, 20 May 2009 09:27:35 +0000</pubDate>
		<dc:creator>controlc.de</dc:creator>
				<category><![CDATA[allgemeine IT]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[tar]]></category>

		<guid isPermaLink="false">http://controlc.de/?p=420</guid>
		<description><![CDATA[Bei Jann habe ich Folgendes unter dem Stichwort In der Shell schnell mal alle Dateien im Verzeichnis nach *.bak sichern gelesen: Kurznotiz, gilt für Mac / Linux / Unix / (bei Windows hilft nur “format c:” ) Oft muss ich in einem Ordner schnell mal alle Dateien sichern als Backup da ich sie im nächsten [...]]]></description>
			<content:encoded><![CDATA[	<p>Bei <a href="http://adminday.de">Jann</a> habe ich Folgendes unter dem Stichwort <a href="http://adminday.de/tutorials-und-tipps/in-der-shell-schnell-mal-alle-dateien-im-verzeichnis-nach-bak-sichern/">In der Shell schnell mal alle Dateien im Verzeichnis nach *.bak sichern</a> gelesen:</p>
	<blockquote><p>Kurznotiz, gilt für Mac / Linux / Unix / (bei Windows hilft nur “format c:” <img class="wp-smiley" src="http://adminday.de/wp-includes/images/smilies/icon_wink.gif" alt=";)" /> )<br />
Oft muss ich in einem Ordner schnell mal alle Dateien sichern als Backup da ich sie im nächsten Moment überschreibe.  Um nicht den ganzen übergeordneten Ordner gleich komplett sichern zu müssen sondern nur die Dateien im aktuellen Ordner <span style="text-decoration: underline;">ohne Unterverzeichnisse</span> zu sichern habe ich folgenden befehl:<br />
for i in *.*; do cp $i $i.bak ;done<br />
Alle Dateien im Ordner werden dann von xyz.txt nach xyz.txt.bak kopiert, wer anstelle des kopieren die Daten verschieben will ersetzt im script einfach “cp” mit “mv”  Wer in einem Verzeichnis nur bestimmte Dateitypen z.B. *.html sichern mag macht dies dann so:<br />
for i in *.html; do cp $i $i.bak ; done<br />
somit werden an alle *.html Dateien im Ordner nach *.html.bak gesichert  Das gleiche geht mit jedem beliebigen Dateityp ^^</p></blockquote>
	<p>Lange habe ich drüber nachgedacht, da ich den Ansatz etwas zu kompliziert finde und da ich gerade in dem Buch <a href="http://www.oreilly.de/catalog/bash3ger/index.html">Einführung in die BASH</a> lese und mal schauen wollte, was davon bei mir hängen geblieben ist, habe ich folgendes ausprobiert:</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">tar</span> <span style="color: #660033;">-cz</span> <span style="color: #660033;">--no-recursion</span> <span style="color: #660033;">-f</span> backup-$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">date</span> +<span style="color: #000000; font-weight: bold;">%</span>F-<span style="color: #000000; font-weight: bold;">%</span>H-<span style="color: #000000; font-weight: bold;">%</span>M<span style="color: #7a0874; font-weight: bold;">&#41;</span>.tar.gz <span style="color: #000000; font-weight: bold;">*</span></pre></div></div>

	<p>Das Ganze als Alias definiert mit Übergabe der Dateiextension sieht dann so aus:</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">alias</span> <span style="color: #007800;">archive</span>=<span style="color: #ff0000;">'tar -cz --no-recursion -f backup-$(date +%F-%H-%M).tar.gz $1'</span></pre></div></div>

	<p>Damit kann man später schnell mit</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">archive <span style="color: #000000; font-weight: bold;">*</span>.html</pre></div></div>

	<p>schnell alle HTML-Files eines Verzeichnisses sichern und weiß gleich von wann die Sicherung ist.
</p>
]]></content:encoded>
			<wfw:commentRss>http://controlc.de/2009/05/20/bash-schnelles-backup-anlegen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>mac &#124; launchd näher beleuchtet</title>
		<link>http://controlc.de/2009/05/14/mac-launchd-naher-beleuchtet/</link>
		<comments>http://controlc.de/2009/05/14/mac-launchd-naher-beleuchtet/#comments</comments>
		<pubDate>Wed, 13 May 2009 22:16:07 +0000</pubDate>
		<dc:creator>controlc.de</dc:creator>
				<category><![CDATA[apple]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[launchd]]></category>
		<category><![CDATA[lingon]]></category>
		<category><![CDATA[macosx]]></category>

		<guid isPermaLink="false">http://controlc.de/?p=359</guid>
		<description><![CDATA[In meinem Backup-Beitrag, welchen ich ursprünglich für macfidelity geschrieben habe, bin ich auf das All-in-one-Paket von Apple namens launchd eingegangen. Da wider Erwarten, das Mounten der Platten auf meinem iMac nicht geklappt hat, habe ich mich auf die Suche nach dem Fehler gemacht. Zuerst dachte ich, das ich vielleicht das plist-File, welches man pro Dienst [...]]]></description>
			<content:encoded><![CDATA[	<p>In meinem <a href="http://controlc.de/2009/05/08/einrichtung-eines-backups/">Backup-Beitrag</a>, welchen ich ursprünglich für <em><a href="http://macfidelity.de/2009/04/30/mac-einrichtung-eines-backups/">macfidelity</a></em> geschrieben habe, bin ich auf das All-in-one-Paket von Apple namens launchd eingegangen. Da wider Erwarten, das Mounten der Platten auf meinem iMac nicht geklappt hat, habe ich mich auf die Suche nach dem Fehler gemacht. Zuerst dachte ich, das ich vielleicht das plist-File, welches man pro Dienst erstellen muß, noch einmal bearbeitet und dann die Warnung von <a href="http://tuppis.com/lingon/">Lingon</a> übersehen habe</p>
	<p><a href="http://controlc.de/wp-content/uploads/2009/05/lingon-warning.png" class="floatbox" rev="group:359"></a><a href="http://controlc.de/wp-content/uploads/2009/05/lingon-warning.png" class="floatbox" rev="group:359 caption:`lingon-warning`"><img class="alignnone size-medium wp-image-360" title="lingon-warning" src="http://controlc.de/wp-content/uploads/2009/05/lingon-warning-300x141.png" alt="lingon-warning" width="300" height="141" /></a><br />
<span id="more-359"></span><br />
Also fix den iMac neugestartet und ins Logfile geschaut und dabei folgendes gefunden:</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">com.apple.launchctl.System<span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">2</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>: launchctl: Dubious ownership on <span style="color: #c20cb9; font-weight: bold;">file</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>skipping<span style="color: #7a0874; font-weight: bold;">&#41;</span>: <span style="color: #000000; font-weight: bold;">/</span>Library<span style="color: #000000; font-weight: bold;">/</span>LaunchDaemons<span style="color: #000000; font-weight: bold;">/</span>de.something.hddmount.plist
com.apple.launchctl.System<span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">2</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>: launchctl: Dubious ownership on <span style="color: #c20cb9; font-weight: bold;">file</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>skipping<span style="color: #7a0874; font-weight: bold;">&#41;</span>: <span style="color: #000000; font-weight: bold;">/</span>Library<span style="color: #000000; font-weight: bold;">/</span>LaunchDaemons<span style="color: #000000; font-weight: bold;">/</span>de.something.hddunmount.plist</pre></div></div>

	<p>Was hatte ich gemacht? Ich hatte auf meinem MBP mit Lingon rumgespielt und dabei die beiden plists erstellt. Diese hatte ich, der Einfachheit halber, einfach auf den iMac in den Ordner /Library/LaunchDaemons kopiert und gehofft es wäre alles ok. Ein kurzes »ls –l /Library/LaunchDaemons« brachte die Bestätigung: Die beiden Scripte hatten nicht die richtige Berechtigung.</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">chown</span> root:wheel <span style="color: #000000; font-weight: bold;">/</span>Library<span style="color: #000000; font-weight: bold;">/</span>LaunchDaemons<span style="color: #000000; font-weight: bold;">/</span>de.something.hdd<span style="color: #000000; font-weight: bold;">*</span></pre></div></div>

	<p>und schon war alles in Ordnung. Nun hatte ich natürlich diesmal nicht die Warnung von Lingon vergessen und wollte schon den iMac erneut starten. Aber es muß doch eine Möglichkeit geben, den launchd davon zu überzeugen die neuen plists zu aktivieren. Nach ein langen Suche wußte ich zumindest soviel: launchd selber kann man nicht neustarten, da es direkt nach dem Bootvorgang selber die Dienste erst startet. Schaut man in die Prozessliste, so erkennt man, das launchd die PID 1 hat — das verheißt nix Gutes. Ok, dann muß es halt eine andere Möglichkeit geben. In den man-pages findet man <a href="http://developer.apple.com/documentation/Darwin/Reference/ManPages/man1/launchctl.1.html">launchctl</a></p>
	<blockquote>
	<pre class="manpages"><tt></tt><tt><strong>NAME</strong>
     <strong>launchctl</strong> -- Interfaces with launchd
	
<strong>SYNOPSIS</strong>
     <strong>launchctl</strong> [<span style=\"text-decoration: underline;\">subcommand</span> [<span style=\"text-decoration: underline;\">arguments</span> <span style=\"text-decoration: underline;\">...</span>]]
	
<strong>DESCRIPTION</strong>
     <strong>launchctl</strong> interfaces with <strong>launchd</strong> to load, unload daemons/agents and generally control <strong>launchd</strong>.
     <strong>launchctl</strong> supports taking subcommands on the command line, interactively or even redirected from stan-<span class=\"whiteout\" style=\"color: #ffffff;\">dard standard</span>
     dard input.  These commands can be stored in <strong>$HOME/.launchd.conf</strong> or <strong>/etc/launchd.conf</strong> to be read at the
     time <strong>launchd</strong> starts.
</tt></pre>
	</blockquote>
	<p><span>In den weiteren Optionen findet man die Subcommands »load« und »unload« sowie »list«.</span></p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> launchctl list <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> de.something</pre></div></div>

	<p><span>kann man sich auflisten lassen, ob die plists geladen wurden.</span></p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> launchctl load <span style="color: #000000; font-weight: bold;">/</span>Library<span style="color: #000000; font-weight: bold;">/</span>LaunchDaemons<span style="color: #000000; font-weight: bold;">/</span>de.something.hddmount.plist
<span style="color: #c20cb9; font-weight: bold;">sudo</span> launchctl load <span style="color: #000000; font-weight: bold;">/</span>Library<span style="color: #000000; font-weight: bold;">/</span>LaunchDaemons<span style="color: #000000; font-weight: bold;">/</span>de.something.hddunmount.plist</pre></div></div>

	<p><span>nimmt die beiden plists auf.<br />
</span>
</p>
]]></content:encoded>
			<wfw:commentRss>http://controlc.de/2009/05/14/mac-launchd-naher-beleuchtet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mac &#124; Einrichtung eines Backups</title>
		<link>http://controlc.de/2009/05/08/einrichtung-eines-backups/</link>
		<comments>http://controlc.de/2009/05/08/einrichtung-eines-backups/#comments</comments>
		<pubDate>Fri, 08 May 2009 09:01:04 +0000</pubDate>
		<dc:creator>controlc.de</dc:creator>
				<category><![CDATA[apple]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[cron]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[ical]]></category>
		<category><![CDATA[launchd]]></category>
		<category><![CDATA[lingon]]></category>
		<category><![CDATA[macosx]]></category>
		<category><![CDATA[time machine]]></category>

		<guid isPermaLink="false">http://controlc.de/?p=213</guid>
		<description><![CDATA[Nachdem ich jetzt doch vorgenommen habe meinen Blog aufzuhübschen, möchte hier noch mal meinen Artikel, den ich für macfidelity geschrieben habe, publizieren. Das Problem Ich habe einen iMac, welcher als Fernseher, Videorekorder, Musikbibliothek, Bücherdatenbank und als Email-Server (Windows-Server in einer VM) funktioniert. Aus diesem Grund ist der iMac rund um die Uhr an. Wenn so [...]]]></description>
			<content:encoded><![CDATA[	<p><em>Nachdem ich jetzt doch vorgenommen habe meinen Blog aufzuhübschen, möchte hier noch mal meinen <a href="http://macfidelity.de/2009/04/30/mac-einrichtung-eines-backups/">Artikel</a>, den ich für <strong><a href="http://macfidelity.de">macfidelity</a></strong> geschrieben habe, publizieren.</em></p>
	<h2><strong>Das Problem</strong></h2>
	<p>Ich habe einen iMac, welcher als Fernseher, Videorekorder, Musikbibliothek, Bücherdatenbank und als Email-Server (Windows-Server in einer VM) funktioniert. Aus diesem Grund ist der iMac rund um die Uhr an. Wenn so wichtige Daten auf dem Rechner liegen, dann bietet es sich an regelmäßig ein Backup zu machen. In meiner ursprünglichen Planung dachte ich mir: “He, OSX hat Time Machine mit dabei, da brauchst Du Dir um nix mehr Sorgen zu machen.” — Weit gefehlt!<span id="more-213"></span></p>
	<ul>
	<li>Time Machine will alle Stunde ein Backup machen — warum auch immer?! Ok, das Problem kann man mit dem <a href="http://timesoftware.free.fr/timemachineeditor/">Time Machine Editor</a> eingrenzen.</li>
	<li>Für Time Machine ist die VM eine einzige Datei, welche sich natürlich immer verändert und deswegen immer wieder neu komplett weggeschrieben wird — da reicht die größte Backupplatte nicht!</li>
	</ul>
	<h2><strong>Die Lösung</strong></h2>
	<p>Zuerst möchte ich Time Machine davon überzeugen nur einmal in der Nacht ein Backup zu machen. Dazu verwende ich den <a href="http://timesoftware.free.fr/timemachineeditor/">Time Machine Editor</a>. Dieses Programm gibt die Möglichkeit die fest eingestellten Zeiten für Time Machine von Apple zu editieren. Hier hat man die Möglichkeit entweder in einem festen Intervall</p>
	<p><a href="http://controlc.de/wp-content/uploads/2009/05/time-machine-editor-intervall.jpg" class="floatbox" rev="group:213 caption:`time-machine-editor-intervall`"><img class="size-full wp-image-349 alignnone" title="time-machine-editor-intervall" src="http://controlc.de/wp-content/uploads/2009/05/time-machine-editor-intervall.jpg" alt="time-machine-editor-intervall" width="348" height="219" /></a></p>
	<p>oder aber zu festgelegten Zeiten</p>
	<p><a href="http://controlc.de/wp-content/uploads/2009/05/time-machine-editor-calendar.jpg" class="floatbox" rev="group:213 caption:`time-machine-editor-calendar`"><img class="alignnone size-full wp-image-350" title="time-machine-editor-calendar" src="http://controlc.de/wp-content/uploads/2009/05/time-machine-editor-calendar.jpg" alt="time-machine-editor-calendar" width="377" height="293" /></a></p>
	<p>Time Machine zu starten.</p>
	<p>Das Problem mit den großen Backups der VM erschlage ich einfach damit, das ich den Ordner der VM vom Time Machine Backup ausschließe und das Backup von Windows selber machen lasse. Dazu habe ich auf meiner externen Festplatte einfach zwei Partitionen angelegt, eine Partition habe ich Time Machine zugeordnet, die andere “gehört” der VM. Es ist auch eine mit HFS formatierte Partition, die ich über VMWares Ordnerfreigabe der VM zugeordnet habe. Der Vorteil dabei ist, das für die VM diese Partition ein Netzlaufwerk ist, welches auch mal weg sein kann, ohne das Windows sich dran stört.</p>
	<h2><strong>Der Zwischenstand</strong></h2>
	<p>Somit sollte das alles laufen und ich glücklich sein: Leider nicht ganz. Ich muß zwar nicht mehr um den Speicherplatz meiner externen Festplatte bangen und die Backups werden auch schön in der Nacht gemacht. Aber leider fährt auch bei Nichtbenutzung aller ca. 10 Minuten die externe Festplatte hoch um nach ca. 10 Minuten wieder herunterzufahren — sehr unbefriedigend! Nicht nur, das es der Platte nicht sonderlich gut tut, es nervt auch rein geräuschtechnisch und etwas Strom verbraucht es auch!</p>
	<h2><strong>Die Zwischenlösung</strong></h2>
	<p>Da ich nicht herausfinden konnte, was die Platte immer wieder aufwecken läßt (Ein Abschalten der Spotlightindizierung auf dem Laufwerk brachte nicht das gewünschte Ergebnis), kam ich auf folgende Idee:</p>
	<p>Warum nicht die Festplatte vorm dem Start des Backups mounten und danach wieder unmounten? Klingt doch ganz gut. Im Terminal ist das einfach gemacht:</p>
	<blockquote><p><em>diskutil mount /dev/disk2s2</em></p></blockquote>
	<p>damit kann man die Platte einbinden.</p>
	<blockquote><p><em>diskutil unmount /dev/disk2s2</em></p></blockquote>
	<p>und damit wieder ausbinden. (<em><strong>Fidel-Edit:</strong> disk2s2 trifft im Falle von makomi zu — das kann bei euch gleich sein — muss es aber nicht — Der Mount Befehl im Terminal sollte hier weiterhelfen</em>)</p>
	<p>Nun muß das Alles nur noch zeitgesteuert gestartet werden. Auch dafür hat OSX wieder mehrere Lösungen parat:</p>
	<h3>iCal</h3>
	<p>iCal bietet an, für eine Erinnerung ein Skript auszuführen:</p>
	<p><a href="http://controlc.de/wp-content/uploads/2009/05/ical-skript.jpg" class="floatbox" rev="group:213 caption:`ical-skript`"><img class="alignnone size-full wp-image-355" title="ical-skript" src="http://controlc.de/wp-content/uploads/2009/05/ical-skript.jpg" alt="ical-skript" width="210" height="299" /></a></p>
	<h3>crontab</h3>
	<p>Als eine Unix-afiner Mensch kenne ich natürlich <a href="http://de.wikipedia.org/wiki/Cron">cron</a>. In OSX liegen die systemweiten Cron-Dateien unter /etc/periodic und dann in den jeweiligen Unterordnern daily, weekly, monthly. Jeder Benutzer kann sich auch ein eigenes crontab einrichten. Dies geht mit dem Befehl “crontab –e”. Aber warum die Kommandozeile bemühen, wenn es auch eine GUI dafür gibt: <a href="http://h775982.serverkompetenz.net:9080/abstracture_public/projects-en/cronnix">CronniX</a>.</p>
	<p>Das Programm ist sehr aufgeräumt und selbsterklärend:</p>
	<p><a href="http://controlc.de/wp-content/uploads/2009/05/cron-ubersicht.png" class="floatbox" rev="group:213 caption:`cron-ubersicht`"><img class="alignnone size-full wp-image-356" title="cron-ubersicht" src="http://controlc.de/wp-content/uploads/2009/05/cron-ubersicht.png" alt="cron-ubersicht" width="455" height="286" /></a></p>
	<p>Die beiden Tasks sind schnell angelegt:</p>
	<p><a href="http://controlc.de/wp-content/uploads/2009/05/cron-mount.png" class="floatbox" rev="group:213 caption:`cron-mount`"><img class="alignnone size-full wp-image-348" title="cron-mount" src="http://controlc.de/wp-content/uploads/2009/05/cron-mount.png" alt="cron-mount" width="307" height="310" /></a></p>
	<p><a href="http://controlc.de/wp-content/uploads/2009/05/cron-unmount.png" class="floatbox" rev="group:213 caption:`cron-unmount`"><img class="alignnone size-full wp-image-357" title="cron-unmount" src="http://controlc.de/wp-content/uploads/2009/05/cron-unmount.png" alt="cron-unmount" width="307" height="310" /></a></p>
	<h3>launchd</h3>
	<p>Und schließlich gibt es Apples Verbesserung zu cron genannt launchd. Ich habe mich schon immer gefragt, was das eigentlich ist. Nun, die Erklärung ist recht einfach: Es ist die Ablösung von cron, da es nicht nur zeit– oder intervallgesteuert sondern auch ereignisgesteuert Aktionen ausführen kann.</p>
	<p>Eine guten Überblick gibt dazu Apples <a href="http://developer.apple.com/macosx/launchd.html">Getting started with launchd</a>. Es muß also ein preference file erstellt werden — ein xml. Bevor ich sowas händig im Texteditor selber baue, schau ich doch lieber nach, ob es nicht dafür schon ein kleines Programm gibt und siehe da: Die kurze Suche ergab <a href="http://www.codepoetry.net/products/launchdeditor">Launchd Editor</a> und <a href="http://tuppis.com/lingon/">Lingon</a>. Während ersteres ein Sharewareprodukt ist (ok, 5$ ist nicht der Hit, aber das Programm wurde das letze Mal 2005 aktualisiert), ist zweiteres Opensource.</p>
	<p>Lingon ist sehr übersichtlich.</p>
	<p><a href="http://controlc.de/wp-content/uploads/2009/05/lingon-startscreen.png" class="floatbox" rev="group:213 caption:`lingon-startscreen`"><img class="alignnone size-full wp-image-351" title="lingon-startscreen" src="http://controlc.de/wp-content/uploads/2009/05/lingon-startscreen.png" alt="lingon-startscreen" width="556" height="568" /></a></p>
	<p>Wenn man einen neuen Task anlegen möchte, muß man sich entscheiden wann er aktiv werden soll:</p>
	<p><a href="http://controlc.de/wp-content/uploads/2009/05/lingon-auswahl.png" class="floatbox" rev="group:213 caption:`lingon-auswahl`"><img class="alignnone size-full wp-image-354" title="lingon-auswahl" src="http://controlc.de/wp-content/uploads/2009/05/lingon-auswahl.png" alt="lingon-auswahl" width="323" height="137" /></a></p>
	<p>In meinem Fall möchte ich, das die Festplatte auch dann gemountet und wieder ausgeworfen wird, wenn keiner angemeldet ist, also wird es ein User Daemon:</p>
	<p>Und so sehen die beiden Task aus:</p>
	<p><a href="http://controlc.de/wp-content/uploads/2009/05/lingon-mount.png" class="floatbox" rev="group:213 caption:`lingon-mount`"><img class="alignnone size-full wp-image-353" title="lingon-mount" src="http://controlc.de/wp-content/uploads/2009/05/lingon-mount.png" alt="lingon-mount" width="556" height="568" /></a></p>
	<p><a href="http://controlc.de/wp-content/uploads/2009/05/lingon-unmount.png" class="floatbox" rev="group:213 caption:`lingon-unmount`"><img class="alignnone size-full wp-image-352" title="lingon-unmount" src="http://controlc.de/wp-content/uploads/2009/05/lingon-unmount.png" alt="lingon-unmount" width="556" height="568" /></a></p>
	<p>Also einfaches Erstellen eines Tasks in nur drei Schritten.</p>
	<p>Klingt schon mal gut und als Zwischenlösung macht es genau das, was ich möchte.</p>
	<h2><strong>Die Wünsche</strong></h2>
	<p>Natürlich schreit das Ganze nach Optimierungen:</p>
	<p>Nachdem die Platte eingebunden ist, könnte doch gleich Time Machine angestoßen werden um die Daten zu sichern. Aber wie ich Time Machine per Kommandozeile dazu überreden kann ein Backup zu machen habe ich noch nicht herausgefunden. Und wie kann ich Time Machine sagen, das nach erfolgtem Backup wiederrum ein Skript ausgeführt werden kann (nämlich das Unmounten der Festplatte)? Oder aber wie funktioniert das Skripting mit VMWare? Wie kann ich dort einen Befehl starten und nach Beenden des Befehls den Statuscode an ein Skript in OSX zurückgeben?
</p>
]]></content:encoded>
			<wfw:commentRss>http://controlc.de/2009/05/08/einrichtung-eines-backups/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>debian &#124; Backup per SSH</title>
		<link>http://controlc.de/2009/05/06/backup-per-ssh/</link>
		<comments>http://controlc.de/2009/05/06/backup-per-ssh/#comments</comments>
		<pubDate>Wed, 06 May 2009 12:09:58 +0000</pubDate>
		<dc:creator>controlc.de</dc:creator>
				<category><![CDATA[allgemeine IT]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[cat]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[tar]]></category>

		<guid isPermaLink="false">http://controlc.de/wordpress/?p=94</guid>
		<description><![CDATA[So ein Server will ja auch mal »gebackupt« werden — am einfachsten geht das über eine Shell-Befehlszeile: tar cvzf - -T /root/backup-liste-include.txt &#124; ssh BENUTZER@SERVER &#34;cat &#62; /root/backup-$(date +%F-%T).tar.gz&#34; in der Datei /root/backup-liste-include.txt sollte jeder Pfad in einer einzelnen Zeile stehen, so kann man das Backup schnell erweitern. Was macht die Befehlszeile genau? Es packt [...]]]></description>
			<content:encoded><![CDATA[	<p>So ein Server will ja auch mal »gebackupt« werden — am einfachsten geht das über eine Shell-Befehlszeile:</p>
	
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">tar</span> cvzf - <span style="color: #660033;">-T</span> <span style="color: #000000; font-weight: bold;">/</span>root<span style="color: #000000; font-weight: bold;">/</span>backup-liste-include.txt <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">ssh</span> BENUTZER<span style="color: #000000; font-weight: bold;">@</span>SERVER <span style="color: #ff0000;">&quot;cat &gt; /root/backup-<span style="color: #007800;">$(date +%F-%T)</span>.tar.gz&quot;</span></pre></div></div>

	<p><span id="more-94"></span></p>
	<p>in der Datei /root/backup-liste-include.txt sollte jeder Pfad in einer einzelnen Zeile stehen, so kann man das Backup schnell erweitern.</p>
	<p>Was macht die Befehlszeile genau? Es packt die entsprechenden Pfad ein und »cat»tet diese Datei per SSH auf einen anderen, per SSH erreichbaren Server wieder aus. Die dort entstehende Datei trägt den Dateiennamen des aktuellen Datums und der aktuellen Uhrzeit, z.B. <em>backup-2009–05-06–14:06:55.tar.gz</em></p>
	<p>ToDo:</p>
	<ul>
	<li>Eine Lösung per SSH-Keys, damit es automatisch ablaufen kann</li>
	<li>Eintragung in cron</li>
	<li>Logrotate o.ä., damit ältere Backups automatisch gelöscht werden</li>
	</ul>
]]></content:encoded>
			<wfw:commentRss>http://controlc.de/2009/05/06/backup-per-ssh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

