Wenn ein Shell-Kommando länger dauert, und man möchte sich lieber ausloggen und per Mail benachrichtigt werden, wenn das Kommando durch ist, kann man das so machen:

Die folgenden Zeilen in eine Datei (z.B. endmail.sh)

#!/bin/bash

FILE="`tempfile`"

echo "From: console@deinserver" > $FILE
echo "To: empfaenger@lima-city.de" >> $FILE
echo "Subject: Command $1 exited" >> $FILE
echo "Command ended with status 0" >> $FILE

sendmail -t <  $FILE
unlink $FILE

Anschließend Auführungsrechte geben mit:

chmod +x endmail.sh

Und dann das Kommando starten:

nohup bash -c 'MEINKOMMANDO && /path/to/endmail.sh beschreibung' &

Nohup startet das Kommando so, dass beim Logout (was früher bei Modem-Verbindungen das auflegen (engl. hangup / nohup = no hangup) war, ignoriert wird, normalerweise wird dann das Kommando abgebrochen.

Das Kommando, welches nohup ausführt, ist eine Bash-Shell, die unser Kommando als Parameter -c mitbekommt. Dort kommt zuerst das Kommando hinein, welches ausgeführt werden soll, und das && hängt ein weiteres hinterher, was aber _nur_ ausgeführt wird, wenn das erste erfolgreich war. Möchte man immer eine Mail bekommen, auch wenn das Kommando nicht erflgreich war (Fehler o.ä.), muss man das && durch ; ersetzen. Eine Beschreibung (ein Wort), worum es sich handelt, kann man auch noch eingeben.

Das & setzt das Programm in den Hintergrund.