NodeJS und NPM einfach aktualisieren

NodeJS und NPM kann man ganz einfach mit Hilfe von NPM aktualisieren:

Danach kann man die Version prüfen:

 

Dockerimage für GHC7.8 und GHC7.6

Ich habe heute ein Dockerfile für GHC7.8 bzw. GHC7.6 mit Cabal 1.20.0.1 auf Ubuntu 14.04 (LTS) geschrieben. Die Dockerfiles selbst liegen auf Github und die Images werden per „trusted builds“ automatisch ins Docker Index hochgeladen (GHC7.8, GHC7.6).

Aufbauend auf diesem Image kann man nun zum Beispiel Dockerfiles für seine eigenen Haskell-Projekte schreiben. Ich zeige das kurz an einem Beispiel, dem funblog.

Das Image kann man dann mit

bauen, wobei man eine Datei blogConfiguration.cfg im gleichen Verzeichnis benötigt. (Vorlage dafür ist auf github) Danach kann man den Blog mit

starten und unter

aufrufen.

 

Linux: Einfaches Backup-Script

Heute möchte ich mein einfaches „Backup-Script“ für Linux-Rechner vorstellen. In meinem Szenario muss ich eine MySQL-Datenbank und ein paar Verzeichnisse sichern. Die Sicherungskopie möchte ich dann verschlüsseln und auf einen anderen Rechner laden.

Zunächst logge ich mich auf dem Rechner ein, auf dem ich Daten sichern will. Wenn ich noch keinen öffentlichen SSH-Schlüssel habe, lege ich einen neuen an (kein Passwort für den Schlüssel vergeben!):
ssh-keygen -t rsa

Diesen kopiere ich dann auf den Rechner, der die Sicherungskopien speichern soll:
ssh-copy-id benutzer@backup.agrafix.net

Nun lege ich eine neue Datei an, die den Verschlüsselungsschlüssel enthält:
openssl rand -base64 512 > key.txt

Jetzt zum eigentlichen Script:

Um ein Backup wieder einzuspielen, muss die entsprechende .tar.gz Datei zurück kopiert werden, und kann dann mit

openssl enc -in $1 -kfile key.txt -aes-256-cbc -d | tar -zxvf -

entpackt werden.

 

GHC 7.6.3 auf Ubuntu 12.04 installieren

Eine Kurzanleitung für’s installieren von GHC-7.6.3, cabal und darcs auf Ubuntu 12.04 (64-Bit):

Zunächst der GHC:

Dann cabal:

Dann in der .cabal/config die Zeile „jobs“ auskommentieren.

Dann noch darcs:

 

Ubuntu: Apache2 nicht bei Systemstart starten

Wer kennt das nicht: apache2 ist auf einer Ubuntu Kiste installiert, man möchte es aber nicht ständig laufen haben (weil man zB einen anderen WebServer verwendet). Folgende Befehle helfen weiter:

Apache2 stoppen:

Apache2 Autostart deaktivieren:

 

How-To: Automatisches MySQL Dump FTP-Backup

Hallo,
da bei vielen Anwendungen nicht nur Dateien sondern auch Datenbanken wichtig sind, ist es auch enorm wichtig diese mitzusichern. Eine einfache Möglichkeit um MySQL Datenbanken in der Shell zu sichern ist es, einen MySQL Dump anzulegen. Das geht schnell und einfach – mit diesem Tool kann man einzelne Datenbanken und ganze Server sichern und wiederherstellen.
Das per Hand zu machen wäre eine Heidenarbeit, ein Cronjob ist deshalb eine enorme Entlastung.
Gerne hat man aber mehrere Datenbanksicherungen zur Verfügung, falls ein Fehler in dem Dump vorliegt und dieser irreperabel ist. Es ist also intelligent mehrere Dumps hochzuladen und sie nach dem aktuellen Datum + evtl. dem DB-Namen. Für das Datum gibt es in der Shell ‚date‘. Mit date kann das Datum in verschiedenen Formaten ausgegeben und bspw. in einer Variable abgespeichert werden. Um das dann schließlich auf einen FTP-Server hochzuladen, benötigen wir zum Autoeinloggen einen Eintrag in der ~/.netrc. Dann können wir einfach mit wput den Dump hochladen. Auf meinem Ubuntu System ist wput standardmäßig nicht installiert, wir können es aber ganz einfach mit ’sudo apt-get install wput‘ nachinstallieren.

Um uns das ganze zu vereinfachen und nicht jedes Mal die ganzen Befehle einzugeben, erstellen wir ein einfaches Shell-Script.
Da wir per wput im Script hochladen und während des Vorgangs nichts eingeben können, immerhin ist es automatisiert, benötigen wir die erwähnte ~/.netrc. In ihre konfigurieren wir die Login Dateien.
~ steht immer für das Homeverzeichnis des angemeldeten Users. In meinem Fall ist das /home/dominic/. Heißt also die File ist in Wirklichkeit /home/dominic/.netrc
Im Normalfall ist diese leer. Hier schreiben wir den Host-, Loginnamen und das Passwort rein:

