<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://doc.lesmorin.fr/index.php?action=history&amp;feed=atom&amp;title=Autocommand_-_cisco</id>
	<title>Autocommand - cisco - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://doc.lesmorin.fr/index.php?action=history&amp;feed=atom&amp;title=Autocommand_-_cisco"/>
	<link rel="alternate" type="text/html" href="https://doc.lesmorin.fr/index.php?title=Autocommand_-_cisco&amp;action=history"/>
	<updated>2026-05-01T22:34:50Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://doc.lesmorin.fr/index.php?title=Autocommand_-_cisco&amp;diff=1476&amp;oldid=prev</id>
		<title>Ycharbi : Page créée avec « Category:cisco  Sur Cisco IOS, &lt;syntaxhighlight lang=&quot;bash&quot; inline&gt;autocommand&lt;/syntaxhighlight&gt; est une méthode permettant d'exécuter une (et une seule) commande automatiquement lors de la connexion à une ligne ou à un utilisateur en particulier.  Cette fonctionnalité peut répondre à plusieurs besoins comme l'affichage d'informations à la connexion (possibilité de dédier un utilisateur à cette tâche ou en complément d'une Configura... »</title>
		<link rel="alternate" type="text/html" href="https://doc.lesmorin.fr/index.php?title=Autocommand_-_cisco&amp;diff=1476&amp;oldid=prev"/>
		<updated>2023-08-06T00:04:41Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec « &lt;a href=&quot;/index.php/Cat%C3%A9gorie:Cisco&quot; title=&quot;Catégorie:Cisco&quot;&gt;Category:cisco&lt;/a&gt;  Sur &lt;a href=&quot;/index.php/Ios_-_cisco&quot; title=&quot;Ios - cisco&quot;&gt;Cisco IOS&lt;/a&gt;, &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; inline&amp;gt;autocommand&amp;lt;/syntaxhighlight&amp;gt; est une méthode permettant d&amp;#039;exécuter une (et une seule) commande automatiquement lors de la connexion à une ligne ou à un utilisateur en particulier.  Cette fonctionnalité peut répondre à plusieurs besoins comme l&amp;#039;affichage d&amp;#039;informations à la connexion (possibilité de dédier un utilisateur à cette tâche ou en complément d&amp;#039;une Configura... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:cisco]]&lt;br /&gt;
