Graz: Sysadmin-Job zu vergeben
March 3rd, 2009Ein Freund hat mich gebeten das mal zu bloggen:
Die Scotty Group Austria GmbH in Graz sucht ab sofort einen Sysadmin für ihren Standort in Graz, die offiziellen Details sind online zu finden.
Ein Freund hat mich gebeten das mal zu bloggen:
Die Scotty Group Austria GmbH in Graz sucht ab sofort einen Sysadmin für ihren Standort in Graz, die offiziellen Details sind online zu finden.
Details siehe Teleschirm Blog. [via Ronny]
Wann: 19. März 2009
Wo: MedienKunstLabor im Kunsthaus Graz
Was: open source creative commons Gespräche Party Live-Modelling event Talk BlenderDer Art Director von BigBuckBunny ist in Graz und zeigt, was mit Blender machbar ist. Weitere Details unter http://fff.murspace.net/Members/dorian/events/open-source-talk-live-modelling
[via Dorian Santner]
Alright, Debian GNU/Linux 5.0 AKA as Lenny has been released. Time for a Debian unstable unfreeze party! 8-)
What does the new stable release bring for system administrators? I’ll give an overview what news you might expect when upgrading from Debian GNU/Linux 4.0, codename Etch (released on 8th April 2007) to the current version Debian GNU/Linux 5.0, codename Lenny (released on 14th February 2009). I try to avoid duplicated information so make sure to read the release announcement and the official release notes for Lenny beforehand.
Noteworthy Changes
Virtualisation
Virtualisation related new tools:
Desktop oriented packages like virtualbox and qemu are available as well of course.
Noteworthy Updates
This is a (selective) list of some noteworthy updates:
New packages
Lenny ships over 7000 new packages. Lists of new/removed/replaced packages are available online. I’ll name 238 sysadmin related packages that might be worth a look. (Note: I don’t list addon stuff like optional server-modules, docs-only and kernel-source related packages. I plan to present some of the following packages in more detail in separate blog entries.)
Further Ressources
I hope you know the comics of xkcd and abstrusegoose about Unix time. Unix time?
Unix time, or POSIX time, is a system for describing points in time, defined as the number of seconds elapsed since midnight Coordinated Universal Time (UTC) of January 1, 1970, not counting leap seconds. It is widely used not only on Unix-like operating systems but also in many other computing systems.
— http://en.wikipedia.org/wiki/Unix_time
This are my solutions to convert the Unix time ‘1234567890’ to human readable format:
GNU date:
% date -d @1234567890 Sat Feb 14 00:31:30 CET 2009
BSD date:
% date -ur 1234567890 Sat Feb 14 00:31:30 CET 2009
Zsh:
% zsh -c 'zmodload zsh/datetime ; strftime "%c" 1234567890' Sat 14 Feb 2009 12:31:30 AM CET
Python:
% python -c 'import time; print time.ctime(1234567890)' Sat Feb 14 00:31:30 2009
Ruby:
% ruby -e 'puts Time.at(1234567890)' Sat Feb 14 00:31:30 +0100 2009
Perl:
% perl -e 'print scalar localtime(1234567890),"\n";' Sat Feb 14 00:31:30 2009
MySQL:
% echo 'select FROM_UNIXTIME(1234567890);' | mysql -h localhost FROM_UNIXTIME(1234567890) 2009-02-14 00:31:30
PostgreSQL:
% echo "SELECT TIMESTAMP WITH TIME ZONE 'epoch' + 1234567890 * INTERVAL '1 second';" | psql test
?column?
------------------------
2009-02-14 00:31:30+01
(1 row)
C:
% echo '
#include <stdio.h>
#include <time.h>
int main() {
time_t sec;
struct tm * ts;
sec = (1234567890);
ts = localtime(&sec);
printf("%s", ctime(&sec));
return 0;
}' | gcc -x c - && ./a.out
Sat Feb 14 00:31:30 2009
Java:
% cat date.java
import java.util.Date;
import java.util.TimeZone;
class UnixTime {
public static void main(String[] args) {
TimeZone.setDefault(TimeZone.getTimeZone("CET"));
System.out.println(new Date(1234567890L*1000L));
}
}
% javac date.java && java UnixTime
Sat Feb 14 00:31:30 CET 2009
Javascript:
% echo 'new Date(1234567890*1000);' | smjs -i js> Sat Feb 14 2009 00:31:30 GMT+0100 (CET)
PHP:
% php --run 'print date("r", "1234567890");'
Sat, 14 Feb 2009 00:31:30 +0100
Board Info: #2
Manufacturer: "[snip]"
Product: "To be filled by O.E.M."
Version: "To be filled by O.E.M."
Serial: "To be filled by O.E.M."
Asset Tag: "To Be Filled By O.E.M."
Type: 0x0a (Motherboard)
Features: 0x09
Hosting Board
Replaceable
Location: "To Be Filled By O.E.M."
Chassis: #3
Note: I snipped the manufacturer. Feel free to guess who is responsible for the “To be filled by O.E.M.” entries though.

