Page 1 sur 1
[Conky] Vsftpd ... (Résolu)
Publié : dim. 14 août 2011, 14:21
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.
Re: [Conky] Vsftpd ...
Publié : dim. 14 août 2011, 18:17
par tuxce
Salut, si tu rajoutes:
à /etc/vsftpd.conf , tu auras les clients connectés et ce qu'ils font dans la liste des processus.
Par exemple:
Te donnera la liste des process vsftpd, tu peux utiliser awk ou autre pour traiter l'information par la suite.
Re: [Conky] Vsftpd ...
Publié : dim. 14 août 2011, 20:31
par Coyote
Merci pour le coup c'est vraiment efficace ... je ne connaissais pas awk
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 ....

Re: [Conky] Vsftpd ...
Publié : dim. 14 août 2011, 23:40
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)
Re: [Conky] Vsftpd ...
Publié : lun. 15 août 2011, 09:45
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é :
Voilà ... merci pour les réponses en tout cas

Re: [Conky] Vsftpd ...
Publié : lun. 15 août 2011, 11:45
par tuxce
le '/\//' permet de limiter le traitement aux lignes ayant un '/'
Re: [Conky] Vsftpd ...
Publié : lun. 15 août 2011, 12:34
par Coyote
Fabuleux, c'est exactement ça
Un grand merci pour ton aide.
Re: [Conky] Vsftpd ...
Publié : lun. 15 août 2011, 14:52
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
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 :
Merci à tuxce pour l'aide

Re: [Conky] Vsftpd ...
Publié : lun. 15 août 2011, 15:08
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 ... "'"; }
'
Re: [Conky] Vsftpd ...
Publié : lun. 15 août 2011, 16:10
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 ....
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 !
Et du coup le champ 3 devient Celin 15 et non Celine ...
Si tu as une idée, je te serai infiniment reconnaissant ...
Re: [Conky] Vsftpd ...
Publié : mar. 16 août 2011, 11:50
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 ... "'"; }
'
Re: [Conky] Vsftpd ...
Publié : mar. 16 août 2011, 12:27
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
En tout cas ça marche au poil .....
Je passe en mode Résolu !
Merci et bonne continuation !