machine: ftp.domain.com
login: LOGIN
password: PASSWORD

Die richtigen Rechte sind 600. Die setzen wir mit “ chmod 600 ~/.netrc“.
Danach ist es uns möglich, ohne Password oder Login auf dem FTP Server, hier ftp.domain.com, einzuloggen.

Da wäre nur noch das eigentliche Script. Hier ist es einfach mal schnell runtergeschrieben, die Erklärung erübrigt sich dank der Kommentare.
Vorweg: Bei mysqldump ist es enorm wichtig, dass Passwort direkt und ohne Leerzeichen hinter -p zu schreiben, sonst kommt ein Syntax Error.

#!/bin/sh
#MySQL-Dump Backupscript

#Schreiben des aktuellen Datums im Format DD.MM.YYYY in eine Variable
today=$(date +%d.%m.%Y)

#Erstellen eines MySQL Dump einer einzelnen Datenbank
mysqldump –database DBNAME -u USER -pPASSWORD

#Falls nicht vorhanden wird wput installiert
apt-get install wput

#Hochladen des Dumps
wput $today ftp://ftp.domain.com

Zum Schluß kommt noch der Cronjob.
Dazu editieren wir die Crontabelle mit „crontab -e“

55 23 * * * sh /PFAD/ZUM/SCRIPT.sh

Wenn ihr alles richtig gemacht habt, dann startet jeden Tag um 23:55 Uhr ein Cronjob, der einen MySQL-Dump der von euch ausgewählten Datenbank macht.

Fehler oder Anmerkungen bitte in die Kommentare schreiben!

Nachtrag:

Wenn ihr euren Dump nicht nur nach dem aktuellen Datum benennen wollt, sondern z.B. auch nach der Datenbank, so könnt ihr den Namen einfach an „date +%d.%m.%Y“ hängen. Beispiel: „date +%d.%m.%Y-bthost.sql“ gibt 12.08.2010-bthost.sql aus. Außerdem könnt ihr die Darstellung des Datums auch variieren, schaut dazu am besten in die Man-Page von date.

 

Was ist Virtualisierung

Seit Mitte letzten Jahres beschäftige ich mich intensiv mit Virtualisierung. Es fing mit der Virtualbox an und ist derzeit bei zwei Xen Servern auf denen verschiedene Windows Server Versionen laufen. Damit teste ich Desktop Virtualisierung. Als IT-Schüler bekomme ich kostenlosen Zugriff auf die meisten MS Systeme.
In der Zeit haben mich viele Freunde gefragt, was eigentlich Virtualisierung ist und wer so einen Mist braucht.

Es gibt noch heute in der IT-Welt ein großes Problem: Viele Applikationen wollen unterschiedliche Systeme: Warenwirtschaftssysteme erwarten irgendein Windows, Webserver sind aber gerne auf einem Linuxkernel. Da ist immer das Problem, dass man zwei Server braucht, Hard- und Softwareseitig. Das ist teuer und uneffizient. Zwei Server fressen den doppelten Strom, benötigen doppelte Kühlung, haben die doppelten Anschaffungskosten und langweilen sich.
Dagegen hilft Virtualisierung.
Der sogenannte Hypervisor, das ist die Virtualisierungssoftware, setzt entweder direkt auf der Hardware auf (z.B VMware ESXi) oder ist ein normales Program in einem bereits installierten Betriebssystem (z.B. VMware Server, Virtualbox). Dieser Hypervisor teilt die Hardware auf. Mit ihm ist es möglich, aus einem Hostsystem mit beispielsweise einem vier Kern Prozessor, 16GB RAM und einer Terrabyte Festplatte zwei Server mit je zwei Kernen, 8GB RAM und 500GB Festplatten Speicher. Jede Kombination ist möglich. Wieviele verschiedene virtuelle Maschinen möglich sind, hängt vom Hypervisor und der, falls vorhanden, Lizenz ab.

