[Conky] Vsftpd ... (Résolu)

Applications, problèmes de configuration réseau
Répondre
Avatar de l’utilisateur
Coyote
Daikyu
Messages : 57
Inscription : dim. 22 mai 2011, 11:06
Localisation : Chambéry

[Conky] Vsftpd ... (Résolu)

Message par Coyote »

Bonjour,

voilà j'ai créé un serveur ftp sur mon pc à l'aide de vsftpd, et je voulais savoir si je pouvais afficher les utilisateurs connectés à mon ftp sur conky ??
En temps réel serait le top, sinon avec une mise à jour toutes les x min/sec, si c'est possible of course ...

J'ai fait des recherches mais sans succés ....

Merci d'avance, bien cordialement.
Dernière modification par Coyote le mar. 16 août 2011, 12:27, modifié 1 fois.
In Tartiflette we trust !
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Re: [Conky] Vsftpd ...

Message par tuxce »

Salut, si tu rajoutes:

Code : Tout sélectionner

setproctitle_enable=yes
à /etc/vsftpd.conf , tu auras les clients connectés et ce qu'ils font dans la liste des processus.
Par exemple:

Code : Tout sélectionner

pgrep vsftpd | xargs -r ps h -o cmd -p
Te donnera la liste des process vsftpd, tu peux utiliser awk ou autre pour traiter l'information par la suite.
Avatar de l’utilisateur
Coyote
Daikyu
Messages : 57
Inscription : dim. 22 mai 2011, 11:06
Localisation : Chambéry

Re: [Conky] Vsftpd ...

Message par Coyote »

Merci pour le coup c'est vraiment efficace ... je ne connaissais pas awk :oops:
et du coup je me bats un peu avec .... Je lance :

Code : Tout sélectionner

 pgrep vsftpd | xargs -r ps h -o cmd -p | awk -F[/:] '{print $3}'
me retourne quasi ce que je veux, sauf qu'il y a une ligne vide (en 1) et une ligne connected en 2 !
Est-ce que je peux facilement les faire disparaître ?

J'ai l'impression que oui avec une condition, mais cela me semble mystérieux .... :?
In Tartiflette we trust !
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Re: [Conky] Vsftpd ...

Message par tuxce »

Donne ce que te sort le "ps" et ce que tu voudrais avoir. (je n'ai pas de vsftpd en fonction, et donc pas de sortie)
Avatar de l’utilisateur
Coyote
Daikyu
Messages : 57
Inscription : dim. 22 mai 2011, 11:06
Localisation : Chambéry

Re: [Conky] Vsftpd ...

Message par Coyote »

Il me donne ceci si j'ai un utilisateur connecté :

Code : Tout sélectionner

vsftpd: LISTENER
vsftpd: 192.168.0.254: connected
vsftpd: 192.168.0.254/Seb: IDLE
Je voudrai seulement qu'il m'affiche le nom de l'utilisateur : Seb

Et si personne n'est connecté :

Code : Tout sélectionner

vsftpd: LISTENER
Voilà ... merci pour les réponses en tout cas :)
In Tartiflette we trust !
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Re: [Conky] Vsftpd ...

Message par tuxce »

Code : Tout sélectionner

awk -F[/:] '/\// {print $3}'
le '/\//' permet de limiter le traitement aux lignes ayant un '/'
Avatar de l’utilisateur
Coyote
Daikyu
Messages : 57
Inscription : dim. 22 mai 2011, 11:06
Localisation : Chambéry

Re: [Conky] Vsftpd ...

Message par Coyote »

Fabuleux, c'est exactement ça :D

Un grand merci pour ton aide.
In Tartiflette we trust !
Avatar de l’utilisateur
Coyote
Daikyu
Messages : 57
Inscription : dim. 22 mai 2011, 11:06
Localisation : Chambéry

Re: [Conky] Vsftpd ...

Message par Coyote »

Bon ben voilà, du coup j'ai fait un petit script à executer dans conky, et ça a l'air de marcher tout bien ... juste que je ne l'ai pas tester dans le cas où il y a deux utilisateurs (ou plus) connectés en même temps ...
Le temps me dira si je dois modifier le script !

