My Universe Blog » Entries Tagged as FreeBSD
Der JMStV wurde erlegt
Posted by Jesco Freund at Dec. 16, 2010 10:27 p.m.
Waidgerecht zur Strecke gebracht wurde er ausgerechnet durch ein mehrheitstechnisches Debakel im Landtag von NRW. Dieses Schmierentheater der letzten drei Tage war so schlecht, das hätte sich glatt jemand bei RTL2 ausgedacht haben können…
Das muss man sich noch mal auf der Zunge zergehen lassen. Die CDU (ja genau, ausgerechnet die CDU!) kündigt an, die JMStV-Novelle abzulehnen. Die vorhergehende Ankündigung der Grünen, aus „parlamentarischen Zwängen“ dafür zu stimmen, war ungewollt strategisch brilliant – aus Reflex musste die CDU ja dann dagegen sein. Geht ja gar nicht, mit den Grünen eine gemeinsame Position zu haben… die CDU hat dabei bloß vergessen, dass Rot-Grün im Landtag gar keine eigene Mehrheit hat. Bwahahahaha, was für eine Komödie!
Na ja, so darf ich mein Blog wenigstens ungeniert online lassen. Ohne Label, ohne Jugendschutzbeauftragten und auch weiterhin ohne schmutzige Bilder ![]()
No comments | Defined tags for this entry: blog, civil rights, FreeBSD, politics
Da waren's nur noch… einer (und ein kleiner)
Posted by Jesco Freund at Sept. 10, 2010 9:50 p.m.
… oder so ähnlich. Heute ist mein Server bei Host Europe vom Netz gegangen – OK, nach drei Jahren auch nicht mehr der frischeste, was die Hardware (in Relation zur Miete) anging. 2 GB RAM waren dann mittlerweile doch zum Engpass geworden – ein paar Plone-Installationen fressen die ganz schön schnell auf ![]()
Trotzdem stimmt mich das ein kleines bisschen wehmütig – mit der Kiste hatte ich schlicht nie Ärger. Keine Hardware-Probleme, keine Treiber-Probleme (was manche Hoster so verbauen ist schon abenteuerlich), flotte Netzanbindung und guter Support (wenn ich von letzterem auch nur sehr selten Gebrauch machen musste).
Nun bleibt mir „nur“ noch mein Hetzner EQ4, der dank seiner hohen Leistungsfähigkeit mittlerweile alles hostet, was es bei mir zu hosten gab – ach ja, und die ½ kommt von meinem kleinen VPS aus dem Beta-Programm von EUServ.
No comments | Defined tags for this entry: FreeBSD, server
Traurige Nachricht zu OpenSolaris
Posted by Jesco Freund at Aug. 13, 2010 10:39 p.m.
Im Netz kursiert ein geleaktes Schreiben (Echtheit nicht bestätigt), in dem Oracle das Ende von OpenSolaris erklärt. Künftig soll es wohl – analog zur Oracle Database – eine Express-Version geben, die zwar kostenfrei, aber nicht Open Source ist. Ob diese auch im Funktionsumfang gegenüber dem für nächstes Jahr angekündigten Solaris 11 abgespeckt sein wird, war dem Schreiben nicht zu entnehmen. Dazu passt eine Diskussion im OpenSolaris-Forum.
Das Ende von OpenSolaris zieht weitaus schwerere Konsequenzen nach sich, als vielleicht auf den ersten Blick zu vermuten ist. Einige Technologien, die im Rahmen des OpenSolaris-Projekts entwickelt wurden, sind auch in andere Open Source Projekte eingeflossen. Zu den prominenteren Vertretern gehören dabei ZFS und DTrace, die beispielsweise in FreeBSD eingeflossen sind.
Durch das aktuelle Verhalten von Oracle (monatelanges Schweigen, seltsames Gebahren gegenüber dem OpenSolaris-OGB und zuletzt die Patenttrollerei) werden diese Technologien zum Risiko für FreeBSD. Zwar dürfen ZFS und DTrace rein lizenzrechtlich problemlos als Bestandteil des FreeBSD-Kernels verteilt werden. Jedoch kann wohl derzeit nicht ausgeschlossen werden, dass Oracle diese beiden Produkte als Closed Source weiterentwickelt und vom derzeit verfügbaren Quellcode ausgehende Forks mit Patentklagen bedrohen wird.
Auch wage ich zu bezweifeln, dass außerhalb von OpenSolaris und ohne Unterstützung durch ehemals Sun eine effektive Weiterentwicklung von ZFS und DTrace möglich sein wird – dazu fehlt schlicht die Manpower. ZFS beispielsweise ist bei FreeBSD eine One Man Show – für die Portierung gerade noch ausreichend, aber Weiterentwicklung wird so nicht funktionieren. Da tröstet es auch wenig, dass vor gerade mal 10 Tagen mit dem Illumos Project der Versuch gestartet wurde, ein wirklich freies OpenSolaris zu entwickeln. Auch dieser Trupp ist nicht gerade üppig mit Manpower ausgestattet, und wenn Oracle mit der Patentkeule winkt, sind die Lichter da schneller wieder aus, als dort die Sonne aufgehen kann.
Irgendwie war ja soetwas zu befürchten – Oracle ist in der Open Source Welt nicht wirklich verankert, und Larry Ellison hat schon immer keinen Zweifel daran gelassen, dass es in allererster Linies um's Geldverdienen geht. Erschreckend ist nur, dass OpenSolaris nicht die letzten Open Source Projekte sind, die durch die Sun-Übernahme in ihrer Existenz bedroht sind. Mal gucken, wen die sich als nächstes zur Terminierung vornehmen – MySQL, oder doch erst NetBeans?
No comments | Defined tags for this entry: FreeBSD, OpenSolaris, Oracle, Sun, ZFS
cdeploy Has Entered FreeBSD Ports
Posted by Jesco Freund at May 9, 2010 5:32 p.m.
The utility cdeploy (developed by me within the scope of the root-tools project) has been committed to the FreeBSD Ports. From now on, installing cdeploy on FreeBSD is as simple as:
cd /usr/ports/sysutils/cdeploy
make install clean
Originally, cdeploy has been developed to deploy centrally (e. g. in a scm) maintained configuration files onto a target system. A sample configuration for this purpose is described in the RootForum wiki (German). Of course, you can abuse cdeploy for any other kind of files… ![]()
No comments | Defined tags for this entry: code, development, FreeBSD, ports, root-tools, RootUtils
Mein Server wird heute Hundert
Posted by Jesco Freund at April 18, 2010 9:26 a.m.
Nein, nicht Jahre alt, sondern hundert Tage Uptime haben. FreeBSD 8.0-p2 hält sich also ganz ordentlich, was Bugs im Basis-System anbelangt…
uptime
9:23AM up 100 days, 20:22, 1 user, load averages: 0.00, 0.01, 0.00
No comments | Defined tags for this entry: FreeBSD, server
Backups von ZFS Datasets
Posted by Jesco Freund at March 27, 2010 11:46 a.m.
Alle meine Jails und ihre Nutzdaten residieren auf ZFS Datasets. Dank ZFS Snapshots kann man sie so relativ leicht sichern, ohne den Betrieb des Servers dabei zu stören. Allerdings braucht man noch ein Werkzeug, das die Snapshots erzeugt, Backups erstellt, diese dann auf den Backupserver hochlädt und die Snapshots auch wieder entsorgt. Bisher habe ich das mit einem frickeligen Shell-Skript erledigt; allerdings war ich damit in letzter Zeit nicht mehr besonders zufrieden. Was ich eigentlich möchte, ist ein Tool, das mir folgende Möglichkeiten bietet:
- aufgeräumte Crontab mit möglichst wenig Einträgen für Backups