Die Grazer LinuxTage 2009 (GLT09) rücken näher.
Die Grazer LinuxTage werden am Samstag, den 25. April 2009 wie schon bisher auf der FH Joanneum stattfinden. Wir suchen auch heuer
wieder gute Vorträge. Vor Kurzem ist Call for Lectures online gegangen. Du willst deine Software unter die Leute bringen? Es gibt ein gutes Projekt das unbedingt präsentiert gehört? Dann halte doch einen Vortrag auf den GLT09! Es muss übrigens nicht zwingend mit Linux zusammenhängen, die Grazer LinuxTage sind bekannt für ein breit gefächertes Programm: Community, Internet/Netzwerke, Projektmanagement im Open Source-Umfeld, andere freie Betriebssystem,… sind ebenfalls gern gesehene Themen.
Community-Stände sind natürlich ebenfalls wieder geplant. Wer diesbezüglich etwas machen möchte, möge sich bitte mit einer kurzen Mail bei mir melden.
Ich hoffe auf ein Wiedersehen auf den Grazer LinuxTagen 2009!
Das BarCamp in Klagenfurt (Kärnten) findet heuer am 7. und 8. Februar statt. Als Veranstaltungsort ist wieder die Universität Klagenfurt geplant.
Vortragstitel: Mehrantenne Systeme – Schaltungstheoretisch basierte Kommunikationstechnik
Vortragender: Prof. Dr. techn. Josef A. NOSSEK
Datum: 29.01.2009, 18:30-20:00 Uhr
Ort: TU Graz – HS E, 1. Stock Kopernikusgasse 24
Kosten: Die Teilnahme an dieser Veranstaltung ist kostenlos, um eine Anmeldung wird jedoch gebeten.Über den Vortrag:
Mehrantennensysteme bieten die Möglichkeit, den stets steigenden Bedarf an Datenrate über einen drahtlosen Zugang begrenzter Bandbreite zum Festnetz zu befriedigen. Sie sind deshalb seit mehr als einem Jahrzehnt Gegenstand intensiver Forschung, die zu einer Fülle von informationstheoretisch wichtigen Ergebnissen die Analyse und Optimierung von MIMO(Multiple Input Multiple Output)-Systemen betreffend geführt hat. Das hohe Maß an Abstraktion der informationstheoretischen Modellierung erweist sich dabei als Vorteil und führt zu einheitlichen Ergebnissen für unterschiedlichste Systemvarianten. Allerdings bietet die Informationstheorie keine angemessene Beschreibung des Energieflusses, der den Informationsfluss stets begleitet. Die physikalisch konsistente Interpretation informationstheoretischer Ergebnisse ist jedoch Voraussetzung für die korrekte Berücksichtigung zentraler Begriffe wie Sendeleistung und Rauschkorrelationen. Mit Hilfe der Netzwerktheorie gelingt eine konsistente Beschreibung der Energieflüsse, die zu überraschenden neuen Ergebnissen hinsichtlich Antennengewinn und Kanalkapazität führt. Damit ergibt sich nicht nur eine Erweiterung der theoretischen Grenzen von MIMO-Systemen, sondern auch neue Gesichtspunkte für die optimale Auslegung und eine erhöhte Attraktivität für deren praktischen Einsatz.
Vortragstitel: 1) Aktuelles aus der Blitzforschung 2) Was bedeutet Blitzschutz heute? 3) Blitzwirkungen – Blitzunfälle
Vortragende: Dipl.-Ing. Dr. Gerhard DIENDORFER, Ao. Univ.-Prof. Dipl.-Ing. Dr. Stephan PACK, Dipl.-HTL-Ing. Gottfried KINDERMANN
Datum: 20.01.2009, 18:30-20:30 Uhr
Ort: TU Graz – HS E, 1. Stock Kopernikusgasse 24
Kosten: Die Teilnahme an dieser Veranstaltung ist kostenlos, um eine Anmeldung wird jedoch gebeten.1) “Aktuelles aus der Blitzforschung” — Dipl.-Ing. Dr. Gerhard DIENDORFER
Viele Details der physikalischen Vorgänge bei der Entstehung von Gewittern und bei der Ausbildung der Blitzentladung selbst sind bis heute nicht geklärt. Einer der Hauptgründe dafür liegt in der schwierigen Messtechnik. Blitze mit einer Länge von mehreren Kilometern können in ihrer Gesamtstruktur im Labor nur ansatzweise nachgebildet werden. Messungen am realen Blitz können nur an Sonderfällen wie bei Turmeinschlägen oder raketengetriggerten Blitzen stattfinden. Verschiedenste Messungen in den vergangenen Jahren, wie auch die Blitzmessungen am Gaisberg in Salzburg, haben etwas mehr Einsicht in die Abläufe der Blitzentladung gebracht. In dem Vortrag wird ein Überblick über den internationalen und nationalen Stand der Blitzforschung gegeben.
2) “Was bedeutet Blitzschutz heute?” — Ao. Univ.-Prof. Dipl.-Ing. Dr. Stephan PACK
Atmosphärische Entladungen sind Bestandteil des Wettergeschehens und können nicht verhindert werden. Seit der Menschheit bekannt ist, dass es sich dabei um elektrische Erscheinungen handelt, werden Einrichtungen entwickelt, die vor den Gefahr bringenden Auswirkungen der Blitzentladungen für Mensch und Tier, aber auch für Objekte und Sachen schützen sollen. Daher wird in diesem Vortrag auf die prinzipielle Wirkungsweise des Blitzschutzes eingegangen und an Beispielen gezeigt, wie sich der Blitzschutz des 21.Jahrhunderts in die Gebäudestrukturen integrieren lässt. Mit Hinweisen über das richtige Verhalten bei drohender Blitzentladungsaktivität wird dieser Vortrag abgeschlossen.
3) “Blitzwirkungen – Blitzunfälle” — Dipl.-HTL-Ing. Gottfried Günther KINDERMANN
Die Auswirkungen von Blitzeinschlägen und Personenschäden durch Blitzentladungen werden von der Landesstelle für Brandverhütung in der Steiermark schon über einen längeren Zeitraum erfasst und ausgewertet. Blitzauswirkungen, die besondere Schäden anrichten oder Blitzschläge, bei denen Personen Schaden erleiden, werden vor Ort erhoben und dokumentiert. Eine aktuelle Auswahl der Blitzunfälle der vergangen Zeit soll im Vortrag darstellen, mit welchen Gefahren bei Blitzschlägen zu rechnen ist bzw. welche Schäden durch Blitzschläge verursacht werden können.
I got a mail from Linux New Media telling me that they want me as jury member for the Linux New Media Award. The process is simple and for now they just ask me to send my nominations for the following categories:
I have some good candidates in mind already. Do you have any recommendations I should consider for inclusion? Please let me know.
Ein Windows-Tool zum Flashen einer Dreambox DM600PVR zu Verwenden ist klarer Stilbruch. Via TFTP wäre es vertretbar aber umständlich. Das geht viel einfacher wenn man die Dreambox übers LAN erreicht:
telnet $IP_OF_DREAMBOX mount -o remount,rw /boot rm /boot/* reboot
Im Browser dann auf $IP_OF_DREAMBOX gehen und über den Punkt Firmware-Upgrade das gewünschte nfi-Image hochladen und wenn das abgeschlossen ist neu starten. That’s it.
Tipp: zuvor ein Backup via ‘cat /dev/mtd/$ID > /var/tmp/backup.img’ zu erstellen (für $ID siehe cat /proc/mtd) und per FTP zu sichern kann nicht schaden.
Die Funktionstasten (F1, F2,…) von Apple-Tastaturen erfordern je nach Modell das Drücken der Funktionstaste (fn), um unter Linux wie gewohnt zu funktionieren – wie es der Aufdruck auf der Tastatur auch schon andeutet. Dafür gibt es einen Workaround, Powerbook-Usern wird vielleicht das Stichwort pb_fnmode (/sys/module/hid/parameters/pb_fnmode) was sagen. Das war auf dem USB-Tastatur-Modell MB110D/A und Linux-Kernel 2.6.26 bei mir nicht notwendig. Da aber aufgrund mehrerer notwendiger Workarounds für Apple-Hardware der Code aus dem generischen HID-Layer in ein eigenes Modul namens hid-apple verbannt wurde, braucht es zumindest mit Kernel 2.6.28 eine spezielle Treiberoption, damit die Tastatur wie bisher funktioniert. Falls jemand das gleiche Problem hat:
echo 2 > /sys/module/hid_apple/parameters/fnmode
Dann muss man nicht fn-F1 drücken um das gewohnte Verhalten für F1 zu bekommen. 0 deaktiviert den fn-Hack komplett, 1 ist der Default und setzt es auf fkeyslast (Multimediatasten normal, mit gedrückter fn-Taste dann die Funktionstasten) und 2 aktiviert den fkeysfirst-Modus (Funktionstasten normal, mit gedrückter fn-Taste dann die Multimediatasten). Wer die Einstellung permanent machen will:
echo "options hid_apple fnmode=2" >> /etc/modprobe.d/apple-keyboard
The advent calendar started with a Zsh tip, let’s end the advent calendar session with a Zsh tip: globbing.
Globbing is like pattern matching. When running ‘ls *.txt’ you’re using globbing. But the globbing feature inside Zsh is much more powerful. Quoting the H-Glob function (“help globbing”) of grml’s Zsh configuration:
% H-Glob
/ directories
. plain files
@ symbolic links
= sockets
p named pipes (FIFOs)
* executable plain files (0100)
% device files (character or block special)
%b block special files
%c character special files
r owner-readable files (0400)
w owner-writable files (0200)
x owner-executable files (0100)
A group-readable files (0040)
I group-writable files (0020)
E group-executable files (0010)
R world-readable files (0004)
W world-writable files (0002)
X world-executable files (0001)
s setuid files (04000)
S setgid files (02000)
t files with the sticky bit (01000)
print *(m-1) # Files modified up to a day ago
print *(a1) # Files accessed a day ago
print *(@) # Just symlinks
print *(Lk+50) # Files bigger than 50 kilobytes
print *(Lk-50) # Files smaller than 50 kilobytes
print **/*.c # All *.c files recursively starting in $PWD
print **/*.c~file.c # Same as above, but excluding 'file.c'
print (foo|bar).* # Files starting with 'foo' or 'bar'
print *~*.* # All Files that do not contain a dot
chmod 644 *(.^x) # make all plain non-executable files publically readable
print -l *(.c|.h) # Lists *.c and *.h
print **/*(g:users:) # Recursively match all files that are owned by group 'users'
echo /proc/*/cwd(:h:t:s/self//) # Analogous to >ps ax | awk '{print }'<
So as you can see the ‘.’ matches just the plain files. Execute ‘ls -la *(.)’ and I’m sure you get the idea. The lovely about this is that you’ll get a very powerful commandline if you combine globbing with according keybindings and the completion system. Want to list the ten newest files in the current directory? Run ‘ls -rl *(D.om[1,10])’ (or just ‘lsnew’ when using grml’s zsh configuration). This works remote as well! Just give it a try: copy the five most recent files from $HOME/incoming on $SERVER to your local disk running ‘scp $server:incoming/*(D.om[1,5]) .’.
Notice: Just press <tab> behind the pattern to expand it on the command line. Or if you prefer to see what the current pattern will be expanded to without actually expanding it right now on the prompt use the list-expand widget: press ‘ctrl-x g’ (when using emacs keybindings) or ‘ctrl-g’ (using vi bindings) when the cursor is directly behind the pattern.
If you’re interested in further information check out the official docs about globbing and the examples provided in the zsh-lovers manpage.
This was the last tip of I my advent calendar. I hope you enjoyed reading it.
Nagios is a well known and established Open Source Monitoring System. It’s flexible, easy to deploy and a tool every sysadmin should know how to deal with. I guess most readers of my blog use or at least know Nagios so I’ll keep this blog entry short. But one tip for sysadmins managing Debian systems:
# /usr/lib/nagios/plugins/check_apt APT OK: 0 packages available for upgrade (0 critical updates).
check_apt (being shipped as part of nagios-plugins-basic on Debian) is great if you don’t want to use apticron, cron-apt & CO but instead integrate system updates/upgrades into your monitoring infrastructure.
The console mail client mutt has some nice features and I noticed that even some long time users of mutt don’t use some of the most rocking features. What’s definitely worth knowing: patterns.
Want to display only mails sent from foo@example.org? Select the limit command to show only messages matching a pattern (bound to ‘l’ by default), enter ‘~f foo@example.org’ and press enter. That’s it. Now only mails sent from foo@example.org will be displayed in the index view. To show the currently active limit use the show-limit command (bount to esc-l by default). If you want to get rid of your current active limit view just use ‘all’ as the matching pattern.
Check out the docs for a list of available patterns. For example if you want to get rid of duplicate mails (based on their message id) just use ‘~=’ as the pattern. You can either tag the selected messages (using tag-pattern, keybinding ‘T’ by default) and delete the tagged messages then or directly invoke the delete-pattern (bound to ‘D’ by default).
Limiting and tagging in mutt using patterns really rocks, if you are using mutt you definitely should use these features.
I wrote about FAI for deploying systems a few days ago – but FAI might be too much overhead if you want to install just some few Debian systems and prefer to use a configuration system like puppet instead. Then using grml-debootstrap might be an option for you.
As you might know grml is a Linux Live-CD for sysadmins and texttool-users and debootstrap can be used to create a Debian base system from scratch. grml-debootstrap is a wrapper around debootstrap for installing plain Debian via grml easy and fast. Installing a small but working Debian system is as simple as invoking something like “grml-debootstrap –target /dev/sda1 –grub hd0 –groot hd0,0” and drinking a coffee in the meanwhile.
Why I mainly prefer to use grml-debootstrap instead of d-i (Debian installer) is that I can use a recent grml live system which gives me up2date kernel and userland supporting more hardware than a stable release of Debian usually does. (So I’m more flexible in installing the system. If the installed Debian/stable kernel might not work I can still update the kernel from the live system until it works.)
Check out the manpage of grml-debootstrap for further details.
I blogged about some tips for optimizing the workflow on the command line in my advent calendar already (like irssi backlog completion, Zsh keybindings and hashes in the zsh). When optimizing your workflow you should be aware of what exactly is eating up your time.
Start with evaluating your top 10 shell commands, in Zsh (what else should you be using?) by running:
print -l -- ${(o)history%% *} | uniq -c | sort -nr | head -n 10
Then consider creating aliases for the most commonly used commands. I for example use ‘s’ for ssh, ‘g’ for git, ‘S’ for GNU Screen,… (stuff provided in grml’s default Zsh config btw). Of course you should also make sure to use according mappings and abbreviations in other tools as well. Vim for example supports iab and imap. Several browsers support searching by keyword.
Disclaimer: It’s definitely OK if you aren’t interested in optimising every single step of your tools. But don’t waste your own time with stuff that annoys you.
One of the reasons why Zsh rocks so much is its completion system. Tab, tab, tab….
Using default Zsh without an useful configuration? Then start with loading the completion system:
autoload -U compinit && compinit
Now check out the completion system with tools that provide lots of options, like for example gpg and rsync. Then continue playing with tab completion using ssh/scp (make sure to use ssh-agent or ssh with option ControlMaster to avoid typing your password again and again…):
scp <tab> scp user@<tab> scp user@host:<tab> scp user@host:/path .
BTW: running ‘ls /u/lo/b<tab>’ should list the content of /usr/local/bin.
Customising the completion system is possible using zstyle. For example to use colors inside completions use the following configuration snippet (assuming $LS_COLORS is set on your system, if not try running ‘eval $(dircolors -b)’):
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
If you want to write your own completion mechanism for a program start by exploring the existing completion functions (on Debian systems usually being available at /usr/share/zsh/functions/Completion/). You might consider writing a completion for a program which isn’t supported by Zsh’s completion system yet. You can get a list of those tools running:
check_comp() {
((! $+_comps[$1])) && print "$1 has no completion function yet"
}
setopt nonomatch
for f ($^path/*(:t)) check_comp "$f"
Find all the glory details about Zsh completion in the Completion System documentation, chapter 6 of the Zsh guide and the manpages zshcompctl, zshcompsys and zshcompwid. Notice that zshcompctl is the old style of zsh programmable completion, zshcompsys is the new completion system and zshcompwid are the zsh completion widgets. Several configuration examples are available in grml’s zsh configuration and the COMPLETION section of the zsh-lovers manpage.
Oh, and if you understand german I strongly recommend getting a copy of the book “Zsh – Die magische Shell”, it provide a nice introduction into the completion system.