OpenSource rules the world

20100217 osoworld2 OpenSource rules the world

AeroSnap

AeroSnap

Google Nexus One

Google Nexus One Google Nexus One

The making of Google’ Nexus One

Nexus One: The Story – Episode 1: Concept & Design

Nexus One: The Story – Episode 2: Display & 3D Framework

Nexus One: The Story – Episode 3: Testing

Nexus One: The Story – Episode 4: Manufacturing

Printers from Hell

header Printers from Hell

sysbench unter Debian Lenny kompilieren

sysbench downloaden: http://sourceforge.net/projects/sysbench/

Notwendige Pakete:

apt-get install automake libmysqlclient15-dev

Kompilieren:

./configure
sed -i configure.ac -e 's/AC_PROG_LIBTOOL/AC_PROG_RANLIB/' # fix
./autogen.sh # fix
make
make install

Alte Netzwerkadapter aus Windows entfernen

set devmgr_show_nonpresent_devices=1
devmgmt.msc

Password is not valid

Manchmal unglaublich, was es für kranke Einschränkungen bei Passwörtern gibt:

Password is not valid. Passwords must be at least 6 characters and can only contain letters (A-Z, any case) and numbers (0-9).

Linux Interface-Mirroring

apt-get install daemonlogger
daemonlogger -i eth0 -o eth3

Thunderbird Einstellungen

Als kurzes Memo an mich, meine Thunderbird Einstellungen:

Google Mail IMAP Account Setup Extension

https://addons.mozilla.org/de/thunderbird/addon/6381

Konto / Server-Einstellungen

Beim löschen einer Nachricht: “In den Papierkorb verschieben”.

Konto / Verfassen & Adressieren

[ ] Nachrichten im HTML-Format verfassen
[X] Original-Nachricht beim Antworten automatisch zitieren:
     - Antwort über dem zitierten Text beginnen.

Standard-Sortierung

mailnews.default_sort_type = 18
mailnews.default_sort_order = 2

Infos zur Sortierung gibt es hier.

Alle IMAP-Ordner abrufen

mail.check_all_imap_folders_for_new = true

Bash-Script um zeitgesteuert Programme zu starten

Wenn man beispielsweise heute um 20:15 Uhr ein bestimmtes Script starten möchte, kommt man meist um ein Crontab nicht herum. Mit diesem kleinen Script übergibt man als Parameter ein Datum und/oder Uhrzeit und das Script wartet dann bis zu diesem Zeitstempel, bevor das Script beendet wird und das darauf folgende Programm gestartet wird – somit spart man sich das aufwändige editieren der Crontab-Files.

Beispiel

Uhrzeit:

root@test:~$ ./tsleep.sh 14:30; reboot
i sleep until 2009-12-12 14:30:00 ...

Datum:

./tsleep.sh 2009-12-24; reboot
i sleep until 2009-12-24 00:00:00 ...

Datum mit Uhrzeit:

root@test:~$ ./tsleep.sh 2009-12-24 13:45:12; reboot
i sleep until 2009-12-24 13:45:12 ...

Funktionsweise

Der Zeitstempel wird in Sekunden umgerechnet und über eine while-Schleife sekündlich mit dem aktuellen Datum abgeprüft. Ist das aktuelle Datum gleich oder älter dem Zeitstempel, wird das Script beendet und das darauf folgende Program gestartet. Als Zeitstempel kann man alles verwenden was date futtert.

Eine alternative wäre die Differenz der aktuellen Zeit und des Zeitstempels in Sekunden umzurechnen und dann sleep zu übergeben. Ob das perfomanter ist – keine Ahnung, mein Script dagegen überlebt auch Zeit-Anpassungen (z.b. rdate/ntpdate), daher habe ich diesen Weg gewählt.

Sollte jemand Fehler finden oder das Script verbessern, würde ich mich freuen, wenn Ihr mir das mitteilt ;).

Script

#!/bin/bash
 
if [[ -z "$1" ]]; then
        echo "Usage: $0 <timestamp>" >&2
        exit 1
elif [[ -z "$2" ]]; then
        date="$1"
else
        date="$1 $2"
fi
 
date_end=$(date --date="$date" +%s 2>/dev/null);
 
if [[ ! $? -eq 0 ]]; then
        echo "error: invalid date" 2>&1
        exit 1
fi
 
if [[ $date_end -le $(date +%s) ]]; then
        echo "error: end time is lower or eqal start time" >&2
        exit 1
fi
 
echo "i sleep until $(date --date="$date" "+%Y-%m-%d %H:%M:%S") ..."
 
while [[ $(date +%s) -le $date_end ]]; do
        sleep 1
done
 
exit 0

Download

Download tsleep.sh

wget http://blog.kevin-k.com/wp-content/uploads/2009/12/tsleep.sh
chmod +x tsleep.sh

at

Alternativ gibt es auch at, das Befehle direkt von Standard-Input oder einer Datei ließt und zu einer bestimmten Uhrzeit ausführt.