En attendant le voici pour ceux qui voudraient jouer au big brother sur leur ftp :roll:

Code : Tout sélectionner

#!/bin/bash
# Pour les utilsateurs, heure et minute
user=$(pgrep vsftpd | xargs -r ps h -o cmd,stime -p | awk -F[/:] '/\// {print $3}')
hh=$(pgrep vsftpd | xargs -r ps h -o cmd,stime -p | awk -F[/:] '/\//  {print $4}')
mm=$(pgrep vsftpd | xargs -r ps h -o cmd,stime -p | awk -F[/:] '/\//  {print $5}')

# Condition et affichage pour conky
if [ -z "$user" ]
then
	echo "il n'y a pas d'utilisateur connecté ..."
else
	echo "$user depuis${hh} h $mm ..."
fi
Ne pas oublier de le rendre executable ... puis dans conky :

Code : Tout sélectionner

${execi 60 ~/.conky/scripts/ftp.sh}
Merci à tuxce pour l'aide :wink:
In Tartiflette we trust !
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Re: [Conky] Vsftpd ...

Message par tuxce »

Effectivement, avec plus d'un utilisateur, ça fonctionnera pas...
Essaie plutôt ça:

Code : Tout sélectionner

pgrep vsftpd | xargs -r ps h -o cmd,stime -p | awk -F[/:] '
BEGIN {users=0;}
/\// {
  print $3" depuis "$4"h "$5"m ...";
  users++;
}
END { if (!users) print "'"il n'y a pas d'utilisateur ...  "'"; }
'
Dernière modification par tuxce le mar. 16 août 2011, 11:51, modifié 2 fois.
Raison : protéger les ' dans le END {}
Avatar de l’utilisateur
Coyote
Daikyu
Messages : 57
Inscription : dim. 22 mai 2011, 11:06
Localisation : Chambéry

Re: [Conky] Vsftpd ...

Message par Coyote »

Damned .. j'ai testé ton code, mais voici ce que j'obtiens ....

Code : Tout sélectionner

awk: ligne de commandes:5: END { if (!users) print "il ny
awk: ligne de commandes:5:                                                ^ chaine non refermée
awk: ligne de commandes:5: END { if (!users) print "il ny
awk: ligne de commandes:5:                                                ^ syntax error
Etant une tanche en programmation, impossible de le débuger tout seul .... :oops:

D'autre part, selon la longueur de l'utilisateur, j'ai les : qui disparaissent dans le champs user ce qui me fait planter mon script même avec un utilisateur !

Code : Tout sélectionner

... 0.254/Celin 15:55
Et du coup le champ 3 devient Celin 15 et non Celine ... :?

Si tu as une idée, je te serai infiniment reconnaissant ...
In Tartiflette we trust !
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Re: [Conky] Vsftpd ...

Message par tuxce »

L'erreur vient des apostrophes dans le: "il n'y ..."
Sinon, le champs "cmd" (ou équivalent) doit être placé en dernier, comme ça, "ps" ne le tronquera pas (à part si une largeur est définie ou si la sortie est un terminal)
Le script devient:

Code : Tout sélectionner

pgrep vsftpd | xargs -r ps h -o stime,cmd -p | awk -F'[/: ]' '
BEGIN {users=0;}
/\// {
  print $6" depuis "$1"h "$2"m ...";
  users++;
}
END { if (!users) print "'"il n'y a pas d'utilisateur ...  "'"; }
'
Avatar de l’utilisateur
Coyote
Daikyu
Messages : 57
Inscription : dim. 22 mai 2011, 11:06
Localisation : Chambéry

Re: [Conky] Vsftpd ...

Message par Coyote »

C'est exactement ça .. un grand merci .... il faudrait un jour que je m'y plonge serieux dans toutes ces commandes ....

Mais là pas trop le temps :oops:

En tout cas ça marche au poil ..... :wink:
Je passe en mode Résolu !

Merci et bonne continuation !
In Tartiflette we trust !
Répondre