<?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</title> <atom:link href="http://niebegeg.net/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>Polizeiwache 2.0</title><link>http://niebegeg.net/2012/02/06/polizeiwache-2-0/</link> <comments>http://niebegeg.net/2012/02/06/polizeiwache-2-0/#comments</comments> <pubDate>Mon, 06 Feb 2012 20:23:52 +0000</pubDate> <dc:creator>Dirk Rüdiger</dc:creator> <category><![CDATA[Und sonst so]]></category> <category><![CDATA[Blitzer]]></category> <category><![CDATA[Brandenburg]]></category> <category><![CDATA[Polizei]]></category> <category><![CDATA[Web 2.0]]></category> <guid
isPermaLink="false">http://niebegeg.net/?p=717</guid> <description><![CDATA[Heute bekam ich Post von der Polizei, genauer von der Bußgeldstelle in Gransee ... aus Gründen. Wir sind ja kürzlich mal mit 'nem Auto gefahren. Das Formular war 3 Seiten lang. Der beiliegende Zahlschein war auf ~A4 ausgedruckt. Das Foto jedoch, wichtigstes Indiz bei der "Zeugenbefragung", war nicht enthalten. Ich konnte mich auf einer Website [...]]]></description> <content:encoded><![CDATA[<p><img
class="alignleft size-thumbnail wp-image-719" title="Blitzer_A10" src="https://dirkr.fornax.uberspace.de/wp-content/uploads/2012/02/Blitzer_A10-150x150.jpg" alt="" width="150" height="150" />Heute bekam ich Post von der Polizei, genauer von der Bußgeldstelle in Gransee ... aus Gründen. Wir sind ja kürzlich mal mit 'nem Auto gefahren.</p><p>Das Formular war 3 Seiten lang. Der beiliegende Zahlschein war auf ~A4 ausgedruckt. Das Foto jedoch, wichtigstes Indiz bei der "Zeugenbefragung", war nicht enthalten. Ich konnte mich auf einer Website der Brandenburger Polizei einloggen, um mir die Bilder anzusehen. Recht umständlich.</p><p>Wahrscheinlich ist es eine Web 2.0-Offensive der Polizei -- ein anschauliches Beispiel des Mitmach-Webs: Bürger können sich auf einer Polizei-Website einloggen und irgendwie auch abstimmen. In meinem Fal über die Qualität der Bitzerfotos.</p><p>Prinzipiell begrüße ich ja solchen Bestrebungen sehr. In diesem Fall wäre es jedoch sinnvoller gewesen, die Fotos auf Seite 4 des Protokolls auszudrucken und die zusätzlichen Druckkosten bei Überweisungsträgern im Formt A5 wieder reinzuholen.</p><div
class="betterrelated none"><p>Keinen verwandten Inhalt Inhalt gefunden.</p></div><p><a
href="https://dirkr.fornax.uberspace.de/?flattrss_redirect&amp;id=717&amp;md5=13cb360813d4bfa9947d507294edd5dc" 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/06/polizeiwache-2-0/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=dirkr&amp;url=http%3A%2F%2Fniebegeg.net%2F2012%2F02%2F06%2Fpolizeiwache-2-0%2F&amp;language=de_DE&amp;category=text&amp;title=Polizeiwache+2.0&amp;description=Heute+bekam+ich+Post+von+der+Polizei%2C+genauer+von+der+Bu%C3%9Fgeldstelle+in+Gransee+...+aus+Gr%C3%BCnden.+Wir+sind+ja+k%C3%BCrzlich+mal+mit+%27nem+Auto+gefahren.%0D%0A%0D%0ADas+Formular+war+3+Seiten+lang.+Der+beiliegende+Zahlschein+war+auf+%7EA4+ausgedruckt.+Das+Foto+jedoch%2C+wichtigstes+Indiz+bei+der+%22Zeugenbefragung%22%2C+war+nicht+enthalten.+Ich+konnte+mich+auf+einer+Website+der+Brandenburger+Polizei+einloggen%2C+um+mir+die+Bilder+anzusehen.+Recht+umst%C3%A4ndlich.%0D%0A%0D%0AWahrscheinlich+ist+es+eine+Web+2.0-Offensive+der+Polizei+--+ein+anschauliches+Beispiel+des+Mitmach-Webs%3A+B%C3%BCrger+k%C3%B6nnen+sich+auf+einer+Polizei-Website+einloggen+und+irgendwie+auch+abstimmen.+In+meinem+Fal+%C3%BCber+die+Qualit%C3%A4t+der+Bitzerfotos.%0D%0A%0D%0APrinzipiell+begr%C3%BC%C3%9Fe+ich+ja+solchen+Bestrebungen+sehr.+In+diesem+Fall+w%C3%A4re+es+jedoch+sinnvoller+gewesen%2C+die+Fotos+auf+Seite+4+des+Protokolls+auszudrucken+und+die+zus%C3%A4tzlichen+Druckkosten+bei+%C3%9Cberweisungstr%C3%A4gern+im+Formt+A5+wieder+reinzuholen.&amp;tags=Blitzer%2CBrandenburg%2CPolizei%2CWeb+2.0%2Cblog" type="text/html" /> </item> <item><title>Meine gesammelten Drush-Sessions</title><link>http://niebegeg.net/2012/02/05/meine-gesammelten-drush-sessions/</link> <comments>http://niebegeg.net/2012/02/05/meine-gesammelten-drush-sessions/#comments</comments> <pubDate>Sun, 05 Feb 2012 19:53:01 +0000</pubDate> <dc:creator>Dirk Rüdiger</dc:creator> <category><![CDATA[Drupal]]></category> <category><![CDATA[Community]]></category> <category><![CDATA[drupalcamp]]></category> <category><![CDATA[Drush]]></category> <category><![CDATA[Session]]></category> <guid
isPermaLink="false">http://niebegeg.net/?p=659</guid> <description><![CDATA[Im vergangenen Jahr habe ich zwei Sessions zu Drush gehalten: im März beim Drupal Day MV und im September beim DrupalCamp Berlin. Da ich nicht weiß, wie lange die ursprünglichen Websites noch "am Netz" sind, möchte ich auf dieser Seite alle Ressourcen zusammentragen. Drush-Session v1.0 in Deutsch Beim Drupal Day MV im März 2011 hielt [...]]]></description> <content:encoded><![CDATA[<p>Im vergangenen Jahr habe ich zwei Sessions zu Drush gehalten: im März beim <a
href="http://ddmv11.drupal-mv.de" title="Drupal Day MV-Website">Drupal Day MV</a> und im September beim <a
href="http://drupalcity.de/" title="DrupalCamp Berlin">DrupalCamp Berlin</a>.</p><p>Da ich nicht weiß, wie lange die ursprünglichen Websites noch "am Netz" sind, möchte ich auf dieser Seite alle Ressourcen zusammentragen.</p><h2>Drush-Session v1.0 in Deutsch</h2><p>Beim Drupal Day MV im März 2011 hielt ich den Drush-Vortrag zum ersten Mal und in Deutsch.</p><ul><li><a
href="http://ddmv11.drupal-mv.de/sessions/drush-website-administration-leicht-gemacht">Vorstellung der Session auf der DrupalDay-Website</a></li><li><a
href='/wp-content/uploads/2012/02/Drush-Website-Administration-leicht-gemacht.pdf'>Drush - Website-Administration leicht gemacht</a> als PDF</li><li><a
href="http://www.archive.org/details/Drush-Website-administrationLeichtGemacht">Drush-Website-administrationLeichtGemacht</a>, der Video-Mitschnitt auf <a
href="http://www.archive.org/">archive.org</a></li></ul><h2>Drush-Session v2.0 in Englisch</h2><p>Ich hatte die Session vom Drupal Day MV noch mal für das DrupalCamp in Berlin eingereicht, diesmal in Englisch.
Die Gelegenheit habe genutzt, die "Folien" nicht nur ins Englische zu übersetzen, sondern auch inhaltlich zu überarbeiten und mit meinem Wissensstand abzugleichen. Dem Englisch-Kundingen empfehle ich also dieses PDF (aber nicht das Video ;)</p><ul><li><a
href="http://drupalcity.de/session/drush-managing-drupal-powerful-way">Vorstellung der Session auf der DrupalCamp-Website</a></li><li><a
href='/wp-content/uploads/2012/02/drush_-_managing_drupal_-_the_easy_approach_v2.pdf'>Drush - managing drupal -  the easy approach</a> als PDF,</li><li><a
href="http://vimeo.com/31519168">Drush - managing drupal -  the easy approach</a>, der Video-Mitschnitt auf <a
href="http://vimeo.com/">Vimeo</a>.</li></ul><p>Damit haben ich (nahezu) alles zu Drush gesagt, für meine nächste Session werde ich mir ein neues Thema suchen. Wenngleich die <a
href="http://drush.ws/examples/example.aliases.drushrc.php">site aliases</a> mit ihrer Mächtigkeit noch ein paar Blogposts verdient hätten. :)</p><div
class="betterrelated"><p><strong>Ähnliche Beiträge:</strong></p><ol><li> <a
href="http://niebegeg.net/2011/09/21/drupalcamp-in-berlin/" title="Permanent link to DrupalCamp in Berlin">DrupalCamp in Berlin</a></li><li> <a
href="http://niebegeg.net/2011/03/16/drupal-day-mv-ein-rueckblick/" title="Permanent link to Drupal Day MV &#8211; ein Rückblick">Drupal Day MV &#8211; ein Rückblick</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/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></ol></div><p><a
href="https://dirkr.fornax.uberspace.de/?flattrss_redirect&amp;id=659&amp;md5=5faa09a10997059776dab7f338240a26" 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/05/meine-gesammelten-drush-sessions/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=dirkr&amp;url=http%3A%2F%2Fniebegeg.net%2F2012%2F02%2F05%2Fmeine-gesammelten-drush-sessions%2F&amp;language=de_DE&amp;category=text&amp;title=Meine+gesammelten+Drush-Sessions&amp;description=Im+vergangenen+Jahr+habe+ich+zwei+Sessions+zu+Drush+gehalten%3A+im+M%C3%A4rz+beim+Drupal+Day+MV+und+im+September+beim+DrupalCamp+Berlin.+%0D%0A%0D%0ADa+ich+nicht+wei%C3%9F%2C+wie+lange+die+urspr%C3%BCnglichen+Websites+noch+%22am+Netz%22+sind%2C+m%C3%B6chte+ich+auf+dieser+Seite+alle+Ressourcen+zusammentragen.%0D%0A%0D%0A%23%23+Drush-Session+v1.0+in+Deutsch%0D%0A%0D%0ABeim+Drupal+Day+MV+im+M%C3%A4rz+2011+hielt+ich+den+Drush-Vortrag+zum+ersten+Mal+und+in+Deutsch.%0D%0A%0D%0A%2A+%5BVorstellung+der+Session+auf+der+DrupalDay-Website%5D%28http%3A%2F%2Fddmv11.drupal-mv.de%2Fsessions%2Fdrush-website-administration-leicht-gemacht%29%0D%0A%2A+Drush+-+Website-Administration+leicht+gemacht+als+PDF%0D%0A%2A+%5BDrush-Website-administrationLeichtGemacht%5D%28http%3A%2F%2Fwww.archive.org%2Fdetails%2FDrush-Website-administrationLeichtGemacht%29%2C+der+Video-Mitschnitt+auf+%5Barchive.org%5D%28http%3A%2F%2Fwww.archive.org%2F%29%0D%0A%0D%0A%23%23+Drush-Session+v2.0+in+Englisch%0D%0A%0D%0AIch+hatte+die+Session+vom+Drupal+Day+MV+noch+mal+f%C3%BCr+das+DrupalCamp+in+Berlin+eingereicht%2C+diesmal+in+Englisch.%0D%0ADie+Gelegenheit+habe+genutzt%2C+die+%22Folien%22+nicht+nur+ins+Englische+zu+%C3%BCbersetzen%2C+sondern+auch+inhaltlich+zu+%C3%BCberarbeiten+und+mit+meinem+Wissensstand+abzugleichen.+Dem+Englisch-Kundingen+empfehle+ich+also+dieses+PDF+%28aber+nicht+das+Video+%3B%29%0D%0A%0D%0A%2A+%5BVorstellung+der+Session+auf+der+DrupalCamp-Website%5D%28http%3A%2F%2Fdrupalcity.de%2Fsession%2Fdrush-managing-drupal-powerful-way%29%0D%0A%2A+Drush+-+managing+drupal+-++the+easy+approach+als+PDF%2C%0D%0A%2A+%5BDrush+-+managing+drupal+-++the+easy+approach%5D%28http%3A%2F%2Fvimeo.com%2F31519168%29%2C+der+Video-Mitschnitt+auf+%5BVimeo%5D%28http%3A%2F%2Fvimeo.com%2F%29.%0D%0A%0D%0ADamit+haben+ich+%28nahezu%29+alles+zu+Drush+gesagt%2C+f%C3%BCr+meine+n%C3%A4chste+Session+werde+ich+mir+ein+neues+Thema+suchen.+Wenngleich+die+%5Bsite+aliases%5D%28http%3A%2F%2Fdrush.ws%2Fexamples%2Fexample.aliases.drushrc.php%29+mit+ihrer+M%C3%A4chtigkeit+noch+ein+paar+Blogposts+verdient+h%C3%A4tten.+%3A%29&amp;tags=Community%2CDrupal%2Cdrupalcamp%2CDrush%2CSession%2Cblog" type="text/html" /> </item> <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://flattr.com/submit/auto?user_id=dirkr&amp;url=http%3A%2F%2Fniebegeg.net%2F2012%2F02%2F04%2Fduplicity-backups-wiederherstellen%2F&amp;language=de_DE&amp;category=text&amp;title=Duplicity-Backups+wiederherstellen&amp;description=Heute+fiel+mir+auf%2C+dass+ich+noch+ein+%22paar%22+Dateien+%28einige+Git-Repositories%29+von+unserem+bereits+gek%C3%BCndigten+Server+sichern+und+auf+einen+neuen+Server+verschieben+will.+Und+dann+fiel+mir+auf%2C+dass+der+Server+bereits+vor+5+Tagen+gel%C3%B6scht+wurde.+Und+so+begann+das+Suchen+in+den+Backups.%0D%0A%0D%0AAuf++dem+Server+setzte+ich+Debian+Linux+als+Betriebssystem+und+%5Bduplicity%5D%28http%3A%2F%2Fduplicity.nongnu.org%2F%29+als+Backup-Software+ein.+Dieses+Backuptool+verschl%C3%BCsselt+die+Backups+mit+GPG-Schl%C3%BCssel%2C+somit+braucht+man+eine+intakte+%28vorzugsweise+unixartige%29+Systemumgebung+und+den++GPG-Schl%C3%BCssel%2C+mit+dem+das+Backuparchiv+erstellt+wurde.+Meine+Herausforderung+war+nun%2C+die+auf+einem+Linux-Server+erstellten+Backup-Archive+auf+dem+Mac+wieder+auszupacken%2C+um+die+wiederhergestellten+Git-Repositories+auf+einen+anderen+Server+zu+verschieben.%0D%0A%0D%0ADuplicity+bekommt+man+mit+%5BHomebrew%5D%28https%3A%2F%2Fgithub.com%2Fmxcl%2Fhomebrew%29+in+Sekundenstelle+installiert%2C+ebenso+das+Skript+%5Bduply%5D%28https%3A%2F%2Fgithub.com%2Fmxcl%2Fhomebrew%2Fblob%2Fmaster%2FLibrary%2FFormula%2Fduply.rb%29%2C+ein+Wrapper+f%C3%BCr+%5Bduplicity%5D%28https%3A%2F%2Fgithub.com%2Fmxcl%2Fhomebrew%2Fblob%2Fmaster%2FLibrary%2FFormula%2Fduplicity.rb%29%2C+der+die+Konfiguration+und+Bedienung+extrem+vereinfacht.%0D%0A%0D%0A++++%23%21bash%0D%0A++++sudo+brew+install+duplicity%0D%0A++++sudo+brew+install+duply%0D%0A%0D%0Anun+braucht+man+die+duply-Konfiguration%2C+lag+auf+dem+Server+unter+%60%2Fetc%2Fduply%60und+kann+auf+dem+Mac+in+%60%7E%2F.duply%60abgelegt+werden.+Ich+nenne+das+Backup-Set+mal+%22gitrepo%22%2C+das+Backup-Set+liegt+in+%60%7E%2Fbackups%60.+%0D%0AEs+muss+noch+in+der+Datei+%60%7E%2F.duply%2Fgitrepo%2Fconf%60+der+Pfad+zu+den+Backup-Ordnern+ge%C3%A4ndert+werden%2C+z.B.%0D%0A%0D%0A++++%23%21ini%0D%0A++++TARGET%3D%27file%3A%2F%2F%2Fvar%2Fbackups%2Fduply%2Fgitrepo%2F%27%0D%0A%0D%0Ain+%0D%0A%0D%0A++++%23%21ini%0D%0A++++TARGET%3D%27file%3A%2F%2F%2FUsers%2Fdrue%2Fbackups%2Fgitrepo%2F%27%0D%0A%0D%0ANun+kann+man+die+Wiederherstellung+starten%2C+der+GPG-Schl%C3%BCssel-ID+und+das+Passwort+steht+in+der+Duply-Konfiguration.+In+diesem+Beispiel+soll+das+Backup+ins+Verszeichnis+%60%7E%2Fgitrepo%60+wiederhergestellt+werden.%0D%0A%0D%0A++++%23%21bash%0D%0A++++%24+duply+gitrepo+restore+%7E%2Fgitrepo%0D%0A++++Start+duply+v1.5.4%2C+time+is+2012-02-03+16%3A11%3A46.%0D%0A++++Using+profile+%27%2FUsers%2Fdrue%2F.duply%2Fgitrepo%27.%0D%0A++++Using+installed+duplicity+version+0.6.17%2C+gpg+1.4.11+%28Home%3A+%7E%2F.gnupg%29.%0D%0A++++Autoset+first+GPG_KEY+entry+%2709ABCDEF%27+as+signing+key.%0D%0A++++Test+-+Encrypt+to+09ABCDEF+%26+Sign+with+09ABCDEF+%28OK%29%0D%0A++++Test+-+Decrypt+%28OK%29%0D%0A++++Test+-+Compare+%28OK%29%0D%0A++++Cleanup+-+Delete+%27%2Ftmp%2Fduply.17084.1328281906_%2A%27%28OK%29%0D%0A++++%0D%0A++++---+Start+running+command+RESTORE+at+16%3A11%3A47.000+---%0D%0A++++Max+open+files+of+120+is+too+low%2C+should+be+%3E%3D+1024.%0D%0A++++Use+%27ulimit+-n+1024%27+or+higher+to+correct.%0D%0A++++%0D%0A++++16%3A11%3A47.000+Task+%27RESTORE%27+failed+with+exit+code+%2737%27.%0D%0A%0D%0AOK%2C+es+ist+eben+kein+Server.+Duplicity+beklagt%2C+dass+die+H%C3%B6chstgrenze+gleichzeitig+ge%C3%B6ffneter+Dateien+mit+_120_+zu+gering+ist.+Das+l%C3%A4sst+sich+mit+%0D%0A%0D%0A++++%23%21bash%0D%0A++++ulimit+-n+1024%0D%0A++++%0D%0Aauf+jedem+unixartigen+System+hochsetzen.+Ein+alternatives+mac-spezifisches+Kommando+ist%0D%0A%0D%0A++++%23%21bash%0D%0A++++launchctl+limit+1024+10240%0D%0A%0D%0ANun+ein+weiterer+Versuch%3A%0D%0A%0D%0A++++%23%21bash%0D%0A++++drue%40ain%3A%7E%24+duply+gitrepo+restore+%7E%2Fgitrepo%0D%0A++++Start+duply+v1.5.4%2C+time+is+2012-02-03+16%3A10%3A32.%0D%0A++++Using+profile+%27%2FUsers%2Fdrue%2F.duply%2Fgitrepo%27.%0D%0A++++Using+installed+duplicity+version+0.6.17%2C+gpg+1.4.11+%28Home%3A+%7E%2F.gnupg%29.%0D%0A++++Autoset+first+GPG_KEY+entry+%2709ABCDEF%27+as+signing+key.%0D%0A++++Test+-+Encrypt+to+09ABCDEF+%26+Sign+with+09ABCDEF+%28OK%29%0D%0A++++Test+-+Decrypt+%28OK%29%0D%0A++++Test+-+Compare+%28OK%29%0D%0A++++Cleanup+-+Delete+%27%2Ftmp%2Fduply.16860.1328281836_%2A%27%28OK%29%0D%0A++++%0D%0A++++---+Start+running+command+RESTORE+at+16%3A10%3A36.000+---%0D%0A++++Synchronizing+remote+metadata+to+local+cache...%0D%0A++++Copying+duplicity-full-signatures.20110910T232302Z.sigtar.gpg+to+local+cache.%0D%0A++++Traceback+%28most+recent+call+last%29%3A%0D%0A++++++File+%22%2Fusr%2Flocal%2Fbin%2Fduplicity%22%2C+line+1377%2C+in+%0D%0A++++++++with_tempdir%28main%29%0D%0A++++++File+%22%2Fusr%2Flocal%2Fbin%2Fduplicity%22%2C+line+1370%2C+in+with_tempdir%0D%0A++++++++fn%28%29%0D%0A++++++File+%22%2Fusr%2Flocal%2Fbin%2Fduplicity%22%2C+line+1246%2C+in+main%0D%0A++++++++sync_archive%28decrypt%29%0D%0A++++++File+%22%2Fusr%2Flocal%2Fbin%2Fduplicity%22%2C+line+1059%2C+in+sync_archive%0D%0A++++++++copy_to_local%28fn%29%0D%0A++++++File+%22%2Fusr%2Flocal%2Fbin%2Fduplicity%22%2C+line+1008%2C+in+copy_to_local%0D%0A++++++++tdp.move%28globals.archive_dir.append%28loc_name%29%29%0D%0A++++++File+%22%2Fusr%2Flocal%2FCellar%2Fduplicity%2F0.6.17%2Flibexec%2Fduplicity%2Fpath.py%22%2C+line+617%2C+in+move%0D%0A++++++++self.copy%28new_path%29%0D%0A++++++File+%22%2Fusr%2Flocal%2FCellar%2Fduplicity%2F0.6.17%2Flibexec%2Fduplicity%2Fpath.py%22%2C+line+443%2C+in+copy%0D%0A++++++++self.copy_attribs%28other%29%0D%0A++++++File+%22%2Fusr%2Flocal%2FCellar%2Fduplicity%2F0.6.17%2Flibexec%2Fduplicity%2Fpath.py%22%2C+line+448%2C+in+copy_attribs%0D%0A++++++++util.maybe_ignore_errors%28lambda%3A+os.chown%28other.name%2C+self.stat.st_uid%2C+self.stat.st_gid%29%29%0D%0A++++++File+%22%2Fusr%2Flocal%2FCellar%2Fduplicity%2F0.6.17%2Flibexec%2Fduplicity%2Futil.py%22%2C+line+65%2C+in+maybe_ignore_errors%0D%0A++++++++return+fn%28%29%0D%0A++++++File+%22%2Fusr%2Flocal%2FCellar%2Fduplicity%2F0.6.17%2Flibexec%2Fduplicity%2Fpath.py%22%2C+line+448%2C+in+%0D%0A++++++++util.maybe_ignore_errors%28lambda%3A+os.chown%28other.name%2C+self.stat.st_uid%2C+self.stat.st_gid%29%29%0D%0A++++OSError%3A+%5BErrno+1%5D+Operation+not+permitted%3A+%27%2FUsers%2Fdrue%2F.cache%2Fduplicity%2Fduply_gitrepo%2Fduplicity-full-signatures.20110910T232302Z.sigtar.gz%27%0D%0A%0D%0AAn+dieser+Stelle+habe+ich+aufgeh%C3%B6rt%2C+mein+Gl%C3%BCck+mit+Duply+zu+veruchen%2C+da+es+abbricht%2C+weil+es+ein+paar+erweiterte+Dateiattribute+nicht+setzen+kann.+Beim+n%C3%A4chsten+Versuch+habe+ich+mir+das+eigentliche+Duplicity-Kommando+gesucht+und+im+%5BUbuntu-Hilfe-Wiki%5D%28https%3A%2F%2Fhelp.ubuntu.com%2Fcommunity%2FDuplicityBackupHowto%23Restore%29+gefunden.+Wenn+man+das+GPG-Passwort+nicht+in+der+Umgebungsvariable+%60PASSPHRASE%60+hinterlegt%2C+wird+man+bei+der+Ausf%C3%BChrung+des+Kommandos+%60duplicity+restore+...%60+erfragt.%0D%0A%0D%0A++++%23%21bash%0D%0A++++export+PASSPHRASE%3DSomeLongGeneratedHardToCrackKey%0D%0A++++duplicity+restore+file%3A%2F%2F%2FUsers%2Fdrue%2Fduply%2Fgitrepo%2F+gitrepo%0D%0A++++unset+PASSPHRASE%0D%0A%0D%0ANun+kommt+noch+immer+diese+Fehlermeldungen%3A%0D%0A%0D%0A++++%23%21plain%0D%0A++++...%0D%0A++++Error+%27%5BErrno+1%5D+Operation+not+permitted%3A+%27gitrepo%2Frepositories%2Fimage_server.git%2Fobjects%2F45%27%27+processing+.%0D%0A++++...%0D%0A%0D%0ADas+Kommando+aber+l%C3%A4uft+durch.+Ich+hatte+meine+Git-Repositories+zur%C3%BCck+und+habe+sie+mittlerweile+funktionierend+und+an+neuer+Location+wieder+am+Start.%0D%0A%0D%0A%23%23%23+Epilog%0D%0A%0D%0ADen+Beitrag+habe+ich+geschrieben%2C+um+alle+im+Netz+verstreut+liegenden+Infos+zusammenzutragen+und+den+Suchmaschinen+zu+den+Fehlermeldungen+die+passenden+Beschreibungen+zu+liefern.+%3B%29+++%0D%0AEin+wichtige+Lehre+ist+%5Bwiedermal%5D%28%2F2011%2F12%2F07%2Fder-mac-ist-weg-bist-du-vorbereitet%2F%29%3A+Hast+Du+alle+Daten+zur+Hand%2C+die+Du+zur+Wiederherstellung+brauchst.+In+diesem+Fall+waren+das+der+GPG-Schl%C3%BCssel%2C+das+zugeh%C3%B6rige+Kennwort+und+nat%C3%BCrlich+ein+m%C3%B6glichst+aktuelles+und+konsistentes+Backup.%0D%0A%0D%0AH%C3%A4tte+die+Wiederherstellung+auf+dem+Mac+nicht+funktioniert%2C+w%C3%A4re+der+n%C3%A4chste+Programmpunkt%2C+eine+%5BJiffybox%5D%28https%3A%2F%2Fwww.jiffybox.de%2F%29+mit+Debian+Linux+einzurichten%2C+die+Backups+auf+diesen+vServer+zu+transferieren+und+mit+nahezu+identischer+Systemumgebung+ausgepackt.+H%C3%A4tte+aber+ein+paar+Stunden+l%C3%A4nger+gedauert.+++%0D%0A&amp;tags=Backup%2Cduplicity%2Cduply%2CLinux%2CMac+OS%2Cblog" type="text/html" /> </item> <item><title>Suche Platz in einer Bürogemeinschaft</title><link>http://niebegeg.net/2012/01/27/suche-platz-in-einer-buerogemeinschaft/</link> <comments>http://niebegeg.net/2012/01/27/suche-platz-in-einer-buerogemeinschaft/#comments</comments> <pubDate>Fri, 27 Jan 2012 15:44:53 +0000</pubDate> <dc:creator>Dirk Rüdiger</dc:creator> <category><![CDATA[Und sonst so]]></category> <category><![CDATA[Büro]]></category> <category><![CDATA[Bürogemeinschaft]]></category> <category><![CDATA[Job]]></category> <category><![CDATA[Rostock]]></category> <category><![CDATA[Schreibtisch]]></category> <guid
isPermaLink="false">http://niebegeg.net/?p=673</guid> <description><![CDATA[Mit meinem neuen Job brauche ich ab März auch einen neuen Schreibtisch, da ich ja wie angekündigt trotz Hamburger Firmensitz weiterhin in Rostock arbeiten und leben will. Dabei habe ich die drei verlockendsten Arbeitsplatz-Optionen -- das heimische Arbeitszimmer, ein Coworking Space und ein Schreibtisch in einem anderen Büro -- miteinander verglichen und mich für letztere [...]]]></description> <content:encoded><![CDATA[<p>Mit meinem <a
href="http:///2012/01/20/mal-was-neues/" title="Blogpost: Mal was Neues">neuen Job</a> brauche ich ab März auch einen neuen Schreibtisch, da ich ja wie angekündigt trotz Hamburger Firmensitz weiterhin in Rostock arbeiten und leben will.</p><p>Dabei habe ich die drei verlockendsten Arbeitsplatz-Optionen -- das heimische Arbeitszimmer, ein <a
href="http://www.coworking-rostock.de" title="Coworking Rostock Homepage">Coworking Space</a> und ein Schreibtisch in einem anderen Büro -- miteinander verglichen und mich für letztere Alternative entschieden.</p><p>Somit suche ich zum 1. März einen Platz in einer Bürogemeinschaft in der Rostocker Innenstadt.Wenn Du eine Bürogemeinschaft oder eine kleine Firma mit freiem Schreibtisch kennst, dann schreib mir eine Mail an <em>dirk at niebegeg.net</em>. Ob wir zusammenpassen, können wir dann schnell in einem Gespräch herausfinden. Ich bin schon gespannt!</p><div
class="betterrelated none"><p>Keinen verwandten Inhalt Inhalt gefunden.</p></div><p><a
href="https://dirkr.fornax.uberspace.de/?flattrss_redirect&amp;id=673&amp;md5=e65627c84c8db4f7218fb994552e7e7e" 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/01/27/suche-platz-in-einer-buerogemeinschaft/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=dirkr&amp;url=http%3A%2F%2Fniebegeg.net%2F2012%2F01%2F27%2Fsuche-platz-in-einer-buerogemeinschaft%2F&amp;language=de_DE&amp;category=text&amp;title=Suche+Platz+in+einer+B%C3%BCrogemeinschaft&amp;description=Mit+meinem+neuen+Job+brauche+ich+ab+M%C3%A4rz+auch+einen+neuen+Schreibtisch%2C+da+ich+ja+wie+angek%C3%BCndigt+trotz+Hamburger+Firmensitz+weiterhin+in+Rostock+arbeiten+und+leben+will.%0A%0A+Dabei+habe+ich+die+drei+verlockendsten+Arbeitsplatz-Optionen+--+das+heimische+Arbeitszimmer%2C+ein+%5BCoworking+Space%5D%28http%3A%2F%2Fwww.coworking-rostock.de+%22Coworking+Rostock+Homepage%22%29+und+ein+Schreibtisch+in+einem+anderen+B%C3%BCro+--+miteinander+verglichen+und+mich+f%C3%BCr+letztere+Alternative+entschieden.+%0A%0ASomit+suche+ich+zum+1.+M%C3%A4rz+einen+Platz+in+einer+B%C3%BCrogemeinschaft+in+der+Rostocker+Innenstadt.Wenn+Du+eine+B%C3%BCrogemeinschaft+oder+eine+kleine+Firma+mit+freiem+Schreibtisch+kennst%2C+dann+schreib+mir+eine+Mail+an+_dirk+at+niebegeg.net_.+Ob+wir+zusammenpassen%2C+k%C3%B6nnen+wir+dann+schnell+in+einem+Gespr%C3%A4ch+herausfinden.+Ich+bin+schon+gespannt%21&amp;tags=B%C3%BCro%2CB%C3%BCrogemeinschaft%2CJob%2CRostock%2CSchreibtisch%2Cblog" type="text/html" /> </item> <item><title>CaptuRadio &#8211; ein Mitschnittservice fürs Internetradio</title><link>http://niebegeg.net/2012/01/24/capturadio-ein-mitschnittservice-fuers-internetradio/</link> <comments>http://niebegeg.net/2012/01/24/capturadio-ein-mitschnittservice-fuers-internetradio/#comments</comments> <pubDate>Tue, 24 Jan 2012 21:51:32 +0000</pubDate> <dc:creator>Dirk Rüdiger</dc:creator> <category><![CDATA[CaptuRadio]]></category> <category><![CDATA[Project of the month]]></category> <category><![CDATA[Feed]]></category> <category><![CDATA[Podcast]]></category> <category><![CDATA[Python]]></category> <category><![CDATA[RSS]]></category> <guid
isPermaLink="false">http://niebegeg.net/?p=653</guid> <description><![CDATA[Mit dem Wegfall meines vServers zum Monatsende und meinem Komplettumzug zu Uberspace hatte ich noch eine harte Nuss zu knacken: Bisher lief auf meinem Server ein Dienst, mit dem ich Sendungen aus dem Nachtprogramm des Deutschlandradios (später kamen auch andere Sender hinzu) mitschneiden und zeitversetzt nachhören konnte. Dieser Dienst bestand aus StreamRipper zum Mitschneiden der [...]]]></description> <content:encoded><![CDATA[<p>Mit dem Wegfall meines vServers zum Monatsende und meinem Komplettumzug zu <a
href="http://uberspace.de">Uberspace</a> hatte ich noch eine harte Nuss zu knacken: Bisher lief auf meinem Server ein Dienst, mit dem ich Sendungen aus dem Nachtprogramm des Deutschlandradios (später kamen auch andere Sender hinzu) mitschneiden und zeitversetzt nachhören konnte. Dieser Dienst bestand aus StreamRipper zum Mitschneiden der MP3-Streams, einem Perl-Skript drumherum für die Nachbearbeitung der Metadaten und einer Handvoll Cronjobs für die zeitgenaue Aufnahme.</p><p>Mit dem Umzug auf ein Shared Hosting fiel die StreamRipper-option weg. Auch war es nach den  ~4 Jahren Zeit, dass ich mir das Skript mal für ein Update vornehme.</p><p>Herausgekommen ist <a
href="https://github.com/DirkR/capturadio">CaptuRadio</a>, ein ausschließlich in Python geschriebenem Tool, der mein bisheriges Setup komplett ersetzt und ein paar neue Optionen hinzufügt. Das Projekt besteht aus zwei Skipten:</p><ul><li><a
href="https://github.com/DirkR/capturadio/blob/master/capturadio.py">capturadio.py</a> zum
Mischneiden der Streams und</li><li><a
href="https://github.com/DirkR/capturadio/blob/master/create_podcast_feed.py">create_podcast_feed.py</a> zum Generieren von RSS-Feed-Dateien in den Verzeichnissen mit den Mitschnittdateien.</li></ul><p>Weiterhin übernehmen Cronjobs die Zeitsteuerung. Ich will die Mp3-Mitschnitt-Dateien als "private Podcasts" unter einer Subdomain für mich zum Download bereitstellen, nennen wir sie <code>http://music.example.org/</code>.  Wie funktioniert das nun?</p><p>Nach der <a
href="https://github.com/DirkR/capturadio/blob/master/README.md">erfolgreichen Installation</a> wird eine Datei <code>~/.capturadiorc</code> oder <code>~/.capturadio/capturadiorc</code> erstellt und dort die Stream-URLs als Stationen definiert</p><pre class="lang-ini"><code><span class="re0"><span class="br0">&#91;</span>settings<span class="br0">&#93;</span></span><br />
<span class="re1">destination </span>=<span class="re2"> ~/music.example.org/</span><br />
<br />
<span class="re0"><span class="br0">&#91;</span>stations<span class="br0">&#93;</span></span><br />
<span class="re1">dlf </span>=<span class="re2"> http://dradio.ic.llnwd.net/stream/dradio_dlf_m_a</span><br />
<span class="re1">dkultur </span>=<span class="re2"> http://dradio.ic.llnwd.net/stream/dradio_dkultur_m_a</span></code></pre><p>Nun wird ein Cronjob definiert, der das Skript aufruft (Anmerkung: Ich habe <code>capturadio.py</code>und <code>create_podcast_feed.py</code> nach ~/bin installiert, dieser Ordner ist in meinem Pfad enthalten):</p><pre class="lang-bash"><code><span class="nu0">5</span> <span class="nu0">1</span> * * <span class="nu0">2</span> &nbsp; capturadio.py -s dlf -l <span class="nu0">3300</span> -b Nachtradio -t <span class="st0">&quot;Jazz zur Nacht&quot;</span></code></pre><p>Da in der Konfigurationsdatei im Abschnitt <code>[settings]</code> ein Wert <code>destination</code> definiert ist, werden die Mitschnitte dort abgelegt.
Nun läuft einmal je Stunde per Cronjob das Skript  `</p><pre class="lang-bash"><code>@hourly create_podcast_feed.py -r ~/music.example.org/</code></pre><p>und erzeugt in allen Ordnern unterhalb von <code>~/music.example.org/</code> eine Datei <code>rss.xml</code>, die jeweils alle darunter befindlichen MP3-Dateien als Podcastfeed ausliefern kann.</p><p>Letzte Aktion ist, eine Datei <code>.htaccess</code> im Ordner <code>~/music.example.org/</code> mit folgendem Inhalt anzulegen:</p><pre class="lang-ini"><code>DirectoryIndex rss.xml &nbsp; <br />
IndexOptions <span class="re1">Type</span>=<span class="re2">application/rss+xml</span></code></pre><p>So werden mit den "Podcast"-URLs</p><ul><li><em>http://music.example.org/</em> alle vorhandenen Mittschnitte abgerufen</li><li><em>http://music.example.org/Deutschlandfunk</em> alle vorhandenen Mittschnitte der Station mit dem Namen "Deutschlandfunk" abgerufen</li><li><em>http://music.example.org/Deutschlandfunk/Nachtradio</em> alle vorhandenen Mittschnitte der Sendung "Nachradio" im "Deutschlandfunk" abgerufen</li></ul><p>So kann ich meiner Tochter eine Kindersendung mitschneden und ihr Podcast-Client ruft nur den Feed zu ihrer Sendung ab, währenddessen ich täglich zu tn habe, all die anderen Mitschnitte nachzuhören.</p><p>Achja: Ein weitere Cronjob ist für die Verzeichnishygiene verantwortlich und löscht alle Podcasts, die älter als 7 Tage sind.</p><pre class="lang-bash"><code>@daily &nbsp; <span class="kw2">find</span> ~/music.example.org/ -mindepth <span class="nu0">1</span> -mtime <span class="nu0">+7</span> -<span class="kw3">type</span> f -name *.mp3 -<span class="kw3">exec</span> <span class="kw2">rm</span> <span class="st0">&quot;{}&quot;</span> ;</code></pre><p>Diese Miniprojekt hat erfreulicherweise nur zwei Abende in Anspruch genommen, auch dank eleganter APIs und Bibliotheken. Und ich hatte nach Jahren der Pause wieder mal Gelegenheit, mich der Programmiersprache Python zu nähern. Hat Spaß gemacht und könnte eine Fortsetzung erfahren. Mit dem Projekt bin ich natürlich auch noch nicht fertig, aber: Es läuft und ist mein aktuelles <a
href="/category/project_of_the_month/">"Projekt des Monats"</a>. :)</p><div
class="betterrelated"><p><strong>Ähnliche Beiträge:</strong></p><ol><li> <a
href="http://niebegeg.net/2009/12/17/suchen-auf-drupal-sites-macht-spass-mit-apache-solr/" title="Permanent link to Suchen auf Drupal-Sites macht Spaß mit Apache Solr!">Suchen auf Drupal-Sites macht Spaß mit Apache Solr!</a></li><li> <a
href="http://niebegeg.net/2010/09/30/quickstart-drupal/" title="Permanent link to Quickstart Drupal">Quickstart Drupal</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/2012/01/14/schnelle-ssh-aktionen-auf-allen-eigenen-uberspaces/" title="Permanent link to Schnelle ssh-Aktionen auf allen eigenen uberspaces">Schnelle ssh-Aktionen auf allen eigenen uberspaces</a></li><li> <a
href="http://niebegeg.net/2008/05/11/zattoo-fernsehen-auf-neue-art/" title="Permanent link to Zattoo &#8211; Fernsehen auf neue Art">Zattoo &#8211; Fernsehen auf neue Art</a></li></ol></div><p><a
href="https://dirkr.fornax.uberspace.de/?flattrss_redirect&amp;id=653&amp;md5=89c127555777f66de96ef0f62fbffd66" 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/01/24/capturadio-ein-mitschnittservice-fuers-internetradio/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=dirkr&amp;url=http%3A%2F%2Fniebegeg.net%2F2012%2F01%2F24%2Fcapturadio-ein-mitschnittservice-fuers-internetradio%2F&amp;language=de_DE&amp;category=text&amp;title=CaptuRadio+%26%238211%3B+ein+Mitschnittservice+f%C3%BCrs+Internetradio&amp;description=Mit+dem+Wegfall+meines+vServers+zum+Monatsende+und+meinem+Komplettumzug+zu+Uberspace+hatte+ich+noch+eine+harte+Nuss+zu+knacken%3A+Bisher+lief+auf+meinem+Server+ein+Dienst%2C+mit+dem+ich+Sendungen+aus+dem+Nachtprogramm+des+Deutschlandradios+%28sp%C3%A4ter+kamen+auch+andere+Sender+hinzu%29+mitschneiden+und+zeitversetzt+nachh%C3%B6ren+konnte.+Dieser+Dienst+bestand+aus+StreamRipper+zum+Mitschneiden+der+MP3-Streams%2C+einem+Perl-Skript+drumherum+f%C3%BCr+die+Nachbearbeitung+der+Metadaten+und+einer+Handvoll+Cronjobs+f%C3%BCr+die+zeitgenaue+Aufnahme.+%0D%0A%0D%0AMit+dem+Umzug+auf+ein+Shared+Hosting+fiel+die+StreamRipper-option+weg.+Auch+war+es+nach+den++%7E4+Jahren+Zeit%2C+dass+ich+mir+das+Skript+mal+f%C3%BCr+ein+Update+vornehme.%0D%0A%0D%0AHerausgekommen+ist+%5BCaptuRadio%5D%28https%3A%2F%2Fgithub.com%2FDirkR%2Fcapturadio%29%2C+ein+ausschlie%C3%9Flich+in+Python+geschriebenem+Tool%2C+der+mein+bisheriges+Setup+komplett+ersetzt+und+ein+paar+neue+Optionen+hinzuf%C3%BCgt.+Das+Projekt+besteht+aus+zwei+Skipten%3A%0D%0A%0D%0A%2A+%5Bcapturadio.py%5D%28https%3A%2F%2Fgithub.com%2FDirkR%2Fcapturadio%2Fblob%2Fmaster%2Fcapturadio.py%29+zum%0D%0A++Mischneiden+der+Streams+und%0D%0A%2A+%5Bcreate_podcast_feed.py%5D%28https%3A%2F%2Fgithub.com%2FDirkR%2Fcapturadio%2Fblob%2Fmaster%2Fcreate_podcast_feed.py%29+%0D%0A++zum+Generieren+von+RSS-Feed-Dateien+in+den+Verzeichnissen+mit+den+Mitschnittdateien.%0D%0A+%0D%0AWeiterhin+%C3%BCbernehmen+Cronjobs+die+Zeitsteuerung.+Ich+will+die+Mp3-Mitschnitt-Dateien+als+%22private+Podcasts%22+unter+einer+Subdomain+f%C3%BCr+mich+zum+Download+bereitstellen%2C+nennen+wir+sie+%60http%3A%2F%2Fmusic.example.org%2F%60.++Wie+funktioniert+das+nun%3F%0D%0A%0D%0ANach+der+%5Berfolgreichen+Installation%5D%28https%3A%2F%2Fgithub.com%2FDirkR%2Fcapturadio%2Fblob%2Fmaster%2FREADME.md%29+wird+eine+Datei+%60%7E%2F.capturadiorc%60+oder+%60%7E%2F.capturadio%2Fcapturadiorc%60+erstellt+und+dort+die+Stream-URLs+als+Stationen+definiert%0D%0A%0D%0A++++%23%21ini%0D%0A++++%5Bsettings%5D%0D%0A++++destination+%3D+%7E%2Fmusic.example.org%2F%0D%0A++++%0D%0A++++%5Bstations%5D%0D%0A++++dlf+%3D+http%3A%2F%2Fdradio.ic.llnwd.net%2Fstream%2Fdradio_dlf_m_a%0D%0A++++dkultur+%3D+http%3A%2F%2Fdradio.ic.llnwd.net%2Fstream%2Fdradio_dkultur_m_a%0D%0A%0D%0ANun+wird+ein+Cronjob+definiert%2C+der+das+Skript+aufruft+%28Anmerkung%3A+Ich+habe+%60capturadio.py%60und+%60create_podcast_feed.py%60+nach+%7E%2Fbin+installiert%2C+dieser+Ordner+ist+in+meinem+Pfad+enthalten%29%3A%0D%0A%0D%0A++++%23%21bash%0D%0A++++5+1+%2A+%2A+2+++capturadio.py+-s+dlf+-l+3300+-b+Nachtradio+-t+%22Jazz+zur+Nacht%22%0D%0A%0D%0ADa+in+der+Konfigurationsdatei+im+Abschnitt+%60%5Bsettings%5D%60+ein+Wert+%60destination%60+definiert+ist%2C+werden+die+Mitschnitte+dort+abgelegt.%0D%0ANun+l%C3%A4uft+einmal+je+Stunde+per+Cronjob+das+Skript++%60%0D%0A%0D%0A++++%23%21bash%0D%0A++++%40hourly+create_podcast_feed.py+-r+%7E%2Fmusic.example.org%2F%0D%0A%0D%0Aund+erzeugt+in+allen+Ordnern+unterhalb+von+%60%7E%2Fmusic.example.org%2F%60+eine+Datei+%60rss.xml%60%2C+die+jeweils+alle+darunter+befindlichen+MP3-Dateien+als+Podcastfeed+ausliefern+kann.%0D%0A%0D%0ALetzte+Aktion+ist%2C+eine+Datei+%60.htaccess%60+im+Ordner+%60%7E%2Fmusic.example.org%2F%60+mit+folgendem+Inhalt+anzulegen%3A%0D%0A%0D%0A++++%23%21ini%0D%0A++++DirectoryIndex+rss.xml+++%0D%0A++++IndexOptions+Type%3Dapplication%2Frss%2Bxml%0D%0A%0D%0ASo+werden+mit+den+%22Podcast%22-URLs%0D%0A%0D%0A%2A+%2Ahttp%3A%2F%2Fmusic.example.org%2F%2A+alle+vorhandenen+Mittschnitte+abgerufen%0D%0A%2A+%2Ahttp%3A%2F%2Fmusic.example.org%2FDeutschlandfunk%2A+alle+vorhandenen+Mittschnitte+der+Station+mit+dem+Namen+%22Deutschlandfunk%22+abgerufen%0D%0A%2A+%2Ahttp%3A%2F%2Fmusic.example.org%2FDeutschlandfunk%2FNachtradio%2A+alle+vorhandenen+Mittschnitte+der+Sendung+%22Nachradio%22+im+%22Deutschlandfunk%22+abgerufen%0D%0A%0D%0ASo+kann+ich+meiner+Tochter+eine+Kindersendung+mitschneden+und+ihr+Podcast-Client+ruft+nur+den+Feed+zu+ihrer+Sendung+ab%2C+w%C3%A4hrenddessen+ich+t%C3%A4glich+zu+tn+habe%2C+all+die+anderen+Mitschnitte+nachzuh%C3%B6ren.%0D%0A+%0D%0AAchja%3A+Ein+weitere+Cronjob+ist+f%C3%BCr+die+Verzeichnishygiene+verantwortlich+und+l%C3%B6scht+alle+Podcasts%2C+die+%C3%A4lter+als+7+Tage+sind.%0D%0A%0D%0A++++%23%21bash%0D%0A++++%40daily+++find+%7E%2Fmusic.example.org%2F+-mindepth+1+-mtime+%2B7+-type+f+-name+%5C%2A.mp3+-exec+rm+%22%7B%7D%22+%5C%3B%0D%0A+%0D%0ADiese+Miniprojekt+hat+erfreulicherweise+nur+zwei+Abende+in+Anspruch+genommen%2C+auch+dank+eleganter+APIs+und+Bibliotheken.+Und+ich+hatte+nach+Jahren+der+Pause+wieder+mal+Gelegenheit%2C+mich+der+Programmiersprache+Python+zu+n%C3%A4hern.+Hat+Spa%C3%9F+gemacht+und+k%C3%B6nnte+eine+Fortsetzung+erfahren.+Mit+dem+Projekt+bin+ich+nat%C3%BCrlich+auch+noch+nicht+fertig%2C+aber%3A+Es+l%C3%A4uft+und+ist+mein+aktuelles+%5B%22Projekt+des+Monats%22%5D%28%2Fcategory%2Fproject_of_the_month%2F%29.+%3A%29&amp;tags=CaptuRadio%2CFeed%2CPodcast%2CPython%2CRSS%2Cblog" type="text/html" /> </item> <item><title>Mal was Neues</title><link>http://niebegeg.net/2012/01/20/mal-was-neues/</link> <comments>http://niebegeg.net/2012/01/20/mal-was-neues/#comments</comments> <pubDate>Fri, 20 Jan 2012 16:19:11 +0000</pubDate> <dc:creator>Dirk Rüdiger</dc:creator> <category><![CDATA[Und sonst so]]></category> <category><![CDATA[Blog]]></category> <category><![CDATA[Community]]></category> <category><![CDATA[Drupal]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[Rostock]]></category> <guid
isPermaLink="false">http://niebegeg.net/?p=641</guid> <description><![CDATA[Den mir aufmerksam bei Twitter folgenden Leser ist es keine Neuheit: Ich werde PartMaster nach acht Jahren Ende Februar verlassen. Ich hatte viel Spaß mit meinen Kollegen und Mitgründern, habe eine Menge gelernt und viele Projekte mitgestaltet und realisiert. Aber in den letzten Jahren habe ich mein Langzeithobby "Web" zunehmend zum beruflichen Lebensmittelpunkt entwickelt. Das [...]]]></description> <content:encoded><![CDATA[<p>Den mir aufmerksam bei Twitter folgenden Leser ist es keine Neuheit: Ich werde <a
title="PartMaster GmbH" href="http://www.partmaster.de">PartMaster</a> nach acht Jahren Ende Februar verlassen.</p><p
style="text-align: center;"><a
href="http://twitter.com/DirkRuediger/status/149855735591870464"><img
id="blogsy-1327074531955.5535" class="aligncenter  wp-image-640" src="http://niebegeg.net/wp-content/uploads/2012/01/Tweet_vom_22.12.2012-720x256.png" alt="So, gekündigt. Mal sehen, was das neue Jahr bringt. :)" width="518" height="184" /></a></p><p><span
id="more-641"></span> Ich hatte viel Spaß mit meinen Kollegen und Mitgründern, habe eine Menge gelernt und viele Projekte mitgestaltet und realisiert. Aber in den letzten Jahren habe ich mein Langzeithobby "Web" zunehmend zum beruflichen Lebensmittelpunkt entwickelt. Das passt nicht in das mit Android, Eclipse und OSGi recht Java-zentrierte Leistungsspekturm meiner bisherigen Firma. Wem all die Buzzwords nichts sagen, hier die Kurzform: Wir haben uns auseinander gelebt.</p><p>Ich werde ab März für die Hamburger Firma <a
title="Homepage F2E Fluid &amp; Energy Engineering GmbH &amp; Co. KG" href="http://www.f2e.de">F2E</a> für die Weiterentwicklung und den Anwendersupport einer Webanwendung verantwortlich sein. Damit kehre ich als studierter Maschinenbauer in meine ursprüngliche Anwendungsdomäne zurück. Ich werde viel mit Windparks, deren Berechnung und Projektanten zu tun haben. Und freue mich schon riesig auf die neue Aufgabe.</p><p>PS: Sollte nun jemand fragen, was das mit den in diesem Blog behandelten Schwerpunktthemen zu tun hat: Ich werde mit meiner Familie in Rostock bleiben. Und Drupal wird bei meiner zukünftigen Arbeit eine gewichtige Rolle spielen. Ich werde also der lieb gewonnenen Community und meinem Steckenpferd treu bleiben. Klare Sache!</p><div
class="betterrelated"><p><strong>Ähnliche Beiträge:</strong></p><ol><li> <a
href="http://niebegeg.net/2010/09/20/praktikant-gesucht/" title="Permanent link to Praktikant gesucht">Praktikant gesucht</a></li><li> <a
href="http://niebegeg.net/2009/05/05/obfuscate4e-0-7-vereinfacht-die-obfuskierungskonfiguration/" title="Permanent link to obfuscate4e 0.7 vereinfacht die Obfuskierungskonfiguration">obfuscate4e 0.7 vereinfacht die Obfuskierungskonfiguration</a></li></ol></div><p><a
href="https://dirkr.fornax.uberspace.de/?flattrss_redirect&amp;id=641&amp;md5=af9406b1cfffa2f77d9080ccccbda07c" 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/01/20/mal-was-neues/feed/</wfw:commentRss> <slash:comments>1</slash:comments> <atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=dirkr&amp;url=http%3A%2F%2Fniebegeg.net%2F2012%2F01%2F20%2Fmal-was-neues%2F&amp;language=de_DE&amp;category=text&amp;title=Mal+was+Neues&amp;description=Den+mir+aufmerksam+bei+Twitter+folgenden+Leser+ist+es+keine+Neuheit%3A+Ich+werde+PartMaster+nach+acht+Jahren+Ende+Februar+verlassen.%0D%0A%0D%0A%0D%0AIch+hatte+viel+Spa%C3%9F+mit+meinen+Kollegen+und+Mitgr%C3%BCndern%2C+habe+eine+Menge+gelernt+und+viele+Projekte+mitgestaltet+und+realisiert.+Aber+in+den+letzten+Jahren+habe+ich+mein+Langzeithobby+%22Web%22+zunehmend+zum+beruflichen+Lebensmittelpunkt+entwickelt.+Das+passt+nicht+in+das+mit+Android%2C+Eclipse+und+OSGi+recht+Java-zentrierte+Leistungsspekturm+meiner+bisherigen+Firma.+Wem+all+die+Buzzwords+nichts+sagen%2C+hier+die+Kurzform%3A+Wir+haben+uns+auseinander+gelebt.%0D%0A%0D%0AIch+werde+ab+M%C3%A4rz+f%C3%BCr+die+Hamburger+Firma+F2E%C2%A0f%C3%BCr+die+Weiterentwicklung+und+den+Anwendersupport+einer+Webanwendung+verantwortlich+sein.+Damit+kehre+ich+als+studierter+Maschinenbauer+in+meine+urspr%C3%BCngliche+Anwendungsdom%C3%A4ne+zur%C3%BCck.+Ich+werde+viel+mit+Windparks%2C+deren+Berechnung+und+Projektanten+zu+tun+haben.+Und+freue+mich+schon+riesig+auf+die+neue+Aufgabe.%0D%0A%0D%0APS%3A+Sollte+nun+jemand+fragen%2C+was+das+mit+den+in+diesem+Blog+behandelten+Schwerpunktthemen+zu+tun+hat%3A+Ich+werde+mit+meiner+Familie+in+Rostock+bleiben.+Und+Drupal+wird+bei+meiner+zuk%C3%BCnftigen+Arbeit+eine+gewichtige+Rolle+spielen.+Ich+werde+also+der+lieb+gewonnenen+Community+und+meinem+Steckenpferd+treu+bleiben.+Klare+Sache%21&amp;tags=Blog%2CCommunity%2CDrupal%2CPHP%2CRostock%2Cblog" type="text/html" /> </item> <item><title>Multisites mit Drupal &#8211; schön wars</title><link>http://niebegeg.net/2012/01/19/multisites-mit-drupal-schoen-wars/</link> <comments>http://niebegeg.net/2012/01/19/multisites-mit-drupal-schoen-wars/#comments</comments> <pubDate>Thu, 19 Jan 2012 07:51:35 +0000</pubDate> <dc:creator>Dirk Rüdiger</dc:creator> <category><![CDATA[Drupal]]></category> <category><![CDATA[Drush]]></category> <category><![CDATA[Linux]]></category> <category><![CDATA[Multisite]]></category> <category><![CDATA[uberspace]]></category> <category><![CDATA[Workflow]]></category> <guid
isPermaLink="false">http://niebegeg.net/?p=620</guid> <description><![CDATA[Im Drupalcenter-Podcast ging es kürzlich um Multisites. Ich habe diese Funktion früher auch für viele meiner Webhostings eingesetzt und nutze Multisites nun gar nicht mehr. Eine gute Gelegenheit für einen Einwurf. "Multisite" ist eine raffinierte Funktion, um mehrere Drupal-Websites aus einer Codebasis zu betreiben: Im Webserver werden mehrere Domainnamen auf das selbe Drupal-Installationsvverzeichnis konfiguriert. Beim [...]]]></description> <content:encoded><![CDATA[<p>Im <a
title="#DCPod-1202 - Multisites" href="http://www.drupalcenter.de/podcast/39211">Drupalcenter-Podcast</a> ging es kürzlich um Multisites. Ich habe diese Funktion früher auch für viele meiner Webhostings eingesetzt und nutze Multisites nun gar nicht mehr. Eine gute Gelegenheit für einen Einwurf.</p><p>"Multisite" ist eine raffinierte Funktion, um mehrere Drupal-Websites aus einer Codebasis zu betreiben: Im Webserver werden mehrere Domainnamen auf das selbe Drupal-Installationsvverzeichnis konfiguriert. Beim Seitenaufruf ermittelt Drupal den Domainnamen zum Request, sucht im Ordner <code>sites/</code> den passenden Ordner mit den Konfigurationsdaten. Wenn es für die gesuchte Domain keinen Ordner gibt, dann wird im Ordner <code>sites/default/</code> nachgesehen. Die im Konfigurationsordner vorhandene Datei <code>settings.php</code> enthält unter anderem die nötigen Datenbank-Informationen und Drupal liefert mit den in der Datenbank abgelegten Daten schließlich die Webseite aus.  Eine detaillierte Beschreibung zu Multisites liefert <a
href="http://drupal.org/documentation/install/multi-site">das Handbuch auf drupal.org</a> sowie die <a
href="http://www.drupalcenter.de/podcast/39211">Linkliste am Podcastbeitrag</a>.</p><p>Diese Funktion war ein unverzichtbares Hilfsmittel, als Festplattenkapazität auf dem Server kostbar war und FTP die einzige administrative Zugriffsmöglichkeit auf den Server war: Bei der Installation einer neuen Website braucht man nur einen neuen Konfigurationsordner anlegen, die <code>settings.php</code>dorthin kopieren und anpassen und eine neue Datenbank befüllen. Beim Update eines Moduls kopiert man die von <a
href="http://drupal.org/project/modules">drupal.org heruntergeladene Modulversion</a> per FTP auf den Server und ruft für jede Website die Updatefunktion im Browser auf. Und genau diese Arbeitserleichterng ist das Problem mit Multisites: Nach dem Austauschen der Moduldateien muss man sofort die Datenbank-Updates auf allen Websites durchführen. Das kann natürlich einige Zeit dauern, und so lange sind unter Umständen (bis zu <code>n-1</code>) Websites dieser Multisite-Installation zerbrochen. Und man muss darauf vertrauen, dass das Modul-Update keine der Websites "zerbricht" -- also gleich noch testen, was wiederum wieder viel Zeit beansprucht. Und wie geht man vor, wenn nun Eine der Multisites nach dem Update nicht mehr funktioniert? Viel Handbareit und eine erstmal zerbrochene Website bleiben zurück.</p><p>Seit rund 3 Jahren betreibe ich (fast) alle meine Drupal-Sites auf Webhostings, bei denen ich mich per <code>ssh</code> auf dem Server einloggen und die Websites administrieren kann. Bei den großen Anbietern bekommt man solch ein Hosting ab ~10 Euro je Monat. Alternativ dazu kann man sich für den Preis auch einen vServer klicken. Ich bin großer <a
href="http://uberspace.de">uberspace-Fanboy</a>, dort bekommt man ein Webhosting mit ssh-Zugang (und sehr vielem mehr) für den Preis, <a
href="http://uberspace.de/prices">den mit das Angebot wert ist</a>. Ich folge mittlerweile der Empfehlung der Betreiber und habe für jede Website einen eigenen Uberspace (also ein eigenes Benutzerkonto auf einem der Uberspace-Server), weil auch die E-Mail-Konfiguration per Uberspace erfolgt und ich so jedem Kunden problemlos Ssh-Zugang zu "seinem" Uberspace geben kann.</p><p>Nun fragt Ihr vielleicht, wie viel mehr Zeit ich für ein so verteiltes Hosting investieren muss? Deshalb hier noch ein paar Ausführungen dazu.
Ich bin bekanntermaßen begeistert von <a
href="http://drupal.org/project/drush">drush</a>, dem Kommandozeilenwerkzeug für Drupal. Natürlich ist <code>drush</code>auf allen Uberspaces installiert. Ich pflege eine Vorlage für <code>~/.drush</code> auf meinem lokalen Rechner und die wird -- zusammen mit weiteren Konfigurationsdateien --  in jeden neuen Uberspace kopiert. Aktualisierung des Setups ist auch schnell getan:</p><pre class="lang-bash"><code><span class="kw3">cd</span> ~/uberspace_template &nbsp; <br />
<span class="kw1">for</span> i <span class="kw1">in</span> $<span class="br0">&#40;</span>uberspaces<span class="br0">&#41;</span> &nbsp; <br />
<span class="kw1">do</span><br />
  <span class="kw3">echo</span> <span class="st0">&quot;*** $i ***&quot;</span><br />
&nbsp; rsync -var . <span class="re1">$i</span>:<br />
<span class="kw1">done</span></code></pre><p>Das <code>$(uberspaces)</code> habe ich <a
href="/2012/01/14/schnelle-ssh-aktionen-auf-allen-eigenen-uberspaces/">kürzlich beschrieben</a>.</p><p>Auf dem Uberspace kann ich nun mit <code>drush</code> schnell ein Backup der Website machen, Module aktualisieren und ein fälliges Update in Sekundenschnelle <a
href="/2010/11/24/drush-site-alias-ein-sicherheitsnetz-fur-die-drupal-website-entwicklung/">auf einer Kopie der produktiven Website testen</a>.</p><pre class="lang-bash"><code>drush rsync @live @<span class="kw3">test</span> &nbsp; <br />
drush sql-<span class="kw2">sync</span> @live @<span class="kw3">test</span><br />
drush @<span class="kw3">test</span> up views<br />
<span class="re3"># und nun Testen</span><br />
drush @live bam-backup<br />
drush @live up views</code></pre><p>Details dazu und den obligatorischen Hinweis auf <a
href="http://drupal.org/project/environment_indicator">environment_indicator.module</a> findet Ihr in dem <a
href="/2010/11/24/drush-site-alias-ein-sicherheitsnetz-fur-die-drupal-website-entwicklung/">frühren Blogbeitrag</a>.</p><p>Um herauszufinden, welche meiner Drupal-Installationen von einem nötgen Update betroffen sind, läuft dieses Sktipt von meinem lokalen Rechner aus:</p><pre class="lang-bash"><code><span class="kw1">for</span> i <span class="kw1">in</span> $<span class="br0">&#40;</span>uberspaces<span class="br0">&#41;</span><br />
<span class="kw1">do</span><br />
  <span class="kw3">echo</span> <span class="st0">&quot;*** $i ***&quot;</span><br />
  <span class="kw2">ssh</span> <span class="re1">$i</span> <span class="st0">&quot;find /var/www/virtual/$i -type f -name modulname.module&quot;</span><br />
<span class="kw1">done</span></code></pre><p>Um es noch einfacher zu haben, habe ich alle Dateien <code>aliases.drushrc.php</code> vom Server auf meinen lokalen Rechner kopiert und den Namen des Uberspaces als Prefix vorangestellt</p><pre class="lang-bash"><code><span class="kw1">for</span> i <span class="kw1">in</span> $<span class="br0">&#40;</span>uberspaces<span class="br0">&#41;</span><br />
<span class="kw1">do</span><br />
  <span class="kw3">echo</span> <span class="st0">&quot;*** $i ***&quot;</span><br />
  <span class="kw2">scp</span> <span class="re1">$i</span>:.drush/aliases.drushrc.php ~/.drush/<span class="re1">$i</span>.aliases.drushrc.php <br />
<span class="kw1">done</span></code></pre><p>Dann noch die Paramater <code>remote-host</code>und <code>remote-user</code> in den Aliases ergänzen und ich kann vom lokalen Rechner aus Drush-Kommandos auf dem Uberspace ausführen, ohne mich vorher dort anmelden zu müssen:</p><pre class="lang-bash"><code>drush @uberspacename.live st</code></pre><p>Das vergangene halbe Jahr seit meinem Umzug zu uberspace.de mit strengen Separation aller Websites auf eigene Benutzerkonten (Accounts) hat gezeigt, dass dieser Workflow robust ist und mit drush, git, komfortablem Backup auf Systemebene und all den anderen Helferlein keinen Mehraufwand gegenüber einem eigenen Server mit allen Websites unter <code>/var/www</code> bringt. Dafür aber Zuverlässigkeit der Plattform, schnell durchgeführte Drupal-Updates und einen freigestellten Linux-Admin.</p><p>Nun bin ich auf Deine Meinung gespannt. Wie administrierst Du Deine Drupal-Sites? Was für Hosting-Pakete favorisierst Du wie passt Dein Provider zu Dir? Und: Nutzt Du noch Multisites und ich habe irgend ein cooles Feature aus den Augen verloren?</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/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/2012/01/14/schnelle-ssh-aktionen-auf-allen-eigenen-uberspaces/" title="Permanent link to Schnelle ssh-Aktionen auf allen eigenen uberspaces">Schnelle ssh-Aktionen auf allen eigenen uberspaces</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=620&amp;md5=0cad720ba7dcedfeee3ef2d4f55a81bb" 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/01/19/multisites-mit-drupal-schoen-wars/feed/</wfw:commentRss> <slash:comments>1</slash:comments> <atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=dirkr&amp;url=http%3A%2F%2Fniebegeg.net%2F2012%2F01%2F19%2Fmultisites-mit-drupal-schoen-wars%2F&amp;language=de_DE&amp;category=text&amp;title=Multisites+mit+Drupal+%26%238211%3B+sch%C3%B6n+wars&amp;description=Im+Drupalcenter-Podcast+ging+es+k%C3%BCrzlich+um+Multisites.+Ich+habe+diese+Funktion+fr%C3%BCher+auch+f%C3%BCr+viele+meiner+Webhostings+eingesetzt+und+nutze+Multisites+nun+gar+nicht+mehr.+Eine+gute+Gelegenheit+f%C3%BCr+einen+Einwurf.%0D%0A%0D%0A%22Multisite%22+ist+eine+raffinierte+Funktion%2C+um+mehrere+Drupal-Websites+aus+einer+Codebasis+zu+betreiben%3A+Im+Webserver+werden+mehrere+Domainnamen+auf+das+selbe+Drupal-Installationsvverzeichnis+konfiguriert.+Beim+Seitenaufruf+ermittelt+Drupal+den+Domainnamen+zum+Request%2C+sucht+im+Ordner+%60sites%2F%60+den+passenden+Ordner+mit+den+Konfigurationsdaten.+Wenn+es+f%C3%BCr+die+gesuchte+Domain+keinen+Ordner+gibt%2C+dann+wird+im+Ordner+%60sites%2Fdefault%2F%60+nachgesehen.+Die+im+Konfigurationsordner+vorhandene+Datei+%60settings.php%60+enth%C3%A4lt+unter+anderem+die+n%C3%B6tigen+Datenbank-Informationen+und+Drupal+liefert+mit+den+in+der+Datenbank+abgelegten+Daten+schlie%C3%9Flich+die+Webseite+aus.++Eine+detaillierte+Beschreibung+zu+Multisites+liefert+%5Bdas+Handbuch+auf+drupal.org%5D%28http%3A%2F%2Fdrupal.org%2Fdocumentation%2Finstall%2Fmulti-site%29+sowie+die+%5BLinkliste+am+Podcastbeitrag%5D%28http%3A%2F%2Fwww.drupalcenter.de%2Fpodcast%2F39211%29.%0D%0A%0D%0ADiese+Funktion+war+ein+unverzichtbares+Hilfsmittel%2C+als+Festplattenkapazit%C3%A4t+auf+dem+Server+kostbar+war+und+FTP+die+einzige+administrative+Zugriffsm%C3%B6glichkeit+auf+den+Server+war%3A+Bei+der+Installation+einer+neuen+Website+braucht+man+nur+einen+neuen+Konfigurationsordner+anlegen%2C+die+%60settings.php%60dorthin+kopieren+und+anpassen+und+eine+neue+Datenbank+bef%C3%BCllen.+Beim+Update+eines+Moduls+kopiert+man+die+von+%5Bdrupal.org+heruntergeladene+Modulversion%5D%28http%3A%2F%2Fdrupal.org%2Fproject%2Fmodules%29++per+FTP+auf+den+Server+und+ruft+f%C3%BCr+jede+Website+die+Updatefunktion+im+Browser+auf.+Und+genau+diese+Arbeitserleichterng+ist+das+Problem+mit+Multisites%3A+Nach+dem+Austauschen+der+Moduldateien+muss+man+sofort+die+Datenbank-Updates+auf+allen+Websites+durchf%C3%BChren.+Das+kann+nat%C3%BCrlich+einige+Zeit+dauern%2C+und+so+lange+sind+unter+Umst%C3%A4nden+%28bis+zu+%60n-1%60%29+Websites+dieser+Multisite-Installation+zerbrochen.+Und+man+muss+darauf+vertrauen%2C+dass+das+Modul-Update+keine+der+Websites+%22zerbricht%22+--+also+gleich+noch+testen%2C+was+wiederum+wieder+viel+Zeit+beansprucht.+Und+wie+geht+man+vor%2C+wenn+nun+Eine+der+Multisites+nach+dem+Update+nicht+mehr+funktioniert%3F+Viel+Handbareit+und+eine+erstmal+zerbrochene+Website+bleiben+zur%C3%BCck.%0D%0A%0D%0ASeit+rund+3+Jahren+betreibe+ich+%28fast%29+alle+meine+Drupal-Sites+auf+Webhostings%2C+bei+denen+ich+mich+per+%60ssh%60+auf+dem+Server+einloggen+und+die+Websites+administrieren+kann.+Bei+den+gro%C3%9Fen+Anbietern+bekommt+man+solch+ein+Hosting+ab+%7E10+Euro+je+Monat.+Alternativ+dazu+kann+man+sich+f%C3%BCr+den+Preis+auch+einen+vServer+klicken.+Ich+bin+gro%C3%9Fer+%5Buberspace-Fanboy%5D%28http%3A%2F%2Fuberspace.de%29%2C+dort+bekommt+man+ein+Webhosting+mit+ssh-Zugang+%28und+sehr+vielem+mehr%29+f%C3%BCr+den+Preis%2C+%5Bden+mit+das+Angebot+wert+ist%5D%28http%3A%2F%2Fuberspace.de%2Fprices%29.+Ich+folge+mittlerweile+der+Empfehlung+der+Betreiber+und+habe+f%C3%BCr+jede+Website+einen+eigenen+Uberspace+%28also+ein+eigenes+Benutzerkonto+auf+einem+der+Uberspace-Server%29%2C+weil+auch+die+E-Mail-Konfiguration+per+Uberspace+erfolgt+und+ich+so+jedem+Kunden+problemlos+Ssh-Zugang+zu+%22seinem%22+Uberspace+geben+kann.%0D%0A%0D%0ANun+fragt+Ihr+vielleicht%2C+wie+viel+mehr+Zeit+ich+f%C3%BCr+ein+so+verteiltes+Hosting+investieren+muss%3F+Deshalb+hier+noch+ein+paar+Ausf%C3%BChrungen+dazu.%0D%0AIch+bin+bekannterma%C3%9Fen+begeistert+von+%5Bdrush%5D%28http%3A%2F%2Fdrupal.org%2Fproject%2Fdrush%29%2C+dem+Kommandozeilenwerkzeug+f%C3%BCr+Drupal.+Nat%C3%BCrlich+ist+%60drush%60auf+allen+Uberspaces+installiert.+Ich+pflege+eine+Vorlage+f%C3%BCr+%60%7E%2F.drush%60+auf+meinem+lokalen+Rechner+und+die+wird+--+zusammen+mit+weiteren+Konfigurationsdateien+--++in+jeden+neuen+Uberspace+kopiert.+Aktualisierung+des+Setups+ist+auch+schnell+getan%3A%0D%0A%0D%0A++++%23%21bash%0D%0A++++cd+%7E%2Fuberspace_template+++%0D%0A++++for+i+in+%24%28uberspaces%29+++%0D%0A++++do%0D%0A++++%C2%A0+echo+%22%2A%2A%2A+%24i+%2A%2A%2A%22%0D%0A++++++rsync+-var+.+%24i%3A%0D%0A++++done%0D%0A%0D%0ADas+%60%24%28uberspaces%29%60+habe+ich+%5Bk%C3%BCrzlich+beschrieben%5D%28%2F2012%2F01%2F14%2Fschnelle-ssh-aktionen-auf-allen-eigenen-uberspaces%2F%29.%0D%0A%0D%0AAuf+dem+Uberspace+kann+ich+nun+mit+%60drush%60+schnell+ein+Backup+der+Website+machen%2C+Module+aktualisieren+und+ein+f%C3%A4lliges+Update+in+Sekundenschnelle+%5Bauf+einer+Kopie+der+produktiven+Website+testen%5D%28%2F2010%2F11%2F24%2Fdrush-site-alias-ein-sicherheitsnetz-fur-die-drupal-website-entwicklung%2F%29.%0D%0A%0D%0A++++%23%21bash%0D%0A++++drush+rsync+%40live+%40test+++%0D%0A++++drush+sql-sync+%40live+%40test%0D%0A++++drush+%40test+up+views%0D%0A++++%23+und+nun+Testen%0D%0A++++drush+%40live+bam-backup%0D%0A++++drush+%40live+up+views%0D%0A%0D%0ADetails+dazu+und+den+obligatorischen+Hinweis+auf+%5Benvironment_indicator.module%5D%28http%3A%2F%2Fdrupal.org%2Fproject%2Fenvironment_indicator%29+findet+Ihr+in+dem+%5Bfr%C3%BChren+Blogbeitrag%5D%28%2F2010%2F11%2F24%2Fdrush-site-alias-ein-sicherheitsnetz-fur-die-drupal-website-entwicklung%2F%29.%0D%0A%0D%0AUm+herauszufinden%2C+welche+meiner+Drupal-Installationen+von+einem+n%C3%B6tgen+Update+betroffen+sind%2C+l%C3%A4uft+dieses+Sktipt+von+meinem+lokalen+Rechner+aus%3A%0D%0A%0D%0A++++%23%21bash%0D%0A++++for+i+in+%24%28uberspaces%29%0D%0A++++do%0D%0A++++%C2%A0+echo+%22%2A%2A%2A+%24i+%2A%2A%2A%22%0D%0A++++%C2%A0+ssh+%24i+%22find+%2Fvar%2Fwww%2Fvirtual%2F%24i+-type+f+-name+modulname.module%22%0D%0A++++done%0D%0A%0D%0AUm+es+noch+einfacher+zu+haben%2C+habe+ich+alle+Dateien+%60aliases.drushrc.php%60+vom+Server+auf+meinen+lokalen+Rechner+kopiert+und+den+Namen+des+Uberspaces+als+Prefix+vorangestellt%0D%0A%0D%0A++++%23%21bash%0D%0A++++for+i+in+%24%28uberspaces%29%0D%0A++++do%0D%0A++++%C2%A0+echo+%22%2A%2A%2A+%24i+%2A%2A%2A%22%0D%0A++++%C2%A0+scp+%24i%3A.drush%2Faliases.drushrc.php+%7E%2F.drush%2F%24i.aliases.drushrc.php+%0D%0A++++done%0D%0A%0D%0ADann+noch+die+Paramater+%60remote-host%60und++%60remote-user%60+in+den+Aliases+erg%C3%A4nzen+und+ich+kann+vom+lokalen+Rechner+aus+Drush-Kommandos+auf+dem+Uberspace+ausf%C3%BChren%2C+ohne+mich+vorher+dort+anmelden+zu+m%C3%BCssen%3A%0D%0A%0D%0A++++%23%21bash%0D%0A++++drush+%40uberspacename.live+st%0D%0A%0D%0ADas+vergangene+halbe+Jahr+seit+meinem+Umzug+zu+uberspace.de+mit+strengen+Separation+aller+Websites+auf+eigene+Benutzerkonten+%28Accounts%29+hat+gezeigt%2C+dass+dieser+Workflow+robust+ist+und+mit+drush%2C+git%2C+komfortablem+Backup+auf+Systemebene+und+all+den+anderen+Helferlein+keinen+Mehraufwand+gegen%C3%BCber+einem+eigenen+Server+mit+allen+Websites+unter+%60%2Fvar%2Fwww%60+bringt.+Daf%C3%BCr+aber+Zuverl%C3%A4ssigkeit+der+Plattform%2C+schnell+durchgef%C3%BChrte+Drupal-Updates+und+einen+freigestellten+Linux-Admin.%0D%0A%0D%0ANun+bin+ich+auf+Deine+Meinung+gespannt.+Wie+administrierst+Du+Deine+Drupal-Sites%3F+Was+f%C3%BCr+Hosting-Pakete+favorisierst+Du+wie+passt+Dein+Provider+zu+Dir%3F+Und%3A+Nutzt+Du+noch+Multisites+und+ich+habe+irgend+ein+cooles+Feature+aus+den+Augen+verloren%3F&amp;tags=Drush%2CLinux%2CMultisite%2Cuberspace%2CWorkflow%2Cblog" type="text/html" /> </item> <item><title>niebegeg.net macht mit beim Anti-SOPA Blackout Day</title><link>http://niebegeg.net/2012/01/17/niebegeg-net-macht-mit-beim-anti-spoa-blackout-day/</link> <comments>http://niebegeg.net/2012/01/17/niebegeg-net-macht-mit-beim-anti-spoa-blackout-day/#comments</comments> <pubDate>Tue, 17 Jan 2012 15:43:31 +0000</pubDate> <dc:creator>Dirk Rüdiger</dc:creator> <category><![CDATA[Beiträge zum Blog]]></category> <category><![CDATA[Und sonst so]]></category> <category><![CDATA[ACTA]]></category> <category><![CDATA[Internet]]></category> <category><![CDATA[Internet freedom]]></category> <category><![CDATA[SOPA]]></category> <guid
isPermaLink="false">http://niebegeg.net/?p=613</guid> <description><![CDATA[Ich werde mich mit meinem Blog am morgigen Mittwoch am "Anti-SPOA Blackout Day" beteiligen und zwischen 8 Uhr und 20 Uhr auf dieser Website nur einen entsprechenden Hinweis, jedoch keine Inhalte anzeigen. Mit dieser Maßnahme schließe ich mich der Protestaktion gegen die US-amerikanischen und europäischen Zensurbestrebungen (SOPA und ACTA) an. Weitere Informationen dazu findet Ihr [...]]]></description> <content:encoded><![CDATA[<p>Ich werde mich mit meinem Blog am morgigen Mittwoch am "Anti-SPOA Blackout Day" beteiligen und zwischen 8 Uhr und 20 Uhr auf dieser Website nur einen entsprechenden Hinweis, jedoch keine Inhalte anzeigen.</p><p>Mit dieser Maßnahme schließe ich mich der Protestaktion gegen die US-amerikanischen und europäischen Zensurbestrebungen (SOPA und ACTA) an.</p><p>Weitere Informationen dazu findet Ihr im <a
href="http://blog.windfluechter.net/taxonomy/term/202">Windflüchter Blog</a>, <a
title="Spreeblick: Anti-SOPA Blackout Day" href="http://www.spreeblick.com/2012/01/16/mittwoch-anti-sopa-blackout-day/">Spreeblick Blog</a>, beim <a
title="Digitale Gesellschaft: Stoppt ACTA" href="http://digitalegesellschaft.de/2011/11/mitmachen-stoppt-acta/">Digitalen Gesellschaft e.V.</a> sowie den von dort verlinkten Ressourcen.</p><div
class="betterrelated none"><p>Keinen verwandten Inhalt Inhalt gefunden.</p></div><p><a
href="https://dirkr.fornax.uberspace.de/?flattrss_redirect&amp;id=613&amp;md5=37ceadfe9c74f9ebe86cd974b73d097f" 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/01/17/niebegeg-net-macht-mit-beim-anti-spoa-blackout-day/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=dirkr&amp;url=http%3A%2F%2Fniebegeg.net%2F2012%2F01%2F17%2Fniebegeg-net-macht-mit-beim-anti-spoa-blackout-day%2F&amp;language=de_DE&amp;category=text&amp;title=niebegeg.net+macht+mit+beim+Anti-SOPA+Blackout+Day&amp;description=Ich+werde+mich+mit+meinem+Blog+am+morgigen+Mittwoch+am+%22Anti-SPOA+Blackout+Day%22+beteiligen+und+zwischen+8+Uhr+und+20+Uhr+auf+dieser+Website+nur+einen+entsprechenden+Hinweis%2C+jedoch+keine+Inhalte+anzeigen.%0A%0AMit+dieser+Ma%C3%9Fnahme+schlie%C3%9Fe+ich+mich+der+Protestaktion+gegen+die+US-amerikanischen+und+europ%C3%A4ischen+Zensurbestrebungen+%28SOPA+und+ACTA%29+an.%0A%0AWeitere+Informationen+dazu+findet+Ihr+im+Windfl%C3%BCchter+Blog%2C+Spreeblick+Blog%2C+beim+Digitalen+Gesellschaft+e.V.+sowie+den+von+dort+verlinkten+Ressourcen.&amp;tags=ACTA%2CInternet%2CInternet+freedom%2CSOPA%2Cblog" type="text/html" /> </item> <item><title>Drupal-Kurse an der Rostocker VHS vor dem Aus?</title><link>http://niebegeg.net/2012/01/15/drupal-kurse-an-der-rostocker-vhs-vor-dem-aus/</link> <comments>http://niebegeg.net/2012/01/15/drupal-kurse-an-der-rostocker-vhs-vor-dem-aus/#comments</comments> <pubDate>Sun, 15 Jan 2012 21:27:21 +0000</pubDate> <dc:creator>Dirk Rüdiger</dc:creator> <category><![CDATA[Drupal]]></category> <category><![CDATA[Bad Doberan]]></category> <category><![CDATA[Rostock]]></category> <category><![CDATA[VHS]]></category> <category><![CDATA[Volkshochschule]]></category> <guid
isPermaLink="false">http://niebegeg.net/?p=610</guid> <description><![CDATA[Vor vier Jahre fand der erste Drupal-Kurs an der Volkshochschule Rostock statt. Er hatte den Titel &#8220;Zur professionellen Homepage in 14 Tagen&#8221; und wurde ein &#8220;Verkaufsschlager&#8221;. Anfangs bot ich den Teilnehmern selbst gehostete (Multisite) Websites an, seit eineinhalb Jahren nutze ich DrupalGardens als Hosting Plattform. Mein Ziel mit dem Kurs ist es, Leuten beim Erstellen [...]]]></description> <content:encoded><![CDATA[<p>Vor vier Jahre fand der <a
href="/2008/02/06/drupal-kurs-an-der-volkshochschule-rostock/">erste Drupal-Kurs an der Volkshochschule Rostock</a> statt. Er hatte den Titel &#8220;Zur professionellen Homepage in 14 Tagen&#8221; und wurde ein &#8220;Verkaufsschlager&#8221;. Anfangs bot ich den Teilnehmern selbst gehostete (Multisite) Websites an, seit eineinhalb Jahren nutze ich <a
href="/2008/02/06/drupal-kurs-an-der-volkshochschule-rostock/">DrupalGardens als Hosting Plattform</a>. Mein Ziel mit dem Kurs ist es, Leuten beim Erstellen einer eigenen Website zu helfen, die eigentlich nicht viel mit dem Rechner und dem Rein-Schreib-Internet zu tun haben. Bei diesem Unterfangen war der Wechsel zu DrupalGardens eine wesentliche Erleichterung, allein wegen der Bildergalerie &#8220;out of the box&#8221; und der D7 User experience.</p><p>Beim Wahl der Hosting-Plattform war mir wichtig, dass die Teilnehmer nach dem Kurs wählen können, ob sie<ul><li>die Website weiter kostenlos betreiben ohne sich um Updates kümmern zu müssen,</li><li>einen gewissen Jahresbeitrag bezahlen und dafür einen eigenen Domainnamen bekommen,</li><li>die Website selbst hosten, um mehr Performance und Flexibilität bei der Modul- und Themeauswahl haben (und sich dafür mit der Drupal-Administration beschäftigen müssen).</li></ul></p><p>Mittlerweile bin ich jedoch an dem Punkt angekommen, dass ich diese Kurse nicht weiterführen will. Ich hatte in den Kursen und mit den Menschen immer viel Spaß. Aber zu wenige von ihnen sind letztlich dabei geblieben &#8211; zu viele haben sich durch den Kurs gequält, viel Geld und Zeit investiert und trotzdem keine eigene Website. Ich erreiche also permanent mein persönliches Kurzziel nicht.</p><p>Ich bin mir dank des positiven Teilnehmerfeedbacks sicher, dass es (nach den vier Jahren) nicht primär an mir als Trainer liegt, den Stoff zu vermitteln. Den Teilnehmern fehlt jedoch neben dem Feierabend-Engagement (30 Abendstunden in ~2 Wochen) die Zeit, sich nochmal ~50 Stunden am heimischen PC an das Website-projekt zu setzen. Und ich habe festgestellt, dass Drupal 7 auch mit all den #d7ux-Erfolgen und Verbesserungen an der Bedienoberfläche zu kompliziert für Neueinsteiger ist.</p><p>Als Konsequenz könnte ich im Kurs auf WordPress wechseln, die ja auch ein <a
href="http://de.wordpress.com">kostenlose Hosting-Plattform</a> anbieten, welches obigen Auswahlkriterien entspricht. Oder mit <a
href="http://de.jimdo.com/">Jimdo</a> eine kommerzielle Plattform mit Freemium-Preismodell nutzen. In beiden Fällen wäre es aber nicht mehr mein Kurs, ich will eben mit Drupal arbeiten. Die Option &#8220;Website-Baukasten-Software auf dem PC installieren und dann ins Intrnet speichern&#8221; kommt für mich gar nicht in Frage.</p><p>Im Moment denke ich also darüber nach, den Kurs nicht weiterzuführen. Ich habe noch ein paar Wochen Zeit mich zu entscheiden, aber habe (noch) keine gute Idee, wie ich meine persönlichen Erwartungen, die Leistungsfähigkeit der Teilnehmer und die verfügbaren Software-Alternativen zusammenbringen kann.</p><div
class="betterrelated"><p><strong>Ähnliche Beiträge:</strong></p><ol><li> <a
href="http://niebegeg.net/2009/12/17/drupal-for-the-masses/" title="Permanent link to Drupal for the Masses">Drupal for the Masses</a></li><li> <a
href="http://niebegeg.net/2009/11/09/der-winter-2009-drupal-kurs-an-der-volkshochschule-rostock/" title="Permanent link to Der Winter-2009-Drupal-Kurs an der Volkshochschule Rostock">Der Winter-2009-Drupal-Kurs an der Volkshochschule Rostock</a></li><li> <a
href="http://niebegeg.net/2009/03/16/zum-dritten-mal-wieder-ein-vhs-kurs/" title="Permanent link to Zum dritten Mal: Wieder ein VHS-Kurs!">Zum dritten Mal: Wieder ein VHS-Kurs!</a></li><li> <a
href="http://niebegeg.net/2008/02/06/drupal-kurs-an-der-volkshochschule-rostock/" title="Permanent link to Drupal-Kurs an der Volkshochschule Rostock">Drupal-Kurs an der Volkshochschule Rostock</a></li><li> <a
href="http://niebegeg.net/2011/08/27/herbstsaison-der-drupal-kurse-wird-eroffnet/" title="Permanent link to Herbstsaison der Drupal-Kurse wird eröffnet">Herbstsaison der Drupal-Kurse wird eröffnet</a></li></ol></div><p><a
href="https://dirkr.fornax.uberspace.de/?flattrss_redirect&amp;id=610&amp;md5=caad054e6fb465b1f6b2fff4def8c434" 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/01/15/drupal-kurse-an-der-rostocker-vhs-vor-dem-aus/feed/</wfw:commentRss> <slash:comments>4</slash:comments> <atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=dirkr&amp;url=http%3A%2F%2Fniebegeg.net%2F2012%2F01%2F15%2Fdrupal-kurse-an-der-rostocker-vhs-vor-dem-aus%2F&amp;language=de_DE&amp;category=text&amp;title=Drupal-Kurse+an+der+Rostocker+VHS+vor+dem+Aus%3F&amp;description=Vor+vier+Jahre+fand+der+erste+Drupal-Kurs+an+der+Volkshochschule+Rostock+statt.+Er+hatte+den+Titel+%26%238220%3BZur+professionellen+Homepage+in+14+Tagen%26%238221%3B+und+wurde+ein+%26%238220%3BVerkaufsschlager%26%238221%3B.+Anfangs+bot+ich+den+Teilnehmern+selbst+gehostete+%28Multisite%29+Websites+an%2C+seit+eineinhalb+Jahren+nutze+ich+DrupalGardens+als+Hosting+Plattform.+Mein+Ziel+mit+dem+Kurs+ist+es%2C+Leuten+beim+Erstellen+einer+eigenen+Website+zu+helfen%2C+die+eigentlich+nicht+viel+mit+dem+Rechner+und+dem+Rein-Schreib-Internet+zu+tun+haben.+Bei+diesem+Unterfangen+war+der+Wechsel+zu+DrupalGardens+eine+wesentliche+Erleichterung%2C+allein+wegen+der+Bildergalerie+%26%238220%3Bout+of+the+box%26%238221%3B+und+der+D7+User+experience.%0D%0A%0D%0ABeim+Wahl+der+Hosting-Plattform+war+mir+wichtig%2C+dass+die+Teilnehmer+nach+dem+Kurs+w%C3%A4hlen+k%C3%B6nnen%2C+ob+sie%0D%0A%0D%0Adie+Website+weiter+kostenlos+betreiben+ohne+sich+um+Updates+k%C3%BCmmern+zu+m%C3%BCssen%2C%0D%0Aeinen+gewissen+Jahresbeitrag+bezahlen+und+daf%C3%BCr+einen+eigenen+Domainnamen+bekommen%2C%0D%0Adie+Website+selbst+hosten%2C+um+mehr+Performance+und+Flexibilit%C3%A4t+bei+der+Modul-+und+Themeauswahl+haben+%28und+sich+daf%C3%BCr+mit+der+Drupal-Administration+besch%C3%A4ftigen+m%C3%BCssen%29.%0D%0A%0D%0A%0D%0AMittlerweile+bin+ich+jedoch+an+dem+Punkt+angekommen%2C+dass+ich+diese+Kurse+nicht+weiterf%C3%BChren+will.+Ich+hatte+in+den+Kursen+und+mit+den+Menschen+immer+viel+Spa%C3%9F.+Aber+zu+wenige+von+ihnen+sind+letztlich+dabei+geblieben+%26%238211%3B+zu+viele+haben+sich+durch+den+Kurs+gequ%C3%A4lt%2C+viel+Geld+und+Zeit+investiert+und+trotzdem+keine+eigene+Website.+Ich+erreiche+also+permanent+mein+pers%C3%B6nliches+Kurzziel+nicht.%0D%0A%0D%0AIch+bin+mir+dank+des+positiven+Teilnehmerfeedbacks+sicher%2C+dass+es+%28nach+den+vier+Jahren%29+nicht+prim%C3%A4r+an+mir+als+Trainer+liegt%2C+den+Stoff+zu+vermitteln.+Den+Teilnehmern+fehlt+jedoch+neben+dem+Feierabend-Engagement+%2830+Abendstunden+in+%7E2+Wochen%29+die+Zeit%2C+sich+nochmal+%7E50+Stunden+am+heimischen+PC+an+das+Website-projekt+zu+setzen.+Und+ich+habe+festgestellt%2C+dass+Drupal+7+auch+mit+all+den+%23d7ux-Erfolgen+und+Verbesserungen+an+der+Bedienoberfl%C3%A4che+zu+kompliziert+f%C3%BCr+Neueinsteiger+ist.%0D%0A%0D%0AAls+Konsequenz+k%C3%B6nnte+ich+im+Kurs+auf+Wordpress+wechseln%2C+die+ja+auch+ein+kostenlose+Hosting-Plattform+anbieten%2C+welches+obigen+Auswahlkriterien+entspricht.+Oder+mit+Jimdo+eine+kommerzielle+Plattform+mit+Freemium-Preismodell+nutzen.+In+beiden+F%C3%A4llen+w%C3%A4re+es+aber+nicht+mehr+mein+Kurs%2C+ich+will+eben+mit+Drupal+arbeiten.+Die+Option+%26%238220%3BWebsite-Baukasten-Software+auf+dem+PC+installieren+und+dann+ins+Intrnet+speichern%26%238221%3B+kommt+f%C3%BCr+mich+gar+nicht+in+Frage.%0D%0A%0D%0AIm+Moment+denke+ich+also+dar%C3%BCber+nach%2C+den+Kurs+nicht+weiterzuf%C3%BChren.+Ich+habe+noch+ein+paar+Wochen+Zeit+mich+zu+entscheiden%2C+aber+habe+%28noch%29+keine+gute+Idee%2C+wie+ich+meine+pers%C3%B6nlichen+Erwartungen%2C+die+Leistungsf%C3%A4higkeit+der+Teilnehmer+und+die+verf%C3%BCgbaren+Software-Alternativen+zusammenbringen+kann.%0D%0A&amp;tags=Bad+Doberan%2CRostock%2CVHS%2CVolkshochschule%2Cblog" type="text/html" /> </item> <item><title>Schnelle ssh-Aktionen auf allen eigenen uberspaces</title><link>http://niebegeg.net/2012/01/14/schnelle-ssh-aktionen-auf-allen-eigenen-uberspaces/</link> <comments>http://niebegeg.net/2012/01/14/schnelle-ssh-aktionen-auf-allen-eigenen-uberspaces/#comments</comments> <pubDate>Sat, 14 Jan 2012 22:46:27 +0000</pubDate> <dc:creator>Dirk Rüdiger</dc:creator> <category><![CDATA[Drupal]]></category> <category><![CDATA[Administration]]></category> <category><![CDATA[Shell]]></category> <category><![CDATA[ssh]]></category> <category><![CDATA[uberspace]]></category> <guid
isPermaLink="false">http://niebegeg.net/?p=603</guid> <description><![CDATA[Ich bin begeisterter Uberspace-User und betreibe zwei Dutzend Uberspaces bei dem Provider. Auf den meisten Accounts habe ich Drupal installiert und habe regelmäßig administrative Tätigkeiten auf mehreren oder allen Uberspaces zu erledigen -- spätenstens, wenn ein Drupal-Sicheheitsupdate zu Eile mahnt. Ich habe mir ein kleines Script uberspaces geschrieben, welches mir aus meiner Ssh-Konfigurationsdatei ~/.ssh/config die [...]]]></description> <content:encoded><![CDATA[<p>Ich bin begeisterter <a
href="http://uberspace.de/">Uberspace</a>-User und betreibe zwei Dutzend Uberspaces bei dem Provider. Auf den meisten Accounts habe ich Drupal installiert und habe regelmäßig administrative Tätigkeiten auf mehreren oder allen Uberspaces zu erledigen -- spätenstens, wenn ein Drupal-Sicheheitsupdate zu Eile mahnt.</p><p>Ich habe mir ein kleines Script <a
href="https://gist.github.com/1613079">uberspaces</a> geschrieben, welches mir aus meiner Ssh-Konfigurationsdatei <code>~/.ssh/config</code> die Liste der Ssh-Host-IDs alle Uberspaces liefert, die ich dann in Shellkommandos nutzen kann. Die Ssh-Host-IDs sind dabei mit Leerzeichen voneinander getrennt.</p><p>Beispiel: Gib die Crontabs aller Uberspaces aus</p><pre class="lang-bash"><code><span class="kw1">for</span> i <span class="kw1">in</span> $<span class="br0">&#40;</span>uberspaces<span class="br0">&#41;</span><br />
<span class="kw1">do</span><br />
&nbsp; <span class="kw3">echo</span> <span class="st0">&quot;*** $i ***&quot;</span><br />
&nbsp; <span class="kw2">ssh</span> <span class="re1">$i</span> <span class="st0">&quot;crontab -l&quot;</span><br />
<span class="kw1">done</span></code></pre><p>Und noch ein Beispiel: Finde alle Drupal-Installationen in allen Uberspaces, in denen ein bestimmtes Drupal-Modul installiert ist. In diesem Fall -- aus aktuellem Anlass -- das <a
href="http://dgo.to/date">date.module</a></p><pre class="lang-bash"><code><span class="kw1">for</span> i <span class="kw1">in</span> $<span class="br0">&#40;</span>uberspaces<span class="br0">&#41;</span><br />
<span class="kw1">do</span><br />
&nbsp; <span class="kw3">echo</span> <span class="st0">&quot;*** $i ***&quot;</span><br />
&nbsp; <span class="kw2">ssh</span> <span class="re1">$i</span> <span class="st0">&quot;find /var/www/virtual/$i -type f -name date.module&quot;</span><br />
<span class="kw1">done</span></code></pre><p>Einzige Voraussetzung ist, dass in der Datei <code>~/.ssh/config</code> für jeden Uberspace ein solcher Eintrag vorhanden ist:</p><pre class="lang-ini"><code>Host myuberspace<br />
&nbsp; Hostname servername.uberspace.de<br />
&nbsp; User myuberspace</code></pre><p>Der <code>UserName</code> und der Host-Id müssen nicht übereinstimmen, ich habe diese Konvention gewählt. Weitere Konfigurationswerte zu einem Eintrag sollten nicht stören, sie werden einfach ignoriert.</p><p>Auf diese Weise kann man leicht der Empfehlung der Ubernauten folgen, und für jede Website einen eigenen Uberspace einrichten, ohne bei der Administration zusätzlich Zeit investieren zu müssen.</p><div
class="betterrelated"><p><strong>Ähnliche Beiträge:</strong></p><ol><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><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/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/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></ol></div><p><a
href="https://dirkr.fornax.uberspace.de/?flattrss_redirect&amp;id=603&amp;md5=9579aa53b93acbb5c737d6d12a0c387e" 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/01/14/schnelle-ssh-aktionen-auf-allen-eigenen-uberspaces/feed/</wfw:commentRss> <slash:comments>3</slash:comments> <atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=dirkr&amp;url=http%3A%2F%2Fniebegeg.net%2F2012%2F01%2F14%2Fschnelle-ssh-aktionen-auf-allen-eigenen-uberspaces%2F&amp;language=de_DE&amp;category=text&amp;title=Schnelle+ssh-Aktionen+auf+allen+eigenen+uberspaces&amp;description=Ich+bin+begeisterter+%5BUberspace%5D%28http%3A%2F%2Fuberspace.de%2F%29-User+und+betreibe+zwei+Dutzend+Uberspaces+bei+dem+Provider.+Auf+den+meisten+Accounts+habe+ich+Drupal+installiert+und+habe+regelm%C3%A4%C3%9Fig+administrative+T%C3%A4tigkeiten+auf+mehreren+oder+allen+Uberspaces+zu+erledigen+--+sp%C3%A4tenstens%2C+wenn+ein+Drupal-Sicheheitsupdate+zu+Eile+mahnt.%0A%0AIch+habe+mir+ein+kleines+Script+%5Buberspaces%5D%28https%3A%2F%2Fgist.github.com%2F1613079%29+geschrieben%2C+welches+mir+aus+meiner+Ssh-Konfigurationsdatei+%60%7E%2F.ssh%2Fconfig%60+die+Liste+der+Ssh-Host-IDs+alle+Uberspaces+liefert%2C+die+ich+dann+in+Shellkommandos+nutzen+kann.+Die+Ssh-Host-IDs+sind+dabei+mit+Leerzeichen+voneinander+getrennt.%0A%0ABeispiel%3A+Gib+die+Crontabs+aller+Uberspaces+aus%0A%0A++++%23%21bash%0A++++for+i+in+%24%28uberspaces%29%0A++++do%0A++++++echo+%22%2A%2A%2A+%24i+%2A%2A%2A%22%0A++++++ssh+%24i+%22crontab+-l%22%0A++++done%0A%0AUnd+noch+ein+Beispiel%3A+Finde+alle+Drupal-Installationen+in+allen+Uberspaces%2C+in+denen+ein+bestimmtes+Drupal-Modul+installiert+ist.+In+diesem+Fall+--+aus+aktuellem+Anlass+--+das+%5Bdate.module%5D%28http%3A%2F%2Fdgo.to%2Fdate%29%0A%0A++++%23%21bash%0A++++for+i+in+%24%28uberspaces%29%0A++++do%0A++++++echo+%22%2A%2A%2A+%24i+%2A%2A%2A%22%0A++++++ssh+%24i+%22find+%2Fvar%2Fwww%2Fvirtual%2F%24i+-type+f+-name+date.module%22%0A++++done%0A%0AEinzige+Voraussetzung+ist%2C+dass+in+der+Datei+%60%7E%2F.ssh%2Fconfig%60+f%C3%BCr+jeden+Uberspace+ein+solcher+Eintrag+vorhanden+ist%3A%0A%0A++++%23%21ini%0A++++Host+myuberspace%0A++++++Hostname+servername.uberspace.de%0A++++++User+myuberspace%0A%0ADer+%60UserName%60+und+der+Host-Id+m%C3%BCssen+nicht+%C3%BCbereinstimmen%2C+ich+habe+diese+Konvention+gew%C3%A4hlt.+Weitere+Konfigurationswerte+zu+einem+Eintrag+sollten+nicht+st%C3%B6ren%2C+sie+werden+einfach+ignoriert.%0A%0AAuf+diese+Weise+kann+man+leicht+der+Empfehlung+der+Ubernauten+folgen%2C+und+f%C3%BCr+jede+Website+einen+eigenen+Uberspace+einrichten%2C+ohne+bei+der+Administration+zus%C3%A4tzlich+Zeit+investieren+zu+m%C3%BCssen.&amp;tags=Administration%2CShell%2Cssh%2Cuberspace%2Cblog" type="text/html" /> </item> </channel> </rss>
