<?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>niebegeg.net &#187; Backup</title> <atom:link href="http://niebegeg.net/tags/backup/feed/" rel="self" type="application/rss+xml" /><link>http://niebegeg.net</link> <description>Mein Leben im Entwicklerland</description> <lastBuildDate>Mon, 06 Feb 2012 20:30:16 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>Duplicity-Backups wiederherstellen</title><link>http://niebegeg.net/2012/02/04/duplicity-backups-wiederherstellen/</link> <comments>http://niebegeg.net/2012/02/04/duplicity-backups-wiederherstellen/#comments</comments> <pubDate>Sat, 04 Feb 2012 21:24:25 +0000</pubDate> <dc:creator>Dirk Rüdiger</dc:creator> <category><![CDATA[Linux]]></category> <category><![CDATA[Backup]]></category> <category><![CDATA[duplicity]]></category> <category><![CDATA[duply]]></category> <category><![CDATA[Mac OS]]></category> <guid
isPermaLink="false">http://niebegeg.net/?p=672</guid> <description><![CDATA[Heute fiel mir auf, dass ich noch ein "paar" Dateien (einige Git-Repositories) von unserem bereits gekündigten Server sichern und auf einen neuen Server verschieben will. Und dann fiel mir auf, dass der Server bereits vor 5 Tagen gelöscht wurde. Und so begann das Suchen in den Backups. Auf dem Server setzte ich Debian Linux als [...]]]></description> <content:encoded><![CDATA[<p>Heute fiel mir auf, dass ich noch ein "paar" Dateien (einige Git-Repositories) von unserem bereits gekündigten Server sichern und auf einen neuen Server verschieben will. Und dann fiel mir auf, dass der Server bereits vor 5 Tagen gelöscht wurde. Und so begann das Suchen in den Backups.</p><p>Auf  dem Server setzte ich Debian Linux als Betriebssystem und <a
href="http://duplicity.nongnu.org/">duplicity</a> als Backup-Software ein. Dieses Backuptool verschlüsselt die Backups mit GPG-Schlüssel, somit braucht man eine intakte (vorzugsweise unixartige) Systemumgebung und den  GPG-Schlüssel, mit dem das Backuparchiv erstellt wurde. Meine Herausforderung war nun, die auf einem Linux-Server erstellten Backup-Archive auf dem Mac wieder auszupacken, um die wiederhergestellten Git-Repositories auf einen anderen Server zu verschieben.</p><p>Duplicity bekommt man mit <a
href="https://github.com/mxcl/homebrew">Homebrew</a> in Sekundenstelle installiert, ebenso das Skript <a
href="https://github.com/mxcl/homebrew/blob/master/Library/Formula/duply.rb">duply</a>, ein Wrapper für <a
href="https://github.com/mxcl/homebrew/blob/master/Library/Formula/duplicity.rb">duplicity</a>, der die Konfiguration und Bedienung extrem vereinfacht.</p><pre class="lang-bash"><code><span class="kw2">sudo</span> brew <span class="kw2">install</span> duplicity<br />
<span class="kw2">sudo</span> brew <span class="kw2">install</span> duply</code></pre><p>nun braucht man die duply-Konfiguration, lag auf dem Server unter <code>/etc/duply</code>und kann auf dem Mac in <code>~/.duply</code>abgelegt werden. Ich nenne das Backup-Set mal "gitrepo", das Backup-Set liegt in <code>~/backups</code>.
Es muss noch in der Datei <code>~/.duply/gitrepo/conf</code> der Pfad zu den Backup-Ordnern geändert werden, z.B.</p><pre class="lang-ini"><code><span class="re1">TARGET</span>=<span class="re2">'file:///var/backups/duply/gitrepo/'</span></code></pre><p>in</p><pre class="lang-ini"><code><span class="re1">TARGET</span>=<span class="re2">'file:///Users/drue/backups/gitrepo/'</span></code></pre><p>Nun kann man die Wiederherstellung starten, der GPG-Schlüssel-ID und das Passwort steht in der Duply-Konfiguration. In diesem Beispiel soll das Backup ins Verszeichnis <code>~/gitrepo</code> wiederhergestellt werden.</p><pre class="lang-bash"><code>$ duply gitrepo restore ~/gitrepo<br />
Start duply v1<span class="nu0">.5</span><span class="nu0">.4</span>, <span class="kw1">time</span> is <span class="nu0">2012</span><span class="nu0">-02</span><span class="nu0">-03</span> <span class="nu0">16</span>:<span class="nu0">11</span>:<span class="nu0">46</span>.<br />
Using profile <span class="st0">'/Users/drue/.duply/gitrepo'</span>.<br />
Using installed duplicity version <span class="nu0">0.6</span><span class="nu0">.17</span>, gpg <span class="nu0">1.4</span><span class="nu0">.11</span> <span class="br0">&#40;</span>Home: ~/.gnupg<span class="br0">&#41;</span>.<br />
Autoset first GPG_KEY entry <span class="st0">'09ABCDEF'</span> <span class="kw2">as</span> signing key.<br />
Test - Encrypt to 09ABCDEF &amp; Sign with 09ABCDEF <span class="br0">&#40;</span>OK<span class="br0">&#41;</span><br />
Test - Decrypt <span class="br0">&#40;</span>OK<span class="br0">&#41;</span><br />
Test - Compare <span class="br0">&#40;</span>OK<span class="br0">&#41;</span><br />
Cleanup - Delete <span class="st0">'/tmp/duply.17084.1328281906_*'</span><span class="br0">&#40;</span>OK<span class="br0">&#41;</span><br />
<br />
--- Start running <span class="kw3">command</span> RESTORE at <span class="nu0">16</span>:<span class="nu0">11</span>:<span class="nu0">47.000</span> ---<br />
Max open files of <span class="nu0">120</span> is too low, should be &gt;= <span class="nu0">1024</span>.<br />
Use <span class="st0">'ulimit -n 1024'</span> or higher to correct.<br />
<br />
<span class="nu0">16</span>:<span class="nu0">11</span>:<span class="nu0">47.000</span> Task <span class="st0">'RESTORE'</span> failed with <span class="kw3">exit</span> code <span class="st0">'37'</span>.</code></pre><p>OK, es ist eben kein Server. Duplicity beklagt, dass die Höchstgrenze gleichzeitig geöffneter Dateien mit <em>120</em> zu gering ist. Das lässt sich mit</p><pre class="lang-bash"><code><span class="kw3">ulimit</span> -n <span class="nu0">1024</span></code></pre><p>auf jedem unixartigen System hochsetzen. Ein alternatives mac-spezifisches Kommando ist</p><pre class="lang-bash"><code>launchctl limit <span class="nu0">1024</span> <span class="nu0">10240</span></code></pre><p>Nun ein weiterer Versuch:</p><pre class="lang-bash"><code>drue@ain:~$ duply gitrepo restore ~/gitrepo<br />
Start duply v1<span class="nu0">.5</span><span class="nu0">.4</span>, <span class="kw1">time</span> is <span class="nu0">2012</span><span class="nu0">-02</span><span class="nu0">-03</span> <span class="nu0">16</span>:<span class="nu0">10</span>:<span class="nu0">32</span>.<br />
Using profile <span class="st0">'/Users/drue/.duply/gitrepo'</span>.<br />
Using installed duplicity version <span class="nu0">0.6</span><span class="nu0">.17</span>, gpg <span class="nu0">1.4</span><span class="nu0">.11</span> <span class="br0">&#40;</span>Home: ~/.gnupg<span class="br0">&#41;</span>.<br />
Autoset first GPG_KEY entry <span class="st0">'09ABCDEF'</span> <span class="kw2">as</span> signing key.<br />
Test - Encrypt to 09ABCDEF &amp; Sign with 09ABCDEF <span class="br0">&#40;</span>OK<span class="br0">&#41;</span><br />
Test - Decrypt <span class="br0">&#40;</span>OK<span class="br0">&#41;</span><br />
Test - Compare <span class="br0">&#40;</span>OK<span class="br0">&#41;</span><br />
Cleanup - Delete <span class="st0">'/tmp/duply.16860.1328281836_*'</span><span class="br0">&#40;</span>OK<span class="br0">&#41;</span><br />
<br />
--- Start running <span class="kw3">command</span> RESTORE at <span class="nu0">16</span>:<span class="nu0">10</span>:<span class="nu0">36.000</span> ---<br />
Synchronizing remote metadata to <span class="kw3">local</span> cache...<br />
Copying duplicity-full-signatures.20110910T232302Z.sigtar.gpg to <span class="kw3">local</span> cache.<br />
Traceback <span class="br0">&#40;</span>most recent call <span class="kw2">last</span><span class="br0">&#41;</span>:<br />
&nbsp; File <span class="st0">&quot;/usr/local/bin/duplicity&quot;</span>, line <span class="nu0">1377</span>, <span class="kw1">in</span> &lt;module&gt;<br />
&nbsp; &nbsp; with_tempdir<span class="br0">&#40;</span>main<span class="br0">&#41;</span><br />
&nbsp; File <span class="st0">&quot;/usr/local/bin/duplicity&quot;</span>, line <span class="nu0">1370</span>, <span class="kw1">in</span> with_tempdir<br />
&nbsp; &nbsp; fn<span class="br0">&#40;</span><span class="br0">&#41;</span><br />
&nbsp; File <span class="st0">&quot;/usr/local/bin/duplicity&quot;</span>, line <span class="nu0">1246</span>, <span class="kw1">in</span> main<br />
&nbsp; &nbsp; sync_archive<span class="br0">&#40;</span>decrypt<span class="br0">&#41;</span><br />
&nbsp; File <span class="st0">&quot;/usr/local/bin/duplicity&quot;</span>, line <span class="nu0">1059</span>, <span class="kw1">in</span> sync_archive<br />
&nbsp; &nbsp; copy_to_local<span class="br0">&#40;</span>fn<span class="br0">&#41;</span><br />
&nbsp; File <span class="st0">&quot;/usr/local/bin/duplicity&quot;</span>, line <span class="nu0">1008</span>, <span class="kw1">in</span> copy_to_local<br />
&nbsp; &nbsp; tdp.move<span class="br0">&#40;</span>globals.archive_dir.append<span class="br0">&#40;</span>loc_name<span class="br0">&#41;</span><span class="br0">&#41;</span><br />
&nbsp; File <span class="st0">&quot;/usr/local/Cellar/duplicity/0.6.17/libexec/duplicity/path.py&quot;</span>, line <span class="nu0">617</span>, <span class="kw1">in</span> move<br />
&nbsp; &nbsp; self.copy<span class="br0">&#40;</span>new_path<span class="br0">&#41;</span><br />
&nbsp; File <span class="st0">&quot;/usr/local/Cellar/duplicity/0.6.17/libexec/duplicity/path.py&quot;</span>, line <span class="nu0">443</span>, <span class="kw1">in</span> copy<br />
&nbsp; &nbsp; self.copy_attribs<span class="br0">&#40;</span>other<span class="br0">&#41;</span><br />
&nbsp; File <span class="st0">&quot;/usr/local/Cellar/duplicity/0.6.17/libexec/duplicity/path.py&quot;</span>, line <span class="nu0">448</span>, <span class="kw1">in</span> copy_attribs<br />
&nbsp; &nbsp; util.maybe_ignore_errors<span class="br0">&#40;</span>lambda: os.<span class="kw2">chown</span><span class="br0">&#40;</span>other.name, self.<span class="kw2">stat</span>.st_uid, self.<span class="kw2">stat</span>.st_gid<span class="br0">&#41;</span><span class="br0">&#41;</span><br />
&nbsp; File <span class="st0">&quot;/usr/local/Cellar/duplicity/0.6.17/libexec/duplicity/util.py&quot;</span>, line <span class="nu0">65</span>, <span class="kw1">in</span> maybe_ignore_errors<br />
&nbsp; &nbsp; <span class="kw3">return</span> fn<span class="br0">&#40;</span><span class="br0">&#41;</span><br />
&nbsp; File <span class="st0">&quot;/usr/local/Cellar/duplicity/0.6.17/libexec/duplicity/path.py&quot;</span>, line <span class="nu0">448</span>, <span class="kw1">in</span> &lt;lambda&gt;<br />
&nbsp; &nbsp; util.maybe_ignore_errors<span class="br0">&#40;</span>lambda: os.<span class="kw2">chown</span><span class="br0">&#40;</span>other.name, self.<span class="kw2">stat</span>.st_uid, self.<span class="kw2">stat</span>.st_gid<span class="br0">&#41;</span><span class="br0">&#41;</span><br />
OSError: <span class="br0">&#91;</span>Errno <span class="nu0">1</span><span class="br0">&#93;</span> Operation not permitted: <span class="st0">'/Users/drue/.cache/duplicity/duply_gitrepo/duplicity-full-signatures.20110910T232302Z.sigtar.gz'</span></code></pre><p>An dieser Stelle habe ich aufgehört, mein Glück mit Duply zu veruchen, da es abbricht, weil es ein paar erweiterte Dateiattribute nicht setzen kann. Beim nächsten Versuch habe ich mir das eigentliche Duplicity-Kommando gesucht und im <a
href="https://help.ubuntu.com/community/DuplicityBackupHowto#Restore">Ubuntu-Hilfe-Wiki</a> gefunden. Wenn man das GPG-Passwort nicht in der Umgebungsvariable <code>PASSPHRASE</code> hinterlegt, wird man bei der Ausführung des Kommandos <code>duplicity restore ...</code> erfragt.</p><pre class="lang-bash"><code><span class="kw3">export</span> <span class="re2">PASSPHRASE=</span>SomeLongGeneratedHardToCrackKey<br />
duplicity restore <span class="kw2">file</span>:///Users/drue/duply/gitrepo/ gitrepo<br />
<span class="kw3">unset</span> PASSPHRASE</code></pre><p>Nun kommt noch immer diese Fehlermeldungen:</p><pre class="lang-plain"><code>...<br />
Error '[Errno 1] Operation not permitted: 'gitrepo/repositories/image_server.git/objects/45'' processing .<br />
...</code></pre><p>Das Kommando aber läuft durch. Ich hatte meine Git-Repositories zurück und habe sie mittlerweile funktionierend und an neuer Location wieder am Start.</p><h3>Epilog</h3><p>Den Beitrag habe ich geschrieben, um alle im Netz verstreut liegenden Infos zusammenzutragen und den Suchmaschinen zu den Fehlermeldungen die passenden Beschreibungen zu liefern. ;)<br
/> Ein wichtige Lehre ist <a
href="/2011/12/07/der-mac-ist-weg-bist-du-vorbereitet/">wiedermal</a>: Hast Du alle Daten zur Hand, die Du zur Wiederherstellung brauchst. In diesem Fall waren das der GPG-Schlüssel, das zugehörige Kennwort und natürlich ein möglichst aktuelles und konsistentes Backup.</p><p>Hätte die Wiederherstellung auf dem Mac nicht funktioniert, wäre der nächste Programmpunkt, eine <a
href="https://www.jiffybox.de/">Jiffybox</a> mit Debian Linux einzurichten, die Backups auf diesen vServer zu transferieren und mit nahezu identischer Systemumgebung ausgepackt. Hätte aber ein paar Stunden länger gedauert.</p><div
class="betterrelated"><p><strong>Ähnliche Beiträge:</strong></p><ol><li> <a
href="http://niebegeg.net/2007/10/12/enhancing-windows-tiny-backup-program/" title="Permanent link to Enhancing Window&#8217;s tiny backup program">Enhancing Window&#8217;s tiny backup program</a></li><li> <a
href="http://niebegeg.net/2010/12/14/homebrew-bringt-die-vielfalt-von-unix-auf-den-mac/" title="Permanent link to Homebrew bringt die Vielfalt von Unix auf den Mac">Homebrew bringt die Vielfalt von Unix auf den Mac</a></li><li> <a
href="http://niebegeg.net/2010/01/08/backup_migrate-drush-happy-days/" title="Permanent link to backup_migrate + drush = happy days :)">backup_migrate + drush = happy days :)</a></li><li> <a
href="http://niebegeg.net/2010/12/19/der-schnellste-weg-zur-drush-installation/" title="Permanent link to Der schnellste Weg zur Drush-Installation">Der schnellste Weg zur Drush-Installation</a></li><li> <a
href="http://niebegeg.net/2007/09/29/turning-my-ubuntu-notebook-into-a-media-box/" title="Permanent link to Turning my ubuntu notebook into  a &#8220;media box&#8221;">Turning my ubuntu notebook into  a &#8220;media box&#8221;</a></li></ol></div><p><a
href="https://dirkr.fornax.uberspace.de/?flattrss_redirect&amp;id=672&amp;md5=19f3fc12c3a9662b98a46582c8c8b786" title="Flattr" target="_blank"><img
src="http://niebegeg.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded> <wfw:commentRss>http://niebegeg.net/2012/02/04/duplicity-backups-wiederherstellen/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <atom:link rel="payment" href="https://dirkr.fornax.uberspace.de/?flattrss_redirect&amp;id=672&amp;md5=19f3fc12c3a9662b98a46582c8c8b786" type="text/html" /> </item> <item><title>Der Mac ist weg &#8211; bist Du vorbereitet?</title><link>http://niebegeg.net/2011/12/07/der-mac-ist-weg-bist-du-vorbereitet/</link> <comments>http://niebegeg.net/2011/12/07/der-mac-ist-weg-bist-du-vorbereitet/#comments</comments> <pubDate>Wed, 07 Dec 2011 13:52:13 +0000</pubDate> <dc:creator>Dirk Rüdiger</dc:creator> <category><![CDATA[Linux]]></category> <category><![CDATA[Backup]]></category> <category><![CDATA[Defekt]]></category> <category><![CDATA[E-Mail]]></category> <category><![CDATA[Mac]]></category> <category><![CDATA[Mac OS]]></category> <category><![CDATA[Office]]></category> <guid
isPermaLink="false">http://niebegeg.net/?p=498</guid> <description><![CDATA[Man hat sich so schön mit seinem Rechner eingerichtet: Kennt die besten Programme für den Anwendungsfall, legt gekonnt Dokumente in ausgeklügelten Ordnerstrukturen ab, hat seine Mails (und so) in der Cloud und das wöchentliche Backup sichert zuverlässig. Kann eigentlich nichts schief gehen, selbst wenn der Rechner in die Werkstatt muss. Oder? Hier mein persönlicher Erfahrungsbericht. [...]]]></description> <content:encoded><![CDATA[<p>Man hat sich so schön mit seinem Rechner eingerichtet: Kennt die besten Programme für den Anwendungsfall, legt gekonnt Dokumente in ausgeklügelten Ordnerstrukturen ab, hat seine Mails (und so) in der Cloud und das wöchentliche Backup sichert zuverlässig. Kann eigentlich nichts schief gehen, selbst wenn der Rechner in die Werkstatt muss. Oder? Hier mein persönlicher Erfahrungsbericht.</p><p>Ich hatte Gelegenheit zu einem Selbsttest, als ich kürzlich mein Macbook wegen eines Hardwaredefekts - nur für mich überraschend? - im Apple Store zurück lassen musste. Ich reaktivierte mein Linux-Notebook und legte los. Wichtig war mir, schnell wieder eine funktionierende Arbeitsumgebung einzurichten.</p><ul><li>Mein iPod und iPad wurden regelmäßig mit dem Mac synchronisiert. Adressbuch, Kalender und so waren also auf aktuellem Stand und weiterhin gut nutzbar. Damit habe ich mich am Linux-Desktop nicht beschäfftigt.</li><li>Dank Mails auf dem IMAP-Server hatte ich mit Thunderbird schnell wieder Zugriff auf die Mails. Auf dessen Adressbuch konnte ich verzichten: wenn ich eine Adresse brauchte, habe ich sie schnell in einer früheren Mail im Gesendet-Ordner gefunden.</li><li>Für die Arbeit brauche ich Firefox, Netbeans, OpenOffice und ein gutes Terminal - alles da.</li><li>Aktuelle Projekt- und Konfigurationsdaten habe ich mir aus dem wöchentlichen Mac-Backup von der Backup-Festplatte (USB) kopiert. Das klappt mit Linux im Lesezugriff auf Apples HFS-Dateisystem sehr gut.</li><li>Auf Fotos in der Aperture-Bibliothek kann man ganz gut zugreifen, wenn man weiß, wonach man sucht, da die Aperture-Metadaten fehlen. Aber der Import der Bilder aus dem Backup nach Digikam macht sie nutzbar.</li><li>Meine Dokumente liegen auf dem Mac in einem verschlüsselten Sparsebundle. An die kam ich ohne Mac OS nicht heran. Zum Glück hat mir ein Freund dann mal seinen Mac geliehen und ich habe mir die notwendigen Dateien aus dem USB-Backup kopiert. (Dafür habe ich die Software auf seinem Mac gleich mal aktualisiert. Win-Win :)</li></ul><p>Insgesamt ein ganz gutes Ergebnis. Nur für das Sparsebunde werde ich mir noch was überlegen müssen. Ich will mal probieren, ob ein Truecrypt-Container sich ähnlich reibungslos ins Mac OS integrieren lässt und so eine plattformübergreifende Alternative darstellt.</p><p>Man kann von meinem Anwendungsfall leicht abstrahieren und eine andere Betriebssystem-Kombi für die Notlösung wählen. Mit einem Windows-PC als Interimslösung wäre der temporäre Rechnerverlust sicher schmerzlicher spürbar gewesen. Wichtig ist jedoch, einen Plan zu haben.</p><p>PS: Allerdings wollte ich mich die ganze Zeit nicht mehr mit der Qualität und dem Bedienkomfort der Anwendungen auf dem Linux-Desktop anfreunden. Das Jahr des Linux-Desktops liegt wohl noch in weiter Zukunft.</p><p><em>Anmerkung: Den Beitrag hatte ich im Frühjahr geschrieben, aber aus den Augen verloren. Als nun mein Kollege <a
href="http://twitter.com/Th_Jaeger">Thomas</a> drei Wochen ohne Mac auskommen musste, kam er mir wieder in den Sinn.</em></p><div
class="betterrelated"><p><strong>Ähnliche Beiträge:</strong></p><ol><li> <a
href="http://niebegeg.net/2008/02/28/was-exotisches-im-trueben-februar-ich-teste-mandriva-linux/" title="Permanent link to Was Exotisches im trüben Februar &#8211; ich teste Mandriva Linux">Was Exotisches im trüben Februar &#8211; ich teste Mandriva Linux</a></li><li> <a
href="http://niebegeg.net/2009/01/28/virtualbox-plattenplatz-verdoppeln-in-30-minuten/" title="Permanent link to VirtualBox: Plattenplatz verdoppeln in 30 Minuten">VirtualBox: Plattenplatz verdoppeln in 30 Minuten</a></li><li> <a
href="http://niebegeg.net/2008/02/20/mein-kurzes-selbstexperiment-mit-opensuse/" title="Permanent link to Mein kurzes Selbstexperiment mit openSuSE">Mein kurzes Selbstexperiment mit openSuSE</a></li><li> <a
href="http://niebegeg.net/2008/08/08/grml-mein-schweizer-taschenmesser/" title="Permanent link to GRML &#8211; mein &#8220;schweizer Taschenmesser&#8221;">GRML &#8211; mein &#8220;schweizer Taschenmesser&#8221;</a></li><li> <a
href="http://niebegeg.net/2008/11/02/kubuntu-8-10-laeuft-auf-meinem-notebook/" title="Permanent link to (K)Ubuntu 8.10 läuft auf meinem Notebook">(K)Ubuntu 8.10 läuft auf meinem Notebook</a></li></ol></div><p><a
href="https://dirkr.fornax.uberspace.de/?flattrss_redirect&amp;id=498&amp;md5=a5157755f5ac11caa7b8e37c122bf780" title="Flattr" target="_blank"><img
src="http://niebegeg.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded> <wfw:commentRss>http://niebegeg.net/2011/12/07/der-mac-ist-weg-bist-du-vorbereitet/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <atom:link rel="payment" href="https://dirkr.fornax.uberspace.de/?flattrss_redirect&amp;id=498&amp;md5=a5157755f5ac11caa7b8e37c122bf780" type="text/html" /> </item> <item><title>Drush site-alias &#8211; ein Sicherheitsnetz für die Drupal-Website-Entwicklung</title><link>http://niebegeg.net/2010/11/24/drush-site-alias-ein-sicherheitsnetz-fur-die-drupal-website-entwicklung/</link> <comments>http://niebegeg.net/2010/11/24/drush-site-alias-ein-sicherheitsnetz-fur-die-drupal-website-entwicklung/#comments</comments> <pubDate>Wed, 24 Nov 2010 22:42:08 +0000</pubDate> <dc:creator>Dirk Rüdiger</dc:creator> <category><![CDATA[Drupal]]></category> <category><![CDATA[Backup]]></category> <category><![CDATA[Drush]]></category> <category><![CDATA[Modul]]></category> <guid
isPermaLink="false">http://wp.niebegeg.net/?p=381</guid> <description><![CDATA[Anmerkung: Dieser Post erschien ursprünglich im PartMaster-Blog. Drush ist erste Wahl bei der Administration einer Drupal-Website. Und seit Drush auch Site-Aliases kennt, kann man auch "Server voller Drupal-Sites" entspannt verwalten. Bei den Lullabots  ist eine sehr gute Beschreibung zu site-aliases zu finden. Nun lassen sich diese Site-Aliases nutzen, um zu einer vorhandenen Website eine Testversion [...]]]></description> <content:encoded><![CDATA[<p><em>Anmerkung: Dieser Post erschien ursprünglich im <a
href="http://www.partmaster.de/blog/">PartMaster-Blog</a>.</em></p><p><a
href="http://drupal.org/project/drush">Drush</a> ist erste Wahl bei der Administration einer Drupal-Website. Und seit Drush auch Site-Aliases kennt, kann man auch "Server voller Drupal-Sites" entspannt verwalten. Bei den Lullabots  ist eine <a
href="http://www.lullabot.com/articles/new-features-drush-3">sehr gute Beschreibung zu site-aliases</a> zu finden.</p><p>Nun lassen sich diese Site-Aliases nutzen, um zu einer vorhandenen Website eine Testversion anzulegen. Das Ziel ist dabei, eine Kopie einer Website anzulegen, an der man neue Module ausprobieren, Themes überarbeiten oder Konfigurationen
testweise ändern kann (und ich könnte hier noch viele andere Gründe nennen...).</p><p>Anmerkung: Bei dieser Beschreibung nehme ich an, dass die Live-Website unter der Domain "beispiel.de" erreichbar ist und die Staging-Website unter "test.beispiel.de" aufrufbar sein soll.   
Für dieses Setup nutze ich nicht Drupals Multisite-Funktion, sondern zwei getrennte Verzeichnisse. So kann man auf der Staging-Site leicht Module aktualisieren oder austauschen, ohne die Funktion der Live-Site zu gefährden.</p><p>Die Einrichtung dieses Setups ist recht einfach. 
Zuerst erstellt man die Datei <code>$HOME/.drush/aliases.drushrc.php</code> und beschreibt dort
die beiden Websites.</p><pre class="lang-php"><code><span class="kw2">&lt;?php</span> &nbsp; <br />
<span class="re0">$aliases</span><span class="br0">&#91;</span><span class="st0">'test'</span><span class="br0">&#93;</span> = <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span> &nbsp; <br />
&nbsp; <span class="st0">'uri'</span> =&gt; <span class="st0">'test.beispiel.de'</span>, &nbsp; <br />
&nbsp; <span class="st0">'root'</span> =&gt; <span class="st0">'/var/www/test.beispiel.de'</span>, &nbsp; <br />
<span class="br0">&#41;</span>; &nbsp; <br />
<span class="re0">$aliases</span><span class="br0">&#91;</span><span class="st0">'live'</span><span class="br0">&#93;</span> = <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span> &nbsp; <br />
&nbsp; <span class="st0">'uri'</span> =&gt; <span class="st0">'beispiel.de'</span>, &nbsp; <br />
&nbsp; <span class="st0">'root'</span> =&gt; <span class="st0">'/var/www/beispiel.de'</span>, &nbsp; <br />
<span class="br0">&#41;</span>; &nbsp; <br />
<span class="kw2">?&gt;</span></code></pre><p>Die Schlüsselwerte des Arrays <code>$aliases</code> sind die Site-Aliases, in unserem Fall
"live" und "test". Diese werden mit vorangestelltem <code>@</code> als Drush-Argumente
angewendet.</p><p>Nun legt man eine weitere Datenbank in MySQL (oder PostgreSQL) an, kopiert mit
Drush den Ordner mit der Live-Installation in ein anderes Verzeichnis und passt
in der Datei <code>settings.php</code> die <code>$db_url</code> an.</p><pre class="lang-bash"><code>drush rsync --include-conf @live @<span class="kw3">test</span> &nbsp; <br />
<span class="kw3">cd</span> /var/www/<span class="kw3">test</span>.beispiel.de/ &nbsp; <br />
vim sites/beispiel.de/settings.php</code></pre><p>Als Nächstes muss die Datenbank aus der Live-Site noch mittels Drush in die
Datenbank der Test-Site kopiert werden.</p><pre class="lang-bash   "><code>drush sql-<span class="kw2">sync</span> @live @<span class="kw3">test</span></code></pre><p>Jetzt muss man noch dafür sorgen, dass die Test-Website von draußen erreichbar
ist und dafür <a
href="http://httpd.apache.org/docs/2.0/vhosts/examples.html">den Webserver
anpassen</a>, und ggf. auch
den Nameserver.</p><p>Nun kann die Test-Website aufgerufen und bearbeitet werden. Um nicht die
Übersicht zu verlieren, bietet sich das <a
href="http://drupal.org/project/environment_indicator">environment_indicator.module</a> an. Mit dessen Hilfe wird auf der Website eine unaufdringliche Kennzeichnung der
Live- und Test-Website an.</p><p>Das sieht für die Test-Site so:</p><pre class="lang-ini"><code>$conf<span class="re0"><span class="br0">&#91;</span>'environment_indicator_text'<span class="br0">&#93;</span></span> =<span class="re2"> 'TEST SITE'</span><span class="co0">; &nbsp; </span><br />
$conf<span class="re0"><span class="br0">&#91;</span>'environment_indicator_color'<span class="br0">&#93;</span></span> =<span class="re2"> 'dark-red'</span><span class="co0">; &nbsp; </span><br />
$conf<span class="re0"><span class="br0">&#91;</span>'environment_indicator_enabled'<span class="br0">&#93;</span></span> =<span class="re2"> TRUE</span><span class="co0">;</span></code></pre><p>und für die Live-Site so:</p><pre class="lang-ini"><code>$conf<span class="re0"><span class="br0">&#91;</span>'environment_indicator_text'<span class="br0">&#93;</span></span> =<span class="re2"> 'LIVE SITE'</span><span class="co0">; &nbsp; </span><br />
$conf<span class="re0"><span class="br0">&#91;</span>'environment_indicator_color'<span class="br0">&#93;</span></span> =<span class="re2"> 'green'</span><span class="co0">; &nbsp; </span><br />
$conf<span class="re0"><span class="br0">&#91;</span>'environment_indicator_enabled'<span class="br0">&#93;</span></span> =<span class="re2"> TRUE</span><span class="co0">;</span></code></pre><p>aus.</p><p>Sollen nun neue Module, Themes oder Konfigurationsänderungen an der Test-Site
ausprobiert werden, so kopiert man "mal eben" die Datenbank und das Verzeichnis
der Live-Site in die Test-Site und kann loslegen.</p><pre class="lang-bash"><code>drush sql-<span class="kw2">sync</span> @live @<span class="kw3">test</span> &nbsp; <br />
drush rsync @live @<span class="kw3">test</span></code></pre><p>Drush kopiert dabei alle Dateien, schließt jedoch die <code>settings.php</code> aus, so
dass die Datenbank-Zuordnung der Test-Site erhalten bleibt. Das Verhalten von <code>drush rsync</code> kann umfangreich angepasst werden, Details dazu bietet die <a
href="http://drush.ws/#rsync">umfangreiche Drush-Hilfe</a>.</p><p>Unbedenklich ist das Kopieren der Live-Site in die Test-Site. In der umgekehrten
Richtung muss man  vorsichtig sein, es werden ja alle Dateien im Verzeichnis und
die Datenbank überschrieben. Im einfachsten Fall verliert man die Watchdog-,
Session-  und Statistikdaten seit dem letzten Kopieren der Live- in die
Test-Site. Sollten jedoch zwischenzeitlich auch Inhalte auf der Live-Site
erstellt oder aktualisiet worden sein, oder wurden Kommentare eingegeben, dann
gehen diese beim Kopieren der Test-Site auf die Live-Site verloren.    Möglich
wäre es, diese Inhaltsdaten vor dem Kopieren mit <a
href="/blog/mal-eben-ein-drupal-backup">Backup_migrate und einem
angepassten Backup-Profil sichern</a> und nach
dem Kopieren wieder in die Datenbank zu importieren. Aber dass setzt
detaillierte Kenntnisse der Drupal-Tabellenstruktur voraus - man ganz genau
wissen, welche Datenbanktabellen gesichert und wieder hergestellt werden müssen.
Ich habe das so noch nicht angewendet, bleibt also Raum für zukünftige Tests.</p><p><strong>Update:</strong> Nach dem Kopieren der Seite müssen evtl. noch Konfigurationswerte angepasst werden. So speichert z.B. das Modul <a
href="http://drupal.org/project/securepages">Secure Pages</a> die Basis-URL für die http- und https-Version.</p><pre class="lang-bash"><code>drush @live vget securepages_basepath &nbsp; <br />
securepages_basepath: <span class="st0">&quot;http://beispiel.de&quot;</span> &nbsp; <br />
securepages_basepath_ssl: <span class="st0">&quot;https://beispiel.de&quot;</span></code></pre><p>Auch das Modul <a
href="http://drupal.org/project/mobile_tools">Mobile Tools</a> speichert URLs für Mobil- und Desktop-Version einer Website als Variablen. Solche Variablen müssen für die Test-Website angepasst werden.</p><pre class="lang-bash"><code>drush @<span class="kw3">test</span> vset securepages_basepath http://<span class="kw3">test</span>.beispiel.de &nbsp; <br />
drush @<span class="kw3">test</span> vset securepages_basepath_ssl https://<span class="kw3">test</span>.beispiel.de</code></pre><p>Einen Schnelltest bietet:</p><pre class="lang-bash"><code>drush @<span class="kw3">test</span> vget | <span class="kw2">grep</span> beispiel.de</code></pre><p>Man sollte sich jedoch nicht ausschließlich auf diesen Schnelltest verlassen.</p><div
class="betterrelated"><p><strong>Ähnliche Beiträge:</strong></p><ol><li> <a
href="http://niebegeg.net/2010/12/12/aktive-drupal-website-auf-den-pc-spiegeln/" title="Permanent link to Aktive Drupal-Website auf den PC spiegeln">Aktive Drupal-Website auf den PC spiegeln</a></li><li> <a
href="http://niebegeg.net/2012/01/19/multisites-mit-drupal-schoen-wars/" title="Permanent link to Multisites mit Drupal &#8211; schön wars">Multisites mit Drupal &#8211; schön wars</a></li><li> <a
href="http://niebegeg.net/2010/11/13/mal-eben-ein-drupal-backup/" title="Permanent link to Mal eben ein Drupal-Backup!">Mal eben ein Drupal-Backup!</a></li><li> <a
href="http://niebegeg.net/2009/07/09/drupal-fuer-admins-drush/" title="Permanent link to Drupal für Admins: Drush">Drupal für Admins: Drush</a></li><li> <a
href="http://niebegeg.net/2010/01/08/backup_migrate-drush-happy-days/" title="Permanent link to backup_migrate + drush = happy days :)">backup_migrate + drush = happy days :)</a></li></ol></div><p><a
href="https://dirkr.fornax.uberspace.de/?flattrss_redirect&amp;id=381&amp;md5=9ead57c9cd82119e21d1ed901f67e154" title="Flattr" target="_blank"><img
src="http://niebegeg.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded> <wfw:commentRss>http://niebegeg.net/2010/11/24/drush-site-alias-ein-sicherheitsnetz-fur-die-drupal-website-entwicklung/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <atom:link rel="payment" href="https://dirkr.fornax.uberspace.de/?flattrss_redirect&amp;id=381&amp;md5=9ead57c9cd82119e21d1ed901f67e154" type="text/html" /> </item> <item><title>Mal eben ein Drupal-Backup!</title><link>http://niebegeg.net/2010/11/13/mal-eben-ein-drupal-backup/</link> <comments>http://niebegeg.net/2010/11/13/mal-eben-ein-drupal-backup/#comments</comments> <pubDate>Sat, 13 Nov 2010 21:37:29 +0000</pubDate> <dc:creator>Dirk Rüdiger</dc:creator> <category><![CDATA[Drupal]]></category> <category><![CDATA[Backup]]></category> <category><![CDATA[Drush]]></category> <category><![CDATA[Intranet]]></category> <category><![CDATA[Modul]]></category> <guid
isPermaLink="false">http://wp.niebegeg.net/?p=372</guid> <description><![CDATA[Anmerkung: Dieser Post erschien ursprünglich im PartMaster-Blog. Beim Entwickeln einer Drupal-Website gehören bei mir ein paar Module immer auf die Liste der unbedingt zu installierenden Verwaltungsmodule. Neben dem Admin-Modul und den Themes Tao und Rubik ist da vor allem das Backup and Migrate-Modul zu nennen. Ich installiere es auf nahezu allen Drupal-Websites, egal ob die [...]]]></description> <content:encoded><![CDATA[<p><em>Anmerkung: Dieser Post erschien ursprünglich im <a
href="http://www.partmaster.de/blog">PartMaster-Blog</a>.</em></p><p>Beim Entwickeln einer Drupal-Website gehören bei mir ein paar Module immer auf die Liste der unbedingt zu installierenden Verwaltungsmodule. Neben dem <a
href="http://drupal.org/project/admin">Admin</a>-Modul und den Themes <a
href="http://drupal.org/project/tao">Tao</a> und <a
href="http://drupal.org/project/rubik">Rubik</a> ist da vor allem das <a
href="http://drupal.org/project/backup_migrate">Backup and Migrate</a>-Modul zu nennen. Ich installiere es auf nahezu allen Drupal-Websites, egal ob die Installation in einem shared Webhosting erfolgt oder auf meinen eigenen Servern.</p><p>Zur Funktion des Moduls: <em>Backup and Migrate</em> erstellt manuell oder zeitgesteuert einen Abzug (Dump) der Drupal-Datenbank in eine Datei. Man kann einzelne Datenbanktabellen komplett vom Backup ausgeklammern oder nur deren Struktur sichern. Diese Datei kann beim Backup gleich noch komprimiert werden. Ein solcher Datenbank-Dump wird bei Bedarf per Mausklick wieder in die Datenbank importiert und ersetzt dabei den vorhandenen Datenbankinhalt. Man kann mehrere Profile anlegen und so bei Bedarf verschiedene Sets von Datenbanktabellen sichern, z.B. bei manuellen Backups keine Watchdog-, Session- und Cache-Tabellen, wohl aber bei der täglichen Sicherung.<br
/> Das Modul bringt vorbildliche drush-Integration mit, so dass ein Backup oder Restore mal schnell von der Kommandozeile erledigt werden kann.</p><p>Mein aktueller Fall: Gerade übertrage ich unser Intranet-Portal von einer seit Jahren produktiven Eigenbau-Drupal-Instanz in eine <a
href="http://openatrium.com">OpenAtrium</a>-Installation. Auf der bisherigen Site haben sich eine Vielzahl selbstgebauter Inhaltstypen, Ansichten und jede Menge Beiträge (Nodes) angesammelt, die möglichst auf das in OpenAtrium vorgegebene Repertoire an Inhaltstypen (Buchseiten, Blogpost, Projekte und Aufgaben) abgebildet und in die jeweils passende Gruppe einsortiert werden sollen. Details zu der Migration werde ich später beschreiben, aber es sind verschiedene Strategien am Start und es hat viel mit Probieren und Testen zu tun.</p><p>Bei dieser Aufgabe unterstützt mich <em>Backup and Migrate</em> bestens, in dem ich nach jeder erfolgreichen Übertragung von Inhalten oder Konfigurations"orgien" ein manuelles Backup erstelle, ähnlich einem Wiederherstellungspunkt bei Windows, oder, um ein besseres Beispiel zu finden: einem git-commit ;)<br
/> Schlägt beim nächsten Arbeitsgang ein Node-Import fehl oder haben die importierten Inhalte noch nicht die erwartete Güte, dann wird das letzte Backup mit einem Klick wieder eingespielt, und ein die Importstrategie kann verbessert nochmals angewendet werden.</p><p><em>Backup and Migrate</em> bietet auch die Möglichkeit, zeitgesteuert und automatisch beim Cron-Lauf eine Datenbanksicherung durchzuführen. Üblicherweise stelle ich als Zeitplan eine Datensicherung alle 24 Stunden ein und erhalte mir die drei letzten Backups. So kann man leicht auf aus Drupal heraus auf einen früheren Stand zurückgreifen, ohne die Datenbankdatei aus dem Serverbackup wieder herstellen zu müssen.</p><p>Es ist natürlich auch möglich, mal schnell Veränderungen an der Drupal-Site mittels Vergleich von zwei Datenbank-Dumps herauszufinden:</p><pre class="lang-bash"><code><span class="kw3">cd</span> files/backup_migrate<br />
vim -d scheduled/bak<span class="nu0">-2010</span><span class="nu0">-11</span>-12T00<span class="nu0">-21</span><span class="nu0">-25</span>.mysql \ &nbsp; <br />
&nbsp; &nbsp; &nbsp; manual/bak<span class="nu0">-2010</span><span class="nu0">-11</span>-12T21<span class="nu0">-22</span><span class="nu0">-41</span>.mysql</code></pre><p>Das Modul ersetzt jedoch keine Datensicherung auf Serverebene, sondern bildet eine sinnvolle Ergänzung dazu. Auch werden mit dem Modul keine Dateien gesichert, der Schnappschuss ist also nicht vollständig. Mit <a
href="http://git-scm.com">Git</a> hat man jedoch einen guten Helfer für gleichzeitige Snapshots des Dateisystems.</p><p>So hat mir <em>Backup and Migrate</em> schon manche Stunde Arbeitszeit gespart.</p><p>Und noch eine Anmerkung: Bei größeren Projekten und komplexeren Setups mit Development-, Staging- und Live Sites ist man mit <a
href="http://git-scm.com">Git</a>, <a
href="http://drupal.org/project/drush_make">Drush make</a> und <a
href="http://drupal.org/project/features">Features</a> natürlich besser aufgestellt. Aber auch das ist eine andere Geschichte, die ich für später aufhebe. ;)</p><div
class="betterrelated"><p><strong>Ähnliche Beiträge:</strong></p><ol><li> <a
href="http://niebegeg.net/2010/11/24/drush-site-alias-ein-sicherheitsnetz-fur-die-drupal-website-entwicklung/" title="Permanent link to Drush site-alias &#8211; ein Sicherheitsnetz für die Drupal-Website-Entwicklung">Drush site-alias &#8211; ein Sicherheitsnetz für die Drupal-Website-Entwicklung</a></li><li> <a
href="http://niebegeg.net/2010/01/08/backup_migrate-drush-happy-days/" title="Permanent link to backup_migrate + drush = happy days :)">backup_migrate + drush = happy days :)</a></li><li> <a
href="http://niebegeg.net/2010/12/12/aktive-drupal-website-auf-den-pc-spiegeln/" title="Permanent link to Aktive Drupal-Website auf den PC spiegeln">Aktive Drupal-Website auf den PC spiegeln</a></li><li> <a
href="http://niebegeg.net/2012/01/19/multisites-mit-drupal-schoen-wars/" title="Permanent link to Multisites mit Drupal &#8211; schön wars">Multisites mit Drupal &#8211; schön wars</a></li><li> <a
href="http://niebegeg.net/2009/07/09/drupal-fuer-admins-drush/" title="Permanent link to Drupal für Admins: Drush">Drupal für Admins: Drush</a></li></ol></div><p><a
href="https://dirkr.fornax.uberspace.de/?flattrss_redirect&amp;id=372&amp;md5=c49218bf3c64325b44d438a5d94e236d" title="Flattr" target="_blank"><img
src="http://niebegeg.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded> <wfw:commentRss>http://niebegeg.net/2010/11/13/mal-eben-ein-drupal-backup/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <atom:link rel="payment" href="https://dirkr.fornax.uberspace.de/?flattrss_redirect&amp;id=372&amp;md5=c49218bf3c64325b44d438a5d94e236d" type="text/html" /> </item> <item><title>backup_migrate + drush = happy days :)</title><link>http://niebegeg.net/2010/01/08/backup_migrate-drush-happy-days/</link> <comments>http://niebegeg.net/2010/01/08/backup_migrate-drush-happy-days/#comments</comments> <pubDate>Wed, 30 Nov -0001 00:00:00 +0000</pubDate> <dc:creator>Dirk Rüdiger</dc:creator> <category><![CDATA[Drupal]]></category> <category><![CDATA[Backup]]></category> <category><![CDATA[Drush]]></category> <category><![CDATA[Modul]]></category> <guid
isPermaLink="false"></guid> <description><![CDATA[Das backup_migrate.module gehört bei allen von mir administrierten Websites zu den Modulen, die gleich nach der Drupal-Installation installiert und aktiviert werden, selbst wenn ich tägliche Backups der MySQL-DB und des gesamten Rechners erstelle. Was mir noch fehlte, war die Einbindung in drush, um &#8220;mal eben&#8221; einen DB-Schnappschuss erstellen zu können. So hatte ich mir für [...]]]></description> <content:encoded><![CDATA[<p>Das <a
href="http://drupal.org/project/backup_migrate">backup_migrate.module</a> gehört bei allen von mir administrierten Websites zu den Modulen, die gleich nach der Drupal-Installation installiert und aktiviert werden, selbst wenn ich tägliche Backups der MySQL-DB und des gesamten Rechners erstelle.</p><p>Was mir noch fehlte, war die Einbindung in <a
href="http://drupal.org/project/drush">drush</a>, um &#8220;mal eben&#8221; einen DB-Schnappschuss erstellen zu können.  So hatte ich mir für die erste Januarwoche vorgenommen, ein kleines Modul zu bauen, welches genau dies implementiert. Und siehe da: Die <a
href="http://drupal.org/node/652370">2.x-Linie</a> des Moduls bringt die Funktionalität schon mit!</p><pre> bam backup            Backup the site&#39;s database with Backup and Migrate.
 bam restore           Restore the site&#39;s database with Backup and Migrate.
 bam destinations      Get a list of available destinations.
 bam sources           Get a list of available sources.
 bam profiles          Get a list of available settings profiles.
 bam backups           Get a list of previously created backup files.
</pre><p>Ein kurzes</p><pre>drush dl backup_migrate
drush updatedb
</pre><p>erledigte das Update von der bisherigen Version 1.2 auf 2.2. Danke <a
href="http://drupal.org/user/72815">Ronan</a>!</p><div
class="betterrelated"><p><strong>Ähnliche Beiträge:</strong></p><ol><li> <a
href="http://niebegeg.net/2010/11/13/mal-eben-ein-drupal-backup/" title="Permanent link to Mal eben ein Drupal-Backup!">Mal eben ein Drupal-Backup!</a></li><li> <a
href="http://niebegeg.net/2010/11/24/drush-site-alias-ein-sicherheitsnetz-fur-die-drupal-website-entwicklung/" title="Permanent link to Drush site-alias &#8211; ein Sicherheitsnetz für die Drupal-Website-Entwicklung">Drush site-alias &#8211; ein Sicherheitsnetz für die Drupal-Website-Entwicklung</a></li><li> <a
href="http://niebegeg.net/2009/07/09/drupal-fuer-admins-drush/" title="Permanent link to Drupal für Admins: Drush">Drupal für Admins: Drush</a></li><li> <a
href="http://niebegeg.net/2007/12/16/changing-of-the-db_prefix-of-the-drupal-database/" title="Permanent link to Changing of the $db_prefix of the Drupal database">Changing of the $db_prefix of the Drupal database</a></li><li> <a
href="http://niebegeg.net/2010/12/19/der-schnellste-weg-zur-drush-installation/" title="Permanent link to Der schnellste Weg zur Drush-Installation">Der schnellste Weg zur Drush-Installation</a></li></ol></div><p><a
href="https://dirkr.fornax.uberspace.de/?flattrss_redirect&amp;id=268&amp;md5=15324f796c5d978bdc5e93074e523f44" title="Flattr" target="_blank"><img
src="http://niebegeg.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded> <wfw:commentRss>http://niebegeg.net/2010/01/08/backup_migrate-drush-happy-days/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <atom:link rel="payment" href="https://dirkr.fornax.uberspace.de/?flattrss_redirect&amp;id=268&amp;md5=15324f796c5d978bdc5e93074e523f44" type="text/html" /> </item> <item><title>The internet never forgets &#8230; and that is bad!</title><link>http://niebegeg.net/2007/11/25/the-internet-never-forgets-and-that-is-bad/</link> <comments>http://niebegeg.net/2007/11/25/the-internet-never-forgets-and-that-is-bad/#comments</comments> <pubDate>Sun, 25 Nov 2007 22:05:06 +0000</pubDate> <dc:creator>Dirk Rüdiger</dc:creator> <category><![CDATA[Drupal]]></category> <category><![CDATA[Backup]]></category> <category><![CDATA[Internet]]></category> <category><![CDATA[Website]]></category> <guid
isPermaLink="false"></guid> <description><![CDATA[I just found a website called the Internet Archive and it&#8217;s WayBackMachine. You can enter a website URL and it brings you a table of the dates it has snapshots of this website. So I entered my former homepage URL and was in the unexpected situation that I could see the page as it looked [...]]]></description> <content:encoded><![CDATA[<div
class="field field-type-filefield field-field-image"><div
class="field-items"><div
class="field-item odd"> <a
href="/wp-content/uploads/website-screenshot-2002_0.png" title="A screenshot of my website as of 2002. It was a link collection, created with vim in plain HTML." class="thickbox" rel="gallery-14"><img
src="/wp-content/uploads/website-screenshot-2002_0.png" alt="" title="A screenshot of my website as of 2002. It was a link collection, created with vim in plain HTML."  class="imagecache imagecache-preview" width="250" height="202" /></a></div></div></div><p>I just found a website called the <a
href="http://www.archive.org">Internet Archive</a> and it&#8217;s WayBackMachine. You can enter a website <span
class="caps">URL</span> and it brings you a table of the dates it has snapshots of this website. So I entered my former homepage <span
class="caps">URL</span> and was in the unexpected situation that I could see the page as it looked like in 2002 (look at the screenshot below).</p><p>I don&#8217;t have the code base of these pages (plain <span
class="caps">HTML</span>, written using <a
href="http://www.vim.org">Vim</a> and organized with <span
class="caps">CVS</span> as the footer message reveals)  and I didn&#8217;t miss it either. I think forgeting and (ony limited) rememberance is a high value of our brain. And if I don&#8217;t like to remember my old website and dropped these bytes from my computers hard disk, it might have happened because it was time doing so. Why do other people think these bytes need to be kept for future generations?</p><p>Hey guys: Take the money you spend for maintaining this archive (you claim to have currently&nbsp; 85 billion pages in your archive) and invest it in useful things! You need a clue? Donate some hundret <a
href="http://laptop.org">one laptop per child</a> notebooks to some schools in asia or africa.</p><div
class="betterrelated"><p><strong>Ähnliche Beiträge:</strong></p><ol><li> <a
href="http://niebegeg.net/2008/02/15/sql-developer-your-friend-for-oracle-dbs/" title="Permanent link to SQL Developer &#8211; your friend for Oracle DBs">SQL Developer &#8211; your friend for Oracle DBs</a></li><li> <a
href="http://niebegeg.net/2010/03/15/die-gruppenseite-der-rostocker-drupaler-zieht-um/" title="Permanent link to Die Gruppenseite der Rostocker Drupaler zieht um">Die Gruppenseite der Rostocker Drupaler zieht um</a></li><li> <a
href="http://niebegeg.net/2008/04/13/mandriva-linux-2008-spring-my-first-upgrade/" title="Permanent link to Mandriva Linux 2008 Spring &#8211; my first upgrade">Mandriva Linux 2008 Spring &#8211; my first upgrade</a></li><li> <a
href="http://niebegeg.net/2008/02/02/sql-explorer-getting-familiar-with-databases/" title="Permanent link to SQL Explorer: Getting familiar with Databases">SQL Explorer: Getting familiar with Databases</a></li><li> <a
href="http://niebegeg.net/2008/03/02/was-ist-dein-seitwert/" title="Permanent link to Was ist Dein Seitwert?">Was ist Dein Seitwert?</a></li></ol></div><p><a
href="https://dirkr.fornax.uberspace.de/?flattrss_redirect&amp;id=14&amp;md5=926bda69615061973235a6fdcc618316" title="Flattr" target="_blank"><img
src="http://niebegeg.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded> <wfw:commentRss>http://niebegeg.net/2007/11/25/the-internet-never-forgets-and-that-is-bad/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <atom:link rel="payment" href="https://dirkr.fornax.uberspace.de/?flattrss_redirect&amp;id=14&amp;md5=926bda69615061973235a6fdcc618316" type="text/html" /> </item> <item><title>Enhancing Window&#8217;s tiny backup program</title><link>http://niebegeg.net/2007/10/12/enhancing-windows-tiny-backup-program/</link> <comments>http://niebegeg.net/2007/10/12/enhancing-windows-tiny-backup-program/#comments</comments> <pubDate>Wed, 30 Nov -0001 00:00:00 +0000</pubDate> <dc:creator>Dirk Rüdiger</dc:creator> <category><![CDATA[Backup]]></category> <category><![CDATA[Perl]]></category> <category><![CDATA[Windows]]></category> <guid
isPermaLink="false"></guid> <description><![CDATA[Recently I had to implement a backup strategy on a windows server and the only available software option was windows&#8217; built-in backup program ntbackup. Unfortunatly it&#8217;s name really exposes its technological niveau: It is not possible to store the individual backup files next to each other. All backups are stored in one single file (don&#8217;t [...]]]></description> <content:encoded><![CDATA[<p>Recently I had to implement a backup strategy on a windows server and the only available software option was windows&#8217; built-in backup program ntbackup. Unfortunatly it&#8217;s name really exposes its technological niveau:</p><ul><li>It is not possible to store the individual backup files next to each other. All backups are stored in one single file (don&#8217;t think about the consequences of a single read error when opening the file) or one backup replaces the previous backup with the same file name.</li><li>It&#8217;s not possible to define any measures to manage the space on the backup media an remove older backups depending on their age or the used space on the backup media.</li><li>It is not&nbsp; possible to define a sophisticated backup policy: only full OR incremental OR differential backups are possible.</li><li>...</li></ul><p>So I decided to install Perl (because Perl is my scripting language of choice) on the server and write a small script that does exactly that. It renames the backup file (originally named backup.bkf) and appends the timestamp to the file name. It also observes the free space on the backup media and deletes the oldest backups so that a certain amount of disk space is assured for the next backup run. To keep the script simple the path to the backup folder, the available disk space and the required free disk space (depending on the size of one backup file). I run this script as a &quot;planned task&quot; one hour before the ntbackup task will run. Its working without problems on a server for about 6 months.</p><table
id="attachments" class="sticky-enabled"><thead><tr><th>Anhang</th><th>Größe</th></tr></thead><tbody><tr
class="odd"><td><a
href="/wp-content/uploads/update-backups.pl.txt">update-backups.pl</a></td><td>1.36 KB</td></tr></tbody></table><div
class="betterrelated"><p><strong>Ähnliche Beiträge:</strong></p><ol><li> <a
href="http://niebegeg.net/2010/01/08/backup_migrate-drush-happy-days/" title="Permanent link to backup_migrate + drush = happy days :)">backup_migrate + drush = happy days :)</a></li><li> <a
href="http://niebegeg.net/2012/02/04/duplicity-backups-wiederherstellen/" title="Permanent link to Duplicity-Backups wiederherstellen">Duplicity-Backups wiederherstellen</a></li><li> <a
href="http://niebegeg.net/2008/11/16/ein-paar-perl-tage-in-sicht-einsteigerkurs-am-zgdv/" title="Permanent link to Ein paar Perl-Tage in Sicht: Einsteigerkurs am ZGDV">Ein paar Perl-Tage in Sicht: Einsteigerkurs am ZGDV</a></li><li> <a
href="http://niebegeg.net/2008/01/14/they-call-it-a-server/" title="Permanent link to They call it a server">They call it a server</a></li><li> <a
href="http://niebegeg.net/2010/11/13/mal-eben-ein-drupal-backup/" title="Permanent link to Mal eben ein Drupal-Backup!">Mal eben ein Drupal-Backup!</a></li></ol></div><p><a
href="https://dirkr.fornax.uberspace.de/?flattrss_redirect&amp;id=9&amp;md5=75c64721376b87a17b165f60ff4d870e" title="Flattr" target="_blank"><img
src="http://niebegeg.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded> <wfw:commentRss>http://niebegeg.net/2007/10/12/enhancing-windows-tiny-backup-program/feed/</wfw:commentRss> <slash:comments>2</slash:comments> <atom:link rel="payment" href="https://dirkr.fornax.uberspace.de/?flattrss_redirect&amp;id=9&amp;md5=75c64721376b87a17b165f60ff4d870e" type="text/html" /> </item> </channel> </rss>
