Aus LinuxUser 11/2003

out of the box: pppstatus

Kostenfalle – nein danke!

Auch in Zeiten des „Internet by Call“ und „gedeckelter“ Flatrates mit begrenzter Online-Zeit oder festem Download-Volumen behält man besser die Verbindungsdaten im Blick und vermeidet so Überraschungen beim Öffnen der Rechnung.

Eine Flatrate zum günstigen Festpreis, ohne Einschränkungen, was Online-Zeit und Übertragungsvolumen betrifft – das hört sich für Sie nach einem schönen Traum an? In diesem Fall behält das Programm pppstatus von Gabriel Montenegro all die Daten im Auge, auf die achten sollte, wer sich per Modem- und DSL-Verbindung zu zeit- oder volumenabhängigen Tarifen im Internet herum treibt. In der Version 0.4.2 durchaus ausgereift, zeigt die Software nicht einfach nur die aktuelle Statistik an, sondern berechnet auch bereits angefallene Internet-Kosten.

Die gerade übertragenen Bytes visualisiert eine Blöckchengrafik wie in Abbildung 1. Mehr Grafikkomfort ist in einem Konsolenfenster kaum zu machen, wenn man auf den Ressourcenverbrauch achtet.

Erst installieren, …

Wer Debian einsetzt, ist fein raus, denn dafür gibt es ein Binärpaket im deb-Format. Führt root den Befehl apt-get install pppstatus aus, holt dieser das Paket aus dem Netz und installiert es. Nutzer anderer Distributionen besorgen sich die Programmquellen von http://pppstatus.sourceforge.net/ und kompilieren mit den üblichen Handgriffen selbst:

tar xzf PPPStatus-v0.4.2.tar.gz
cd PPPStatus-v0.4.2
make

Das gelingt natürlich nur, wenn ein C-Compiler, das make-Tool – und die Ncurses-Library samt Entwickler-Paket (bei SuSE ncurses-devel) vorinstalliert sind. Auf das Fehlen des letzteren weist eine Meldung wie

pppstatus.c:34:20: curses.h: Datei oder Verzeichnis nicht gefunden

direkt nach dem make-Aufruf hin. Meldet make sich am Ende mit der Zeile Compiled.., waren alle Voraussetzungen erfüllt, so dass man sich mit suroot-Rechte verleiht und die Software mit make install im System verankert.

Abbildung 1: Daten im Gänsemarsch
Abbildung 1: Daten im Gänsemarsch

… dann konfigurieren

Anschließend finden Debianer im Verzeichnis /etc/pppstatus die nötigen Konfigurationsdateien vor. Die zentrale Stellung nimmt dabei pppstatus.cfg ein. Darin kommt niemand um Anpassungen bei den Angaben zum verwendeten Netzwerk-Interface und zum maximal möglichen Netzwerkdurchsatz, sprich zur Geschwindigkeit der Internet-Verbindung, herum. Für Selbstkompilierer legt pppstatus diese Datei übrigens beim ersten Start unter /var/log/pppstatus.cfg an.

Tabelle 1: Einstellungen in pppstatus.cfg

Variable mögliche Werte Bedeutung
interface ppp0, ppp1, ppp2, … Netzwerkschnittstelle des Modems
speed 14.4, 28.8, 33.6, 56, 64, 115.2, 128, 256, 768, 1540 Datendurchsatz auf dem Weg zum Internet-Provider in kBits/s
video vga, mono Darstellungsqualität
bytes_info bytes, kbytes, mbytes Einheit des angezeigten Transfervolumens
user_email Loginname Schaut in /var/spool/mail/Loginname nach Mails, zählt sie und zeigt das Ergebnis an
costs_file Pfad und Dateiname, z. B. /etc/pppstatus/costs Dateiname der Kostentabelle

Des Weiteren gibt es hier die Möglichkeit, die Schriftfarben der Benutzerschnittstelle persönlichen Vorlieben anzupassen (Listing 1 zeigt ein Beispiel). Erlaubt sind schwarz (black), weiß (white), rot (red), grün (green), gelb (yellow), blau (blue) und das besonders im Stammland der Telekom wichtige magenta. Das vorangestellte Stichwort light hellt eine Farbe etwas auf.

Listing 1

Farbdefinitionen in

/etc/pppstatus/pppstatus.cfg

ingoing = light green       # eingehende Daten
outgoing = yellow           # ausgehende Daten
intersection = green        # Überschneidung, eingehend und ausgehend
background = black          # Hintergrund
data = cyan                 # Schriftfarbe fuer die Angaben zu den Daten
border = white              # Randfarbe
labels = white              # Farbe der Beschriftung
version = light white       # Farbe der Programmversionsanzeige
power_led_on = light green  # Zustandsanzeige bei Internet-Verbindung
power_led_off = red         # Zustandsanzeige ohne Internet-Verbindung

Trägt die Konfiguration den Gegebenheiten des jeweiligen Computers Rechnung, startet der Befehl pppstatus auf einer Konsole oder in einem xterm eine zunächst noch leere Übersichtsanzeige. Besteht zu diesem Zeitpunkt eine Internet-Verbindung, füllt sich diese Leere nach wenigen Sekunden mit der Blöckchengrafik des Netzwerkdurchsatzes.

Alles automatisch

Klappt dieser erste Test, muss das Programm künftig niemand mehr manuell starten. Nimmt es beim Rechnerstart automatisch seinen Dienst auf, landet die Grafikausgabe auf einer der virtuellen Konsolen. Allerdings muss, wer dieses Feature ausnutzen möchte, weitere Anpassungen vornehmen.