- verschlüsselte Backups (die UMASK auf den Backup-Servern meines Providers gefällt mir nicht)
- möglichst keine lokalen temporären Dateien
- Zusammenfassen von ZFS Datasets zu logischen Gruppen mit Pre- und Post-Snapshot Actions
- Automatische wöchentliche Rotation der Backups auf dem Backup-Server
Also habe ich mich daran gesetzt, ein ordentliches Shellskript zu schreiben, das die o. g. Bedingungen erfüllt. Herausgekommen dabei ist zbackup. Die verlinkte Beta1 funktioniert immerhin schon so gut, dass ich sie produktiv nutze – ein Release folgt aber erst nach weiteren Tests, möglichst auch durch andere Tester.
Um zu verdeutlichen, was zbackup alles leisten kann, zeige ich hier mal an einem etwas komplizierteren Beispiel, wie man zbackup richtig konfiguriert. Die härteste Nuss für Backup-Tools ist mithin, konsistente Backups von Datenbank-Servern zu erzeugen. Anhand eines MySQL-Servers wird im folgenden beschrieben, wie man zu konsistenten Backups gelangt:
continue reading Backups von ZFS Datasets
No comments | Defined tags for this entry: backup, FreeBSD, root-tools, ZFS
New Release Candidate for jail-update 0.2
Posted by Jesco Freund at Jan. 31, 2010 12:45 p.m.
Today, after a long period of… doing nothing concerning the root-tools project, I uploaded a new release candidate for jail-update 0.2 (download). The current release candidate (rc5) now works fine with portmaster >=2.17 and got some bug fixes. For update checks, I also switched back to the more compact output format of the 0.1 releases – much more legible as for my taste…
I recommend updating to this release candidate even though it's not a release yet (but likely to become one) since portmaster's command line syntax has changed with version 2.17. This prevents older versions of jail-update from working properly (you have to confirm each single port upgrade, so you might be even quicker jumping into each jail and starting the upgrade manually
).
No comments | Defined tags for this entry: FreeBSD, root-tools, scripting, shell
FreeBSD 8 takes further step towards release
Posted by Jesco Freund at Oct. 28, 2009 4:10 p.m.
The second release candidate for FreeBSD 8 (8.0-RC2) is now available, as announced by Ken Smith. This is an important step towards a final release more than a month after the first release candidate had been published. However there is still some work to do, meaning a third release candidate will precede the final release according to Ken's announcement.
Update: I just upgraded the server this blog is running on to 8.0-RC2. The upgrade was quite painless (no big surprises); most of the downtime (~1 hour) was due to the fact I had to run mergemaster for the host system plus each jail on the box (currently there are seven of them). Doing so became necessary due to a change in /etc/rc.subr affecting a whole bunch of rc scripts. The other significant change affecting my setup was the introduction of the coretemp device (for the on-die sensor on Intel Core and newer CPUs). Enabling this device provides per-core temperature information (e. g. via sysctl -a | grep -i temp) - very accomodating for monitoring…
No comments | Defined tags for this entry: FreeBSD
[CFT] jail-update 0.2.0-rc2 Ready for Testing
Posted by Jesco Freund at Oct. 10, 2009 4:35 p.m.
I am happy to announce that the second release candidate for the upcoming jail-update-0.2 release is ready for testing. You can grab the archive either from SourceForge or from my personal server (more convenient if you would like to download it using wget or fetch).
What's new? Most changes are not visible to users and only concern implementation internals. However, there are some major changes having a visible impact on the application behaviour:
- The new -n option prevents any escape sequences in the output of jail-update. This is useful if you would like to run jail-update in a non-interactive way (e. g. as a cron job) and redirect its output into a file, email or similar.
- Warnings and errors occurring entail a clearly visible, colour-coded output (amber for warnings, red for errors) – of course these colour markings get deactivated when run with the -n option…
- The unpredictable behaviour concerning the jail order should be fixed by now; jails are now always processed in ascending order of their numeric jail ID.
- The portmaster output indicating available port updates is more detailed now and contains the old version as well as the new one. Furthermore, the output is now grouped among the package classes used by portmaster (root, trunk, branch and leaf ports).
Please test this release candidate. Should you discover any issues, please let me know. Any feedback, particularly concerning the new output format, is welcome and will be taken into account.
Happy Testing!
No comments | Defined tags for this entry: FreeBSD, packet management, root-tools, scripting
Portable Shell-Skripte mit absoluten Pfaden
Posted by Jesco Freund at Oct. 3, 2009 2:23 p.m.
Gute Shell-Skripte sprechen Binaries mit dem absoluten Pfad an. Dadurch wird das Skript unabhängig von der Umgebungsvariablen $PATH und funktioniert auch manierlich, wenn es beispielsweise üder die Crontab oder unter einem andere User aufgerufen wird. Soweit die Theorie, doch in der Praxis gibt es einen gemeinen Fallstrick, der den Wanderer zwischen den Unix-Welten das Leben bzw. Skripten schwer macht. Betrachten wir einmal das folgende Beispiel:
#!/bin/sh
b_uname="/bin/uname"
b_awk="/bin/awk"
name=`$b_uname -n | $b_awk -F. '{print $1}'`
echo "Das System heisst ${name}."
exit 0
Dieses kleine Skript ist ein (zugegebenermaßen etwas umständlicher) Ersatz für den Befehl hostname -s – das tut aber eigentlich nichts zur Sache. Viel spannender ist die Frage, wie portabel dieses Skript arbeitet. Unter CentOS 5.3 kann ich es fehlerfrei ausführen. Anders sieht es aus, wenn dieses Skript auf einer Maschine mit FreeBSD oder Solaris aufgerufen wird: Unter FreeBSD erhält man Fehlermeldungen („Command not found“), da uname und awk nicht wie bei CentOS und Solaris in /bin liegen, sondern in /usr/bin (bei Solaris kommt es ebenfalls zu Problemen, die aber darin begründet sind, dass die Solaris-Implementierungen von uname und awk von den GNU-Implementierungen abweichen – doch dazu später).
Unter den verschiedenen Unix-Derivaten und sogar Linux-Distributionen liegen Binaries also nicht immer am selben Ort. Müssen portable Skripte also darauf verzichten, absolute Pfade zu verwenden und sich auf $PATH verlassen? Natürlich nicht. Allerdings funktioniert der Schnellschuss „dann definiere ich Binaries eben systemabhängig“ auch nicht so ohne weiteres – man sieht ja, dass das häufig dazu herangezogene uname schon nicht sehr portabel gelagert ist. Es gibt jedoch einen eleganteren Weg, der sich nur auf Shell-interne Funktionen stützt und daher tatsächlich komplett portabel ist:
#!/bin/sh
detect_binary() {
local BINDIRS="/bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin /opt/csw/bin /opt/sfw/bin /usr/openwin/bin"
for i in $BINDIRS; do
if [ -x "${i}/${1}" ]; then
echo "${i}/${1}"
break
fi
done
}
b_uname=$(detect_binary "uname")
b_awk=$(detect_binary "awk")
Die Funktion detect_binary probiert alle angegebenen Pfade durch, bis sie in einem auf eine ausführbare Datei mit dem gesuchten Namen stößt. Anschließend gibt sie den absoluten Pfad des gefundenen Binaries zurück. Auf diese Weise wird zum einen sichergestellt, dass nur Binaries aus den vorgegebenen Pfaden verwendet werden, und zum anderen, dass die Binaries weiterhin unabhängig von der Umgebungsvariable $PATH gefunden werden können.
Eines löst dieser Code-Schnipsel jedoch nicht: Das unterschiedliche Verhalten von gleichnamigen Binaries unter verschiedenen Unix-Derivaten. Auf vielen Nicht-Linux Systemen stehen Binaries der GNU-Implementierung zur Verfügung, oder zumindest Binaries, die das Verhalten der GNU-Implementierungen nachahmen. Unter FreeBSD beispielsweise findet man in gsed und gawk die GNU-Implementierungen, während sich hinter sed und awk die traditionellen BSD-Implementierungen verbergen. Die <programm>-Binaries findet man im übrigen auch unter Linux. Benötig man also in einem Skript explizit das GNU-Verhalten (beispielsweise beim Einsatz von sed -i, so sollte man auch die GNU-Binary-Namen verwenden.
Happy Scripting!
4 comments | Defined tags for this entry: code, FreeBSD, Linux, programming, scripting, shell, Solaris

Content is subject to the conditions of the