php.de

Zurück   php.de > php.de Intern > Beitragsarchiv > Adventskalender 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 05.12.2009, 00:00  
Adventskalenderöffner
 
Benutzerbild von Nikolaus 2.0
 
Registriert seit: 27.11.2008
Beiträge: 72
PHP-Kenntnisse:
Fortgeschritten
Nikolaus 2.0 ist einfach richtig nettNikolaus 2.0 ist einfach richtig nettNikolaus 2.0 ist einfach richtig nettNikolaus 2.0 ist einfach richtig nettNikolaus 2.0 ist einfach richtig nett
Standard 5: Quecksilber zur Konservierung

5:
Laut fluchend hämmerte der Nikolaus auf seiner Computerkiste herum und verursachte einen Lärm, der die gesamte Nachbarschaft in Angst und Schrecken versetzte. Es war wieder passiert: die Festplatte hatte seltsame Geräusche von sich gegeben und schließlich ihr Leben ausgehaucht. Sämtliche Pläne für die diesjährigen Geschenke waren gelöscht. Einfach so. Wutschnaubend rief der Nikolaus seinen Kollegen, den Weihnachtsmann, an, ob der noch einige Kopien der Arbeit hätte, doch dieser musste verneinen und enttäuscht legte der Nikolaus auf. Morgen war sein Tag und sämtliche Daten waren weg. Er sah es schon auf sich zu kommen: dieses Jahr würden die Stiefel leer bleiben, wenn er nicht in Windeseile mithilfe von Knecht Ruprecht, den Wichteln die gesamte Arbeit von vorn beginnen würde.
So rief er seine Belegschaft zusammen und schilderte das Problem. Nach dem Herbeischaffen einer neuen Festplatte setzten sich alle an die Arbeit. Sie schrieben und schrieben, doch dann hielt der Weihnachtsmann inne… Er speicherte das Dokument und kam zu dem Schluss, dass ein solcher GAU nicht wieder vorkommen dürfe.
Nach einigem Überlegen stieß er auf eine Lösung. Er ließ einen Wichtel eine weitere Festplatte herbei holen und während dieser unterwegs war, lud er sich Mercurial herunter und installierte es sich. Aus dem Portage-Tree heraus ging dies rasend schnell
Code:
$ sudo emerge -av dev-util/mercurial
Nebenan auf dem Debian-Rechner tat er das Gleiche
Code:
$ sudo apt-get install mercurial
und so weiter und so fort.
Als der Wichtel mit der Festplatte zurück kam, schloss er diese per eSATA an seinen Rechner an, formatierte sie und gab sie im Netzwerk frei.
Anschließend trommelte er die Arbeiter erneut zusammen für eine kleine Demonstration. Er wechselte in sein Arbeitsverzeichnis und legte ein neues Repository an
Code:
$ cd "~/Jahr 2009/Vorbereitungen"
$ hg init
Dann fügte er die schon vorhandenen Dateien dem Repository hinzu
Code:
$ hg addremove
Ein anschließendes
Code:
$ hg commit -m "Initial commit of Santa Claus data"
übernahm die neu hinzugefügten Dateien ins Repository.
Die anderen waren verwirrt. Was sollte das denn jetzt bringen? Doch der Nikolaus erklärte es ihnen. Er mountete dazu die externe Festplatte und wechselte in das Verzeichnis der Platte. Dort legte er dann eine Kopie des Repositorys ab
Code:
$ cd /mnt/backupdrive
$ hg clone "~/Jahr 2009/Vorbereitungen"
„Dies“, erklärte er, „ist nun ein Backup-Repository.“
Da die Wichtel immer noch nicht ganz verstanden, worauf er hinaus wollte, legte er ein Shell-Skript an und machte es ausführbar:
Code:
$ vim backupdata.sh
$ chmod +x backupdata.sh
Der Inhalt lautete
Code:
#!/bin/sh
cd "~/Jahr 2009/Vorbereitungen"
hg addremove
hg commit -m "[Automatic backup `date`]"
cd /mnt/backupdriver
hg pull
hg update
Dieses Skript fügte er dann seiner Crontab hinzu und nun verstanden die Wichtel, worauf er hinaus wollte. Der Nikolaus hatte soeben mit wenigen Zeilen Code eine funktionierende Backuplösung gebastelt.

Begeistert machten sich die Wichtel an die Arbeit. Fortan sollten keine Daten mehr verloren gehen.
Nikolaus 2.0 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 05.12.2009, 09:03  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.798
PHP-Kenntnisse:
Fortgeschritten
robo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblick
Standard

Faszinierend wie ähnlich sich die verteilten Versionskontrollsystem sind, so würde das mit git aussehen:

Code:
sudo emerge -av dev-util/git
Code:
$ sudo apt-get install git-core