Das Debian-Binärpaket bringt die Datei /etc/init.d/pppstatus mit, die pppstatus beim Booten automatisch startet. Darin bestimmt man, welche der virtuellen Konsolen die pppstatus-Anzeige präsentieren soll. Die meisten Linux-Systeme verfügen über zwölf Stück, zu erreichen über die Tastenkombinationen [Alt-F1] bis [Alt-F12]. Alle virtuellen Konsolen oberhalb der siebten eignen sich gut für diesen Zweck, werden sie doch eher selten genutzt. Also ändert man den Wert der Variablen TTY in der Zeile TTY=12 auf eine Zahl größer 7 ab. Voreingestellt ist 12, auf den meisten Rechnern die letzte aller virtuellen Konsolen.

Das Debian-Start-Skript prüft, ob die Datei /etc/pppstatus/pppstatus_on_boot existiert. Ist das nicht der Fall, startet pppstatus, man ahnt es, nicht. Also erzeugt man sie besser – entweder, indem man die bei der Debian-Installation erzeugte Datei /etc/pppstatus/no_pppstatus_on_boot umbenennt oder sie mit dem Befehl

touch /etc/pppstatus/pppstatus_on_boot

als neues, leeres File anlegt. Anschließend simuliert der Befehl

/etc/init.d/pppstatus start

den automatischen Start beim Booten. Erscheint dabei keine Fehlermeldung, wechselt man mit [Alt-Fx] auf die für die Ausgabe vorgesehene Konsole und überzeugt sich davon, dass (hoffentlich) alles wie gewünscht funktioniert.

Wer pppstatus unter Red Hat, Slackware oder Debian selbst kompilieren musste, wechselt zurück ins PPPStatus-v0.4.2-Quellverzeichnis und richtet die „Autostartfunktion“ mit dem dort erzeugten Programm runonboot ein:

./runonboot -d rh -t 9

sorgt unter Red Hat dafür, dass die pppstatus-Ausgabe auf der neunten virtuellen Konsole erscheint.

Funktioniert der Autostart anschließend trotzdem nicht, kommt die „falsche“ Distribution zum Einsatz oder besteht der Wunsch nach mehr Flexibilität, kopiert man das pppstatus-Skript von der Heft-CD als root ins Verzeichnis /etc/init.d (bei Red Hat und Derivaten nach /etc/rc.d/init.d) und verleiht der Systemadministratorin etwa mit chmod u+x /etc/init.d/pppstatus Ausführbarkeitsrechte.

Damit dieses Skript beim Starten automatisch mit dem Argument start aufgerufen wird, fehlen noch ein paar Links, die Listing 2 für Red Hat anlegt; bei neueren SuSE-Distributionen tauscht man /etc/rc.d/init.d/ gegen /etc/init.d/ aus; im Zweifel sollte die Distributionsdokumentation über die richtigen Verzeichnisse Auskunft geben.

Listing 2

Das Start-Stopp-Skript verlinken

ln -s /etc/rc.d/init.d/pppstatus /etc/rc.d/rc3.d/S75pppstatus
ln -s /etc/rc.d/init.d/pppstatus /etc/rc.d/rc5.d/S75pppstatus
ln -s /etc/rc.d/init.d/pppstatus /etc/rc.d/rc0.d/K20pppstatus
ln -s /etc/rc.d/init.d/pppstatus /etc/rc.d/rc3.d/K20pppstatus
ln -s /etc/rc.d/init.d/pppstatus /etc/rc.d/rc5.d/K20pppstatus
ln -s /etc/rc.d/init.d/pppstatus /etc/rc.d/rc6.d/K20pppstatus

Online-Kosten protokollieren

pppstatus‚ eingebaute Kostenkontrolle ist zwar nicht besonders ausgefuchst, für Internet-by-call-Nutzer aber selbst bei zusätzlich anfallenden Einwahlkosten flexibel genug. Die nötigen Daten nimmt die Datei /var/log/costs (bzw. beim Debian-Binärpaket /etc/pppstatus/costs) auf, die für jeden Wochentag sowie für Samstag und Sonntag festlegt, was die Online-Minute jeweils kostet. Listing 3 zeigt einen Ausschnitt, wie er zu Redaktionsschluss auf den „Arcor Internet by Call Spartarif“ passte.

Listing 3

Ausschnitt aus der

costs

-Datei

# Diese Datei gibt die Kosten des Internet-Zugangs fuer jede Stunde
# des Tages an.
monetary_sign = Euro            # Waehrung
pulse_charge_time = 1           # Jede Minute eine Einheit
pulse_on_connect = yes          # Einwahlgebuehr 'yes' oder 'no'
on_connect_cost = 0.079         # Hoehe der Einwahlgebuehr
# wd (Work Days) umfasst Montag bis Freitag
# sat steht für Samstag, sun für Sonntag
00:00 wd = 0.0083
01:00 wd = 0.0083
02:00 wd = 0.0083
03:00 wd = 0.0083
04:00 wd = 0.0083
05:00 wd = 0.0083
06:00 wd = 0.0083
07:00 wd = 0.0083
08:00 wd = 0.0083
09:00 wd = 0.0079
10:00 wd = 0.0079
[…]
LinuxUser 11/2003 KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland

Hinterlasse einen Kommentar

  E-Mail Benachrichtigung  
Benachrichtige mich zu: