Skip to content

Laufzeit eines Scripts unter Linux messen

Neulich hatte ich eine Unterhaltung darüber, wie man die Laufzeit eines Programms möglichst einfach misst. Im konkreten Fall wollten wir wissen, wie lange ein mysqldump benötigt hat. Dazu gibts unter Linux den Befehl time, den man dem zu messenden Programm einfach voranstellt.

time <Programm und Parameter>
[...Ausgabe des Programms...]

real    0m56.754s
user    0m0.784s
sys    0m4.004s

Der Wert hinter real zeigt an, wie lange das Programm gelaufen ist, im obigen Beispiel 0 Minuten, 56 Sekunden und 754 Millisekunden.

Ubuntu / Debian: Installierte .deb Pakete eines Servers auf einem anderen Server installieren

Es kommt immer wieder mal vor, dass ein Server installiert werden muss, der einen alten Server ersetzen soll. So lange nur wenige Dienste oder Pakete auf dem alten Server installiert waren, lässt sich das auch schnell aus dem Kopf erledigen. Pakete auf dem neuen Server installieren, Config übernehmen, Config anpassen, läuft.

Allerdings gibt es auch Server, auf denen viele Pakete installiert sind und die mehrere Dienste anbieten. Hier eine Vorgehensweise, um sich das Leben einfacher zu machen:

Auf dem alten Server:

dpkg --get-selections | grep -v deinstall > package_list.txt

Auf dem neuen Server:

dpkg --set-selections < package_list.txt
dselect
3. [I]nstall
4. [C]onfig
5. [R]emove (optional)
6. [Q]uit
Oder alles in einem Schritt vom neuen Server aus (alles in einer Zeile):
neuer-server~# ssh user@alter-server dpkg --get-selections | grep -v deinstall | \
dpkg --set-selections && dselect update && dselect install && dselect config

Danach sind die auf dem alten Server installierten Pakete auf dem neuen Server ebenfalls installiert. Die Konfiguration muss dann natürlich noch übernommen und angepasst werden, denn in der Regel kommen auf dem neuen Server auch neuere Versionen der Pakete zum Einsatz.

Error: bad minute; while reading /etc/crontab

Gerade eben stellte ich fest, dass auf einem Ubuntu 8.04 Server die Cron-Jobs nicht mehr ausgeführt werden. Also machte ich mich auf die Suche nach dem Grund, konnte ihn aber zunächst nicht finden. In der /var/log/syslog dann der erste Hinweis:

Error: bad minute; while reading /etc/crontab

Die /etc/crontab sah allerdings sehr normal aus. Da gab es keine falschen Einträge oder fehlende Angaben. Nach einigem auskommentieren und testen bin ich dann auf die Lösung gekommen. In der crontab fand ich folgende Zeile, bei der ich mir erst mal nichts dachte:

MAILTO= 

Allerdings interpretiert cron diese Zeile so, dass er MAILTO= für die Angabe der Minuten hält und danach nichts mehr kommt. Und MAILTO= ist auch keine gültige Angabe für Minuten ;-). Also entweder eine Mailadresse dahinter schreiben oder wie in meinem Falle mit einem # auskommentieren. Dann cron neustarten und schon funktionierts auch wieder.

tweetbackcheck cronjob