Code:
$ cd "~/Jahr 2009/Vorbereitungen"
$ git init
Code:
git add .
Code:
git commit -m "Initial commit of Santa Claus data"
Code:
$ cd /mnt/backupdrive
$ git clone "~/Jahr 2009/Vorbereitungen"
Code:
$ vim backupdata.sh
$ chmod +x backupdata.sh
Code:
#!/bin/sh
cd "~/Jahr 2009/Vorbereitungen"
git add .
git commit -m "[Automatic backup `date`]"
cd /mnt/backupdriver
git pull
# pull zieht und mergt
Und so würde das mit bazaar aussehen

Code:
sudo emerge -av dev-util/bzr
Code:
$ sudo apt-get install bzr

Code:
$ cd "~/Jahr 2009/Vorbereitungen"
$ bzr init
Code:
bzr add
Code:
bzr commit -m "Initial commit of Santa Claus data"
Code:
$ cd /mnt/backupdrive
$ bzr clone "~/Jahr 2009/Vorbereitungen"
Code:
$ vim backupdata.sh
$ chmod +x backupdata.sh
Code:
#!/bin/sh
cd "~/Jahr 2009/Vorbereitungen"
bzr add
bzr commit -m "[Automatic backup `date`]"
cd /mnt/backupdriver
bzr pull
# pull zieht und mergt
Und die verteilten eignen sich dank guter Kompression auch sehr gut dazu z.b. Datenbank-Backups zu machen:
Datenbank-Backups mit git (mysql, postgresql, etc)

Aktueller Stand bei mir (stündliche Backups, unkomprimierte dumps sind aktuell 82 MB groß (komprimiert [tar.bz2]: 27MB) und nach 1799 Commits (~ 75 Tage) ist das ganze Repro gerade mal 980 MB groß.

Hätte ich also einzelne Archive von den Dumps erstellt wäre ich jetzt bei ~ 1799 * 27 = 48 573 MB ~= 48,5 GB :P
Und trotzdem hab ich die komplette history im Stundenrhytmus auf die ich zurückgreifen kann
robo47 ist offline  
Alt 05.12.2009, 11:27  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.425
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Ja, verteilte VCS sind schon etwas Tolles.
hg pull; ht update lässt sich übrigens auch verkürzen zu hg -u pull.

Wenn schon dieses sonst kein Feedback kommt, kommt wenigstens eine sehr gute Ergänzung. Danke!
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline  
Alt 05.12.2009, 14:40  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.246
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Meines Wissens sind die .hg-Kommandos an SVN angelehnt, um den Umstieg leicht zu machen

Hier gibts noch ne allgemeinen Tech Talk zum Thema: http://chaosradio.ccc.de/cre130.html

2. Anmerkung:

http://farm4.static.flickr.com/3598/...4c77bc91_o.png

3. Anmerkung:

.hg gibts auch für Windows in einer gewohnt guten Tortoise-Variante. Trotz Kontextmenü lohnt es sich auch hier durchaus, auf der Kommandozeile zu arbeiten - bis auf die Pfade (Windows benötigt natürlich Laufwerksangaben) sind die Kommandos identisch.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--

Geändert von nikosch (05.12.2009 um 15:10 Uhr).
nikosch ist gerade online  
Alt 05.12.2009, 15:08  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.425
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Kleine Ergänzung: das manuelle Update durch hg update oder den Parameter -u ist bei Mercurial nicht als Dämlichkeit der Entwickler gesehen sondern als Vorsichtsmaßnahme .
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline  
Alt 06.12.2009, 01:35  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.798
PHP-Kenntnisse:
Fortgeschritten
robo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von Manko10 Beitrag anzeigen
Kleine Ergänzung: das manuelle Update durch hg update oder den Parameter -u ist bei Mercurial nicht als Dämlichkeit der Entwickler gesehen sondern als Vorsichtsmaßnahme .
gibt es imho bei git auch, dort hat man git fetch, was nur externe branches holt, aber nicht mergt
robo47 ist offline  
Alt 09.12.2009, 10:50  
Erfahrener Benutzer
 
Registriert seit: 25.09.2009
Beiträge: 2.044
PHP-Kenntnisse:
Fortgeschritten
BlackScorp wird schon bald berühmt werdenBlackScorp wird schon bald berühmt werden
Standard

genail Wichtel sind Nerds und können Backups erstellen. und der Nikolaus kann Programmieren nun wird die Welt klarer. Irgendwann schreiben die Kinder kein Zettel mehr sondern Mailen den Wunschzettel Verrückte welt

Apropo Nerd Witze:
verstehen auch nur Nerds
__________________
Mein kleines Projekt
-Cruel Online-
5 von 3 Leuten können kein Bruchrechnen

Geändert von BlackScorp (10.12.2009 um 16:48 Uhr).
BlackScorp ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
quecksilber konservierung, konservierung quecksilber, festplatten quecksilber, pandabär witze, nerd witze bilder, wie alt sind die wichtel? lösung, nerd geschenke, quecksilber festplatte, quecksilber in festplatten, hg commit and git commit -a, panda witze, verrückte welt, wichtel witze, witze über quecksilber, \wie alt sind die wichtel?\ lösung, quecksilber skript, geek witze, nerdwitze, bzr pull hg, quecksilber in festplatte

Alle Zeitangaben in WEZ +1. Es ist jetzt 14:34 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum