# Commande telnet

**URL:** <https://www.debian-fr.org/t/commande-telnet/64549>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 9:11 UTC](https://www.debian-fr.org/t/commande-telnet/64549 "2016-02-21T21:11:25Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![Theonardo](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/c77e96/32.png) [@Theonardo](https://www.debian-fr.org/u/Theonardo)\
**Post date:** [Février 21, 2016, 9:11 UTC](https://www.debian-fr.org/t/commande-telnet/64549/1 "2016-02-21T21:11:25Z")

</div>

Bonjour,

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.

Merci d’avance.

---

<div class="post-metadata">

**Author:** ![Watael](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/w/a4c791/32.png) [@Watael](https://www.debian-fr.org/u/Watael)\
**Post date:** [Février 21, 2016, 9:11 UTC](https://www.debian-fr.org/t/commande-telnet/64549/2 "2016-02-21T21:11:25Z")

</div>

salut,

un document en ligne (here-doc, voir man bash) :`telnet [tes_Options] <<eof
commande_telnet_1
commande_telnet_2
commande_telnet_n
eof`

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Février 21, 2016, 9:11 UTC](https://www.debian-fr.org/t/commande-telnet/64549/3 "2016-02-21T21:11:28Z")

</div>

[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](http://fr.wikipedia.org/wiki/Bourne-Again_shell#Raccourcis_clavier_en_mode_Emacs)[/mono] qui envoie le signal [mono][SIGTSTP](http://en.wikipedia.org/wiki/Job_control_%28Unix%29#Implementation)[/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”"]…  
-e escapechar  
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 …”

---

<div class="post-metadata">

**Author:** ![Theonardo](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/c77e96/32.png) [@Theonardo](https://www.debian-fr.org/u/Theonardo)\
**Post date:** [Février 21, 2016, 9:11 UTC](https://www.debian-fr.org/t/commande-telnet/64549/4 "2016-02-21T21:11:30Z")

</div>

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 ‹&nbsp;^]&nbsp;›.  
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

> [@](#):
>
> Il faudrait donc d’abord chercher à savoir (ou déterminer) «&nbsp;… quand tous les log des appels ont était écrit dans mon fichier …&nbsp;»

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.

Merci.

---

<div class="post-metadata">

**Author:** ![Watael](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/w/a4c791/32.png) [@Watael](https://www.debian-fr.org/u/Watael)\
**Post date:** [Février 21, 2016, 9:11 UTC](https://www.debian-fr.org/t/commande-telnet/64549/5 "2016-02-21T21:11:30Z")

</div>

par exemple :`telnet $server $port <<eof
?
close
quit
eof`pour afficher l’aide.

---

<div class="post-metadata">

**Author:** ![Theonardo](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/c77e96/32.png) [@Theonardo](https://www.debian-fr.org/u/Theonardo)\
**Post date:** [Février 21, 2016, 9:11 UTC](https://www.debian-fr.org/t/commande-telnet/64549/6 "2016-02-21T21:11:30Z")

</div>

Même soucis:  
Trying x.x.x.x …  
Connected to x.x.x.x …  
Escape character is ‘^]’.  
Connextion closed by foreign host .

Une question, en utilisant  
telnet $add $port \<\<eof  
telnet -n $fichier $add $port  
close  
quit  
eof

à quel moment le programme passe de la 2ème ligne (telnet -n …) à la 3ème (close)?

---

<div class="post-metadata">

**Author:** ![Watael](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/w/a4c791/32.png) [@Watael](https://www.debian-fr.org/u/Watael)\
**Post date:** [Février 21, 2016, 9:11 UTC](https://www.debian-fr.org/t/commande-telnet/64549/7 "2016-02-21T21:11:31Z")

</div>

`telnet -n ...' n'est pas une commande`telnet’, 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 commandes`telnet’, parmi celles listées par la commande `?’) pour récupérer tes logs, non ?

---

<div class="post-metadata">

**Author:** ![Theonardo](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/c77e96/32.png) [@Theonardo](https://www.debian-fr.org/u/Theonardo)\
**Post date:** [Février 21, 2016, 9:12 UTC](https://www.debian-fr.org/t/commande-telnet/64549/8 "2016-02-21T21:12:06Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Theonardo](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/c77e96/32.png) [@Theonardo](https://www.debian-fr.org/u/Theonardo)\
**Post date:** [Février 21, 2016, 9:17 UTC](https://www.debian-fr.org/t/commande-telnet/64549/9 "2016-02-21T21:17:07Z")

</div>

Alors je reviens sur ce sujet,

donc j’ai créer un fichier pour regarder comment agissait mon telnet comme ma connexion se ferme directement:

`telnet 192.168.252.252 4001 <<eof
telnet -n /opt/partage/log.xml
sleeep 30
close
quit
eof`

Ca me fait exactement comme si je ne mettais pas le sleep…  
Est ce que je n’utilise pas correctement l’option sleep?

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Février 21, 2016, 9:21 UTC](https://www.debian-fr.org/t/commande-telnet/64549/10 "2016-02-21T21:21:17Z")

</div>

Je l’avais pas vue celle là : il y a un [mono]e[/mono] de trop dans la commande de ton script [strike][mono]sleeep 30[/mono][/strike]

Remplace cette ligne de commande de ton script par : [mono]sleep 30[/mono]

---

<div class="post-metadata">

**Author:** ![Theonardo](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/c77e96/32.png) [@Theonardo](https://www.debian-fr.org/u/Theonardo)\
**Post date:** [Février 21, 2016, 9:23 UTC](https://www.debian-fr.org/t/commande-telnet/64549/11 "2016-02-21T21:23:26Z")

</div>

Une erreur dans la recopie de mon programme. Dans mon bash il y a bien sleep avec deux ‘e’.

J’ai toujours le même message qui s’affiche d’un coup.

[quote]Trying $ip …  
Connected to $ip …  
Escape character is ‘^]’.  
Connextion closed by foreign host .

[/quote]

Si vous n’avez pas la solutions mais des pistes de réflexions sur lesquels m’orienter ça m’aiderais, merci.

---

<div class="post-metadata">

**Author:** ![Theonardo](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/c77e96/32.png) [@Theonardo](https://www.debian-fr.org/u/Theonardo)\
**Post date:** [Février 21, 2016, 9:25 UTC](https://www.debian-fr.org/t/commande-telnet/64549/12 "2016-02-21T21:25:47Z")

</div>

Personnes n’a jamais rencontrer ce problème en fesant un bash?