&lt;br /&gt;
Sur [[Ios - cisco|Cisco IOS]], &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; inline&amp;gt;autocommand&amp;lt;/syntaxhighlight&amp;gt; est une méthode permettant d'exécuter une (et une seule) commande automatiquement lors de la connexion à une ligne ou à un utilisateur en particulier.&lt;br /&gt;
&lt;br /&gt;
Cette fonctionnalité peut répondre à plusieurs besoins comme l'affichage d'informations à la connexion (possibilité de dédier un utilisateur à cette tâche ou en complément d'une [[Configuration_de_base_-_commutateur_cisco#Banni%C3%A8re_d'accueil|bannière d'accueil]] par exemple) ou permettre la persistance de configurations éphémères (tel les paramètres de la commande &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; inline&amp;gt;terminal&amp;lt;/syntaxhighlight&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
L'&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; inline&amp;gt;autocommand&amp;lt;/syntaxhighlight&amp;gt; ne supportant qu'une seule commande, son utilité peut s'en retrouver fortement limité. Heureusement, il est possible de contourner ce handicap par l'usage d'un script ''Tool Command Language'' (''TCL'').&lt;br /&gt;
&lt;br /&gt;
=Usage=&lt;br /&gt;
==Par utilisateur==&lt;br /&gt;
Il est possible d'avoir un utilisateur dédié à la visualisation d'une information en particulier (l'état des interfaces réseau ou des utilisateurs connectés par exemple). L'&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; inline&amp;gt;autocommand&amp;lt;/syntaxhighlight&amp;gt; peut être configuré pour un utilisateur à sa création afin de le dédier à l'exécution d'une seule commande avant déconnexion immédiate et automatique. L'administration sera alors impossible avec cet utilisateur (uniquement en &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; inline&amp;gt;line console 0&amp;lt;/syntaxhighlight&amp;gt;, ce qui en fait une fonctionnalité pas mal bancale...).&lt;br /&gt;
 username interfaces secret interfaces&lt;br /&gt;
 username interfaces autocommand show interface status&lt;br /&gt;
&lt;br /&gt;
L'utilisateur ''interfaces'' avec le mot de passe ''interfaces'' exécutera automatiquement la commande &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; inline&amp;gt;show interface status&amp;lt;/syntaxhighlight&amp;gt; avant de se déconnecter immédiatement de lui même. Notez qu'il est tout à fait possible d'utiliser une [[Ssh_-_cisco#Authentification_par_cl%C3%A9_publique|clé SSH]] à la place d'un mot de passe pour la connexion à l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
Comme à l'accoutumé, il est recommandé de désactiver l'accès à la commande &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; inline&amp;gt;enable&amp;lt;/syntaxhighlight&amp;gt; pour les utilisateurs non privilégiés afin d'écarter une élévation de privilège par ce biais&lt;br /&gt;
 privilege exec level 15 enable&lt;br /&gt;
&lt;br /&gt;
==Par ligne==&lt;br /&gt;
Un &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; inline&amp;gt;autocommand&amp;lt;/syntaxhighlight&amp;gt; affecté à une ligne exécutera automatiquement une commande à la connexion via ladite ligne (typiquement via [[Liaisons rs232|console]], ''Telnet'' ou [[Ssh - cisco|SSH]]). Le comportement par défaut est de fermer la session après la commande mais il est possible de changer cela.&lt;br /&gt;
&lt;br /&gt;
 # Configuration des lignes 0 à 3&lt;br /&gt;
 line vty 0 3&lt;br /&gt;
 &lt;br /&gt;
 # Désactivation du comportement de déconnexion automatique à l'exécution&lt;br /&gt;
 autocommand-options nohangup&lt;br /&gt;
&lt;br /&gt;
 # Exécution de la commande &amp;quot;who&amp;quot; à la connexion&lt;br /&gt;
 autocommand who&lt;br /&gt;
&lt;br /&gt;
=Commandes multiples=&lt;br /&gt;
Afin de contourner la limitation de la commande unique, il est possible d'exécuter un script ''TCL'' contenant autant d'instructions que désirée. C'est dans ce cas de figure que la technique devient particulièrement intéressante.&lt;br /&gt;
&lt;br /&gt;
Dans la mesure où ''IOS'' ne dispose pas d'éditeur de texte intégré, il est possible de rédiger votre script sur un ordinateur et de le transférer sur l'équipement réseau via un protocole de transfert de fichiers tel que ''TFTP'' ou ''HTTP''.&lt;br /&gt;
&lt;br /&gt;
{{astuce|Rédigez votre script sur une machine et rendez-le disponible via un protocole de transfert de fichiers supporté par l{{'}}''IOS'' de votre équipement. Il vous sera alors possible de l'exécuter directement depuis le dépôt distant et ainsi gagner en temps lors de vos tests. Ce n'est que lorsque vous serez arrivé au résultat voulu que vous aurez à le transférer en local pour une exécution depuis la ''flash''.}}&lt;br /&gt;
&lt;br /&gt;
Contenu du script &amp;lt;syntaxhighlight lang=&amp;quot;tcl&amp;quot; inline&amp;gt;terminal.tcl&amp;lt;/syntaxhighlight&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;tcl&amp;quot;&amp;gt;&lt;br /&gt;
proc terminal-defaut x {&lt;br /&gt;
	terminal monitor&lt;br /&gt;
	terminal length 0&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
terminal-defaut 1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le processus (fonction) &amp;lt;syntaxhighlight lang=&amp;quot;tcl&amp;quot; inline&amp;gt;terminal-defaut&amp;lt;/syntaxhighlight&amp;gt; n'attendant aucun argument (on en met un par ce que c'est obligatoire...) exécutera les deux commandes contenues dans ses accolades permettant respectivement d'activer la journalisation dans le ''VTY'' et de désactiver la pagination lors d'un retour ''stdout'' conséquent. Ce processus est appelé à la dernière ligne afin d'en exécuter son contenu.&lt;br /&gt;
&lt;br /&gt;
 # Exécution du script depuis le dépôt distant&lt;br /&gt;
 tclsh tftp://2001:db8::/terminal.tcl&lt;br /&gt;
 &lt;br /&gt;
 # Lorsque le comportement est validé, rapatriement du script en local&lt;br /&gt;
 copy tftp://2001:db8::/terminal.tcl flash:&lt;br /&gt;
 &lt;br /&gt;
 # Configuration des lignes 0 à 3&lt;br /&gt;
 line vty 0 3&lt;br /&gt;
 &lt;br /&gt;
 # Désactivation de la déconnexion automatique à la fin de la commande et configuration de l'autocommand sur le script TCL&lt;br /&gt;
 autocommand-options nohangup&lt;br /&gt;
 autocommand  tclsh flash:terminal.tcl&lt;br /&gt;
&lt;br /&gt;
=Sources=&lt;br /&gt;
* https://community.cisco.com/t5/network-management/quot-terminal-monitor-quot-on-by-default/td-p/2885504&lt;br /&gt;
* https://blog.ipspace.net/2007/03/executing-command-upon-user-login.html&lt;br /&gt;
* https://blog.ipspace.net/kb/Tclsh/10-commands.html&lt;br /&gt;
* https://blog.ipspace.net/kb/Tclsh/&lt;br /&gt;
* https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/ios_tcl/configuration/12-4t/ios-tcl-12-4t-book/nm-script-tcl.html&lt;/div&gt;</summary>
		<author><name>Ycharbi</name></author>
	</entry>
</feed>