j’ai un petit soucis avec ma ligne de commande telnet.
J’ai un fichier bash dans lequel je récupère des log d’un pabx(standard téléphonique) pour les traiter ensuite.
Je suis face à deux problématiques:
comment sortir de telnet automatiquement quand tous les log des appels ont était écrit dans mon fichier car je suis obliger de faire un CTRL Z pour finir mon telnet. J’ai essayer -e mais cela remplace juste le CTRL Z
je n’arrive pas à enregistrer les logs dans mon fichiers pourtant je les vois bien défilés à l’écran
Ma ligne de commande pour récupérer mes logs des appels est:
telnet -n /opt/partage/log.xml [addresse] [port]
Et le modèle des lignes récupérer est du type:
13 IVIN 16:32 009 1727 00:08:58 6100 [NumTel] 0:14
Merci de m’aider à compléter ma ligne car c’est la seule ligne qui me bloque dans mon bash.
[mono]telnet[/mono] ne fermera le fichier log que quand il aura terminé son travail, ce qui n’est pas le cas si tu utilise [mono]Ctrl-Z[/mono] qui envoie le signal [mono]SIGTSTP[/mono] (voir [mono]man sigsuspend[/mono]).
Tu pourra récupérer le N° du process suspendu avec la commande [mono]jobs[/mono]
En utilisant la commande [mono]fg[/mono] (suivie du n° de process), [mono]telnet[/mono] sera réactivé.
=======
[quote=“Theonardo”]…J’ai essayer -e mais [strike]cela remplace juste le CTRL Z[/strike]…[/quote][quote="“man telnet”"]… -eescapechar
Sets the escape character to escapechar. If no character is supplied, no escape character will be used. Entering the escape character while connected causes telnet to drop to command mode.
…[/quote]
=======
[quote=“Theonardo”]…comment sortir de telnet automatiquement quand tous les log des appels ont était écrit dans mon fichier…[/quote]Il faudrait donc d’abord chercher à savoir (ou déterminer) “… quand tous les log des appels ont était écrit dans mon fichier …”
Merci pour vos réponses rapides.
Bon du coup ma commande dans mon bash s’apparenterait à:
telnet x.x.x.x [port] <<EOF
telnet -n /opt/partage/log.xml x.x.x.x [port]
eof
sauf que cela me ferme directement ma connexion après m’être connecter:
[quote]Suppression du fichier existant
Récupération des log
Trying x.x.x.x …
Connected to x.x.x.x …
Escape character is ‹ ^] ›.
Connextion closed by foreign host .
OK[/quote]
Et je n’ai même pas de fichier log.xml qui se créer
En passant ma commande telnet en ligne de commande
telnet -n /opt/partage/log.xml x.x.x.x [port]
ça passe!
ok merci pour l’explication du CTRL Z!
En revanche avec escapechar [-e] il faut que je tape manuellement le caractère pour pouvoir sortir du telnet, ce qui pose un problème pour automatiser mon .bash
Alors sur ce point j’y ai déjà pensé mais je n’ai pas trouver de commandes me permettant de couper ma connexion telnet quand mon fichier de log reste in-changer pendant 30 secondes par exemple. Ou alors de fermer la connexion au bout de 5 minutes après l’ouverture, pour lui laisser le temps d’enregistrer les logs de la journée.
J’ai fouillé pas mal le man telnet mais je ne suis pas super bon en anglais donc il y a peut être des options que je n’ai pas réussis à bien comprendre.
telnet -n ...' n'est pas une commandetelnet’, elle n’a pas à figurer dans la liste des commandes envoyées à l’appareil.
[quote]Ma ligne de commande pour récupérer mes logs des appels est:
telnet -n /opt/partage/log.xml [addresse] [port][/quote]en fait, cette commande te connecte au PABX, et enregistre la session dans le fichier donné en argument de l’option -n', si certaines options sont positionnées, c'est tout. une fois connecté, tu dois bien taper d'autres commandes (des commandestelnet’, parmi celles listées par la commande `?’) pour récupérer tes logs, non ?
Non, c’est configurer sur le PABX, ça t’envoie directement les log en passant par le port 4001
J’avais fais les tests sur l’invite de commande windows et ça marche, juste en passant la commande:
telnet $add 4001 -f $chemain
et je récupérer un fichier avec mes log à l’emplacement voulut:
[quote]11 IVOT 10:16 008 00:00:05 27 $Numtel
12 IVOT 10:16 007 00:00:24 17 $Numtel
…etc…[/quote]
comme je ne veux pas de serveur windows pour héberger mon appli, j’ai essayer de reproduire la ligne de commande d’où le -n qui pour moi remplace le -f de windows.