wie lange existiert das interface schon?

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Benutzeravatar
johnbecker
Beiträge: 323
Registriert: 07.08.2004 13:43:13

wie lange existiert das interface schon?

Beitrag von johnbecker » 13.08.2004 13:11:53

hi,

würde gerne etwas basteln, dass mir anzeigt, wie lange eine verbindung (also z.b. ppp0) bereits existiert. habe leider keinen blassen, wie man sowas realisieren könnte... hat vllt jemand von euch eine passende idee oder vllt einen tipp dazu?

Benutzeravatar
Snoopy
Beiträge: 4297
Registriert: 17.11.2003 18:26:56
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rh.- Pflz.

Beitrag von Snoopy » 13.08.2004 13:17:50

hi

teste mal das

Code: Alles auswählen

apt-get install pppstatus
danach

Code: Alles auswählen

pppstatus -s 768
vielleicht magst du auch sowas wie unter [1] haben

[1] ftp://adsl4linux.de/pub/software/onlinecalc

Benutzeravatar
mistersixt
Beiträge: 6601
Registriert: 24.09.2003 14:33:25
Lizenz eigener Beiträge: GNU Free Documentation License

Beitrag von mistersixt » 13.08.2004 14:10:24

Code: Alles auswählen

ps -efa  | grep pppd | grep -v grep | tr -s " " | cut -d " " -f 5
Das zeigt Dir an, seit welcher Uhrzeit der pppd läuft. Mit einem kleines Perl-Script könnte man nun noch diese Zeit von der aktuellen Uhrzeit abziehen und man hätte die Uptime des pppd in Stunden und Minuten.


Gruss, mistersixt.
--
System: Debian Bookworm, 6.11.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 3.8 Ghz., Radeon RX 5700 XT, 32 GB Ram, XFCE

Benutzeravatar
johnbecker
Beiträge: 323
Registriert: 07.08.2004 13:43:13

Beitrag von johnbecker » 13.08.2004 18:50:42

danke, beides nicht schlecht.. wobei sich die kommandozeile etwas besser eignet, weil es möglichts überall klappen soll (ohne zusatz-tools). jetzt muss ich nur mal diese kommando-zeile verstehen und kann leider auch kein perl, aber die shell kann doch sicher auch irgendwie rechnen, oder? ;) werd wohl doch mal en shellbuch kaufen müssen *g

Benutzeravatar
minimike
Beiträge: 5616
Registriert: 26.03.2003 02:21:19
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: Köln
Kontaktdaten:

Beitrag von minimike » 14.08.2004 11:49:30

Genauso was hab ich auch gesucht. werd ich nachher mal probieren, klingt extrem brauchbar :)
"Lennart Poettering is one of those typical IT leaders..." "like Linus Torvalds and Theo de Raadt?" "more like Bozo the Clown" After all, now a good employee of Microsoft

BaGStone
Beiträge: 41
Registriert: 25.01.2003 18:59:33

Beitrag von BaGStone » 24.09.2004 14:04:31

hm. hatte das gestern gefunden und dachte eine lösung für mein problem gefunden zu haben, aber irgendwie funzt das bei mir alles nicht :)
zudem baue ich zusätzlich zu dem ppp0 interface noch einen vpn-tunnel zum rechenzentrum auf (full tunnel), so das das pppstatus auch nichts mehr anzeigen KANN.

darum habe ich mal was entsprechendes gescriptet, falls es jemand brauchen kann, poste ichs mal hier.

zuerst mal die datei /etc/ppp/if-up editiert.
zwischen "#main script...." und "run-parts....." habe ich eine zeile eingefügt:

Code: Alles auswählen

touch /var/log/ppp-start
dann folgendes script in ein beliebiges verzeichnis ablegen:

Code: Alles auswählen

#! /bin/sh

echo PPPUp Script - Shows Uptime of PPP service
echo

# current date and time
y1=$(date "+%Y")
mo1=$(date "+%-m")
d1=$(date "+%-j")
day1=$(date "+%-d")

h1=$(date "+%-H")
mi1=$(date "+%-M")
s1=$(date "+%-S")

echo current date: $day1 $mo1 $y1 @ $h1:$mi1:$s1

# date of file /var/log/ppp-start (last change=last connect)
y2=$(date -r /var/log/ppp-start "+%Y")
mo2=$(date -r /var/log/ppp-start "+%-m")
d2=$(date -r /var/log/ppp-start "+%-j")
day2=$(date -r /var/log/ppp-start "+%-d")

h2=$(date -r /var/log/ppp-start "+%-H")
mi2=$(date -r /var/log/ppp-start "+%-M")
s2=$(date -r /var/log/ppp-start "+%-S")

echo last reconnect: $day2 $mo2 $y2 @ $h2:$mi2:$s2

# calc all differences and calc all the time spans
s=$[s1 - s2]
if [ "$s1" -lt "$s2" ]
    then
	s=$[s + 60]
	mi2=$[mi2 + 1]
fi

mi=$[mi1 - mi2]
if [ "$mi1" -lt "$mi2" ]
    then
	mi=$[mi + 60]
	h2=$[h2 + 1]
fi

h=$[h1 - h2]
if [ "$h1" -lt "$h2" ]
    then
	h=$[h + 24]
	d2=$[d2 + 1]
fi

d=$[d1 - d2]
if [ "$d1" -lt "$d2" ]
    then
	d=$[d + 365]
	y2=$[y2 + 1]
fi

y=$[y1 - y2]
d=$[d + y * 365]

# time of connection (what you were searching for)
echo
echo Total Uptime of PPP:
echo Days: $d Hours: $h Minutes: $mi Seconds: $s
echo
ausführbar machen:

Code: Alles auswählen

chmod +x+x+x pppup
nach dem nächsten reconnect (dann wird zum ersten mal die datei /var/log/ppp-start erstellt) kann man dann mit

Code: Alles auswählen

./pppup
die uptime der verbindung herausfinden.

bevor hier jemand meckert wie umständlich oder lang oder so das ist: ist mein erstes bash-script, und ich wollte nur das es funktioniert, und nicht das rad neu erfinden.
falls es aber nicht läuft natürlich bitte melden! :)

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 24.09.2004 14:14:56

btw: chmod a+x DATEI geht auch

a+x = all exec
o+x = other exec
g+x = group exec
u+x = user exec
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

flixi
Beiträge: 1
Registriert: 25.09.2004 00:09:39

Beitrag von flixi » 25.09.2004 00:14:48

Hey danke, klappt alles super.

Ich hab noch n PHP Script gebastelt das die Connectionuptime auf einer Webseite ausgibt:

Code: Alles auswählen

<?
$cmd = "/usr/bin/pppup";     // Befehl der Ausgeführt werden soll
exec($cmd,$output,$rv);    // ausführen

for($x=0;$x<=12;$x++) {    // Ausgabe des Arrays
 echo "$output[$x]<br>\n";
}
?>
$output ist die Ausgabe in einem Array, ihr könnt dann auch nur beliebige Zeilen ausgeben (mit $output[zeile]).
Ich hab die Ausgabe bei meinem Script ein bisschen verändert, kann sein, dass ihr mehr als 12 Zeilen in der for-Schleife ausgeben müsst ($x<=12;).

Bis dann,
Flix

Antworten