Der Hypervisor teilt einen realen Host also in mehrere virtuelle Guests auf. Es ist also möglich, mehrere Betriebssysteme auf ein und der selben Hardware zu installieren. Jeder Guest kann ein eigenes Betriebssystem bekommen. So können zum Beispiel das genannte Warenwirtschaftssystem und der Webserver friedlich nebenher laufen.
Ein weiterer Vorteil ist auch, dass die Server ganz einfach auf einen neuen Host umziehen können. Dazu müssen, wenn überhaupt, die Guests nur exportiert werden und auf dem neuen Host wieder importiert werden. Voraussetzung dafür ist nur, dass der Hypervisor entweder der gleiche ist, oder ein Konverter verfügbar ist.
Es gibt neben der herkömmlichen Server Virtualisierung mittlerweile auch Applikationen- oder Desktopvirtualisierung.
Bei der Applikationenvirtualisierung wird für den Benutzer kein ganzer Server virtualisiert, sondern nur eine einzelne Applikation wie z.B. Word. XenApp von Citrix ermöglicht das.
Die Desktopvirtualisierung stellt dem Benutzer einen eigenen Desktop zur Verfügung. Der Benutzer kann sich über einen Miniclienten auf seinen eigenen Desktop verbinden. Das ist mit einem Terminalserver vergleichbar, allerdings hat der Benutzer hier einen komplett eigenen Desktop und nicht nur eine Sitzung. Das ermöglicht XenDesktop ebenfalls von Citrix. Hierzu werdet ihr bald aber mehr erfahren.
Das neumodische Cloudcomputing basiert ebenfalls auf Virtualisierung. Hier ist es wichtig Hardware immer an den derzeitigen Bedarf angepasst zur Verfügung zu stellen. Virtualisierung eignet sich dafür natürlich hervorragend. Voraussetzung dafür ist ein Hardwarepool.

 

Linux is for communists

Hach, was bin ich doch froh, dass die Dummheit noch nicht ganz auf dieser Welt augestorben ist.
Wie sonst könnten wir über die Ultrarechten der USA lachen?
Ich bin eben zufällig über einen Artikel eines „Kollegen“ aus dem Jahr 2006 gestoßen.
Der Autor des Artikels ist der Ansicht, wir Eurpäer würden die amerikanische Computer Branche hassen und versuchen mit Linux die Kontrolle über die amerikanischen Computer zu erlangen.

Like all the greatest American engineering, it’s an example of innovation that makes a growing group of European and Chinese hackers jealous. They hate our lead in computing technology and will stop at nothing until they have control of all of our computers. I’m talking about a project called ‘Linux’, something you may not have encountered, but might do some day.

Wie alle genialen amerikanischen Erfindungen, ist es ein Beispiel für eine Innovation, die eine größerwerdende Gruppe von europäischen und chinesischen Hackern eifersüchtig macht. Sie hassen unsere Führung der Computer-Technologie und werden mit nichts aufhören, bis sie die Kontrolle über all unsere Computer haben. Ich rede über ein Projekt mit dem Namen „Linux“, manche haben vielleicht schon von gehört, andere werden vielleicht noch von hören.

Ich möchte jetzt nicht weiter auf den Artikel eingehen, das wurde ja schon wunderbar gemacht.
Der Blog wird bei mir im FF 3.6 schlecht formatiert angezeigt, warum das so ist, weiß ich nicht, spielt auch keine Rolle, passt für mich irgendwie aber auch zu den netten Autoren dort.
Jedenfalls, rechts hab ich dann noch schnell einen Link mit dem Titel Ubuntu gesehen.
Da geht es weiter mit der Linux-Hetze.

It looks almost exactly the same as the previous version lacking any of the visual style, reliability and advanced features of the industry standard Windows Vista.

Es sieht ganz danach aus, als fehle jeder visuelle Style, jede Zuverlässigkeit und alle erweiterten Features des Standards der Industrie: Windows Vista.

Ganz ehrlich? Ich sehe das genau andersrum.

We decided to look under the hood of Linux to see if this ‘Samizdat’ operating system concealed any notable secrets. According to the anonymous ?.t.xt? file that came with the disk this OS had a new feature called ?Completely Fair Scheduler? – after a great deal of research we were able to conclude that this was an attempt to bring the principles of Marxism onto your PC. The Linux nerds are upset that some people have faster computers than others, so this new feature takes processing power from fast computers and donates them to people who have slower computers.

Wir haben uns dazu entschieden, einen Blick unter die Haube dieses „Samisdat“-Betriebssystemes um zu sehen, ob es irgendwelchen verborgenen Geheimnisse hat. Nach der beiligenden anonymen „t.xt“-Datei, hatte das BS ein neues Feature namens „Completely Fair Scheduler“ – nach etwas Nachforschung waren wir in der Lage daraus zu schließen, ist das ein Versuch, die Prinzpien des Marxismus auf den PC zu bringen. Die Linux Nerds sind darüber aufgebracht, dass manche Leute schnellere Computer als andere haben, dieses neue Feature nimmt Rechenleistung von schnellen Computer und spendet sie zu Leuten, welche einen langsamen Computer haben.

Jetzt dreht er völlig durch, angeblich hat er sich ja informiert. Blöd nur, dass CFS was komplett anderes ermöglicht.

Finally we notice that Ubuntu Linux is the first OS to come bundled with software that runs Bit-torrent: As we previously reported this is software used by European pirates to rip off American industry and steal bandwidth from telcos to distribute porn. Once again we should compare Window’s sensible bundling strategy, in which only basic system tools such as a web-browser are integrated into the core-operating system. What on earth possessed the Linux kernel developers to add ?low-level? support for BitTorrent, unless of course this is a European plan to incriminate us all.

Außerdem bemerkten wir, dass Ubuntu Linux das erste Betriebssystem ist, in das direkt BitTorrent-Software gepackt ist: Wie wir vorher schon berichtet haben, wird diese Software von Europäischen Piraten benutzt um die amerikanische Industrie zu schädigen und um Bandweite zum Veröffentlichen von Pornos zu stehlen. Wieder einmal sollten wir Windows sensible Software Strategie betrachten, dort werden nur Tools wie ein Webbrowser direkt in das Kern-System integriert. Was hat die Linux Kernel Entwickler dazu gebracht, „low-level“ Support für BitTorrent zu betreiben?

Und wieder die bösen Europäer mit ihrem bösen BitTorrent.

So, jetzt aber genug Zitate.

Witzig finde ich übrigens, dass der Server tatsächlich noch immer unter Linux läuft. Auch die kleine Liste mit den Präsidentenkandidaten ist nicht ganz unlustig.
Ich starte gleich meinen PC mit dem Betriebssystem der UK-Terrorzelle Canonical und schau auch mal auf unserem Server mit dem selben OS vorbei.


Ergänzung:

Wow, er benutzt also auch Pidgin als Messenger! Dieser böse linke Terrorist!
Man sehe sich die Schnellstartleiste an.

Our blog (the one you are reading right now) is hosted on windows vista.

Es gibt eine Windows Vista Server Edition? Echt?

Ich hab noch schnell die Zitate grob übersetzt 😉

Links:

http://klti.de/blog/2006/05/01/linux-kommunisten-nazi-kram

http://shelleytherepublican.com/2006/04/20/linux-a-european-threat-to-our-computers-by-tristan.aspx
http://shelleytherepublican.com/problems/the-definitive-review-of-ubuntu-linux-804-hardy-heron
http://www.linux-foundation.jp/uploads/seminar20080709/lfjp2008.pdf
http://www.shelleytherepublican.com/phpinfo.php

 

Linux: Prozess im Hintergrund starten

Hallo,

ich wurde gestern gefragt wie man mit Linux ein Prozess im Hintergrund startet. Hier nun die Antwort:

Um einen Prozess über die Linux Konsole im Hintergrund zu starten reicht es ein „&“ an das Ende eines Kommandos zu hängen – dies würde dann beispielsweise bei einem python-script so aussehen:

Nun bekommen wir aber das Problem, das der Prozess weiterhin die Ausgaben in die gleiche Konsole schreibt. Um dies zu unterbinden können wir die Ausgabe einfach umleiten:

Hier werden Fehler nach /dev/null umgeleitet und Ausgaben nach /home/agrafix/output.txt geschrieben.

Um nun ein Programm welches im Hintergrund läuft zu beenden muss man die ProzessID wissen. Diese wird übrigens ausgegeben wenn man ein Prozess erfolgreich im Hintergrund gestartet hat. Wenn man die Prozess-Id nicht weiß, kann man sie mit pidof erfahren:

Nun bekommt man die ProzessID zurückgegeben. Um den Prozess jetzt zu killen kann man wie folgt verfahren:

Ich hoffe ich konnte euch weiterhelfen 😉

 

VMware ESXi 4

Hallo,
grade hab ich für BTHost auf unserem Hetzner Server ESXi installiert, nachdem ich es ja schon gestern für BattleFright gemacht habe.
Hat super geklappt, ein schönes System, sogar die Netzwerkconfigs waren spielend einfach gemacht. Endlich kein Rumgebastle mehr mit VMware Server 2. Gut, das ist dann jetzt auch 15 € im Monat teurer (Flexi-Pack), dafür klappt das gut, das Flexi-Pack hätte ich sowieso bald gebraucht.
Connecten kann man leider nur unter Windows, dafür braucht man den „VMware vSphere Client 4.0“, der auch schön einfach zu bedienen ist.
Sonntag zieht BTHost dann endlich wieder auf den Server, dann sollten alle Probleme gelöst sein.
Dann setz‘ ich auch mal, wenn ich denn dann noch Zeit habe, einen ESXi in einer VM auf, damit ihr euch das mal ansehen könnt. Ist quasi ein Betriebssystem nur auf virtualisierung ausgelegt, ähnlich wie Xen.
Xen wollte ich nicht benutzen, ich bin VMware gewohnt und wechsle nur ungerne etwas, das schon funktioniert.

Wünsche allen einen guten Rutsch ins neue Jahr!
Fragen könnt ihr ruhig stellen.