Info Led - user on ftp

friday

Mitglied
Mitglied seit
2 Nov 2006
Beiträge
416
Punkte für Reaktionen
0
Punkte
16
gibts eigentlich ne möglichkeit das die led blinkt oder leuchtet, wenn jemand auf meinem ftp ist? egal welcher user?

also zusätzlich zu den normalen einstellungen von avm

schön wäre ne signalisierung die sich zusätzlich zu den anderen unterscheidet.
wenn ich nachrichten auf AB hab, dann blinkt es grün bei mir
ginge denn ein rotes blinken/dauerleuchten bei ftp-zugriff (sind ja 2farbig)

danke im voraus
 
Hmm automatisch geht das nicht so einfach.
Eine Liste, wie man die LED's mit
Code:
led-ctrl <Event>
zu blicken bringen kann, findest du in diesem Post aus diesem Thread

Das gibt es auch nen rootes für Info, wenn ich richtig sehe.

Du müsstest halt mal selber schauen, wie man rausbekommen kann, wie einer auf dem ftp ist. Welchen FTP nutzt du denn?
 
vsftpd von freetz trunk laut meiner sig
 
Hmmm, wirklich monitoren kann man den wohl nicht.

Beim läuft er im inetd-Mode, läuft also nicht die ganze Zeit, sonder wird nur bei bedarf gestartet. Da könnte mal also einfach je Minute auf die Existents von vsftpd in der Prozessliste prüfen und entsprechend das blinken setzten oder nicht.

Es kann sein, dass er im normalen listen-mode eine zusätzliche Instanz startet. Dann müsste man die Anzahl prüfen, dass müsstest du mal nachschauen.

Wäre jetzt so meine Idee.
 
Es kann sein, dass er im normalen listen-mode eine zusätzliche Instanz startet. Dann müsste man die Anzahl prüfen, dass müsstest du mal nachschauen.
gerne, wenn du mir sagst wie ich das mache?
 
Code:
ps w|grep <prozessname>|grep -v grep|wc -l
 
genau.

Einfach mal schauen.

Standar müsste eins sein. Spricht ein vsftpd.

Wenn sich einer verbindet, kannst du ja ml testweise machen, dann einfach mal schauen, ob die Anzahl der Instanzen hochgeht.
 
Eine andere Möglichkeit wäre, mit netstat die aktiven Verbindungen nach Port 21 zu durchsuchen. Das sollte auch unabhängig von der Startart funktionieren.
 
also wenn ich prüfe mit
Code:
ps w|grep vsftpd|grep -v grep|wc -l
dann startet er wohl mit 1
sobald sich user verbinden, dann wird jeweils um 2 erhöht

bei 1 user =3
bei 2 user =5
bei 3 user =7

prüfe ich mit
Code:
netstat w|grep fritz.box:21|grep -v grep|wc -l
so ist das ergebnis = anzahl der verbindungen

bei 1 user =1
bei 2 user =2
bei 3 user =3
 
Zuletzt bearbeitet:
Das macht es dann mit netstat doch einfacher. Und erst recht, wenn Du nur anzeigen willst, ob Verbindungen bestehen oder nicht, dann ist nur der Unterschied zwischen "0" und "nicht 0" von Bedeutung.

Weißt Du übrigens, warum im ersten Fall mit ps "grep -v grep" verwendet wird?
 
nein, ehrlich gesagt nicht.

hab nur abgetippt, was silent-tears gepostet hat
---

jetzt bräucht ich nur noch jemand der mir das drumrum bastelt, oder sagt wie es geht und wo sowas dann hinmüsste.
 
Das "grep -v grep" dient dazu, aus der Liste von ps den Grep-Befehl selbst auszufiltern. Das ist bei netstat nicht nötig, da grep dort nicht auftauchen kann.

Es kann ungefähr zu aussehen:
Code:
if [ -z "$(netstat w|grep fritz.box:21)" ]; then
  echo aus > /dev/led
else
  echo an > /dev/led
if
Für die Zeilen mit echo mußt Du entweder noch sinnvolle Werte finden oder diese durch led-ctrl ersetzen. Dort gehören also die Befehle hin, die tatsächlich die LED ein- oder ausschalten.
 
Hmm, also wenn ich bei mir mit
Code:
ps w|grep vsftpd|grep -v grep|wc -l
prüfe, bekomme ich die oben genannten Antworten 1, 3, 5, usw. .

Bei
Code:
netstat w|grep fritz.box:21|grep -v grep|wc -l
kommt bei mir allerdings immer 0 als Antwort.
Was mache ich falsch?
 
Nutzt du nen anderne Port als 21? ;)
 
@ralffriedel

nett das du mir helfen magst. ich bin des proggens nicht mächtig :)
vielleicht will es ja noch wer dann haben.

also, da ich es gern "ROT" bei ftp haben will, ein dauerrot wohl aber nicht geht, würde ich dann aus dem weiter oben verlinkten thread das blinkende rot nehmen mit
"led-ctrl filesystem_mount_failure" bei usern auf ftp
"led-ctrl filesystem_done" bei 0 usern auf ftp

Code:
if [ -z "$(netstat w|grep fritz.box:21)" ]; then
  led-ctrl filesystem_mount_failure
else
  led-ctrl filesystem_done
fi

gehört ganz unten nicht ein ENDIF hin?

und wo müßte man den code dann reinpacken?
 
Zuletzt bearbeitet:
Nö, vsftp auf port 21.
Aber kann es sein, das wenn ich mich von meinem Rechner aus verbinde (also vom lokalen Netzwerk), das eine andere IP genutzt wird?
Führe ich nur "netstat fritz.box" zeigt mir in der Konsole zwar eine Verbindung auf Port 21an, jedoch nicht auf der IP "fritz.box", sondern diese hier 169.254.***.***:21
 
Gut, dass du die IP "verschleiert hast" ;-), aber bei der APIPA-Adresse der Fritz (169.254.1.1) war das nicht nötig.
Code:
if [ -z "$(netstat|grep ':21 ')" ]; then
  led-ctrl filesystem_done
else
  led-ctrl filesystem_mount_failure
fi
sollte eigentlich reichen
 
ja gut, aber wo kommt der code rein?
 
Der Code wird als Script (Text-Datei im Unix-Format) gespeichert, und startest diese Script dann periodisch via crond.

EDIT:
Gut, dass du die IP "verschleiert hast" ....

Is ja schon gut. Bin halt kein Profi was das angeht. Bin halt auf Nummer Sicher gegangen. :blonk:
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.