Automate a Telnet Session with One Command 5


The Telnet protocol might not be the newest thing on the block, however there is still some legacy network hardware that will only accept Telnet connections and not newer more secure SSH connections. Recently I bought an APC MasterSwitch unit, that allows me to remotely power on and power off my hardware, and I ran into a problem of automation. I wanted to be able to remotely reboot the server every night a little after 3 AM, but there was no schedule capability inside the software that shipped with the decade old unit. The MasterSwitch, however did come with a built-in telnet server that one can remotely access and power on and off each individual outlet.

The problem with automating Telnet, is that the prompts are not always uniform between different Telnet servers as they are with SSH servers. So one needs to know the exact keystrokes used in order to accomplish the task they need to do. However if you know all of the keystrokes you can create a command that will type them directly to the telnet client on an *nix computer. Here is my crontab command that navigates through the menus of the MasterSwitch unit and reboots the selected outlet at 3:16 in the morning:


16 3 * * * { echo "USERNAME"; echo "PASSWORD"; echo "1"; echo "2"; echo "1"; echo "6"; echo "YES"; sleep 1; } | telnet SERVERNAME

You’ll see that this command reads sequential to the actual keys that I put in when accessing the unit, first my username, then my password, then the menu commands which use numbers to drill down to the actual outlet, and then confirm that you would like to reboot it. The sleep 1 command at the end spaces them out so that they don’t overload the client.

There you have it, a quick and dirty way to automate a telnet session!


Leave a comment

Your email address will not be published. Required fields are marked *

5 thoughts on “Automate a Telnet Session with One Command

  • Jwaleet

    HI, I tried using your above commands with little modification to automate login in server, but its giving connection closed error

    What I modified is as below:

    { echo “USERNAME”; echo “PASSWORD”;} | telnet HOST I.P.

  • Jwaleet

    Hello, thanks for the reply.
    I tried the below and I could log into the server successfully but the issue here is, the session comes out of the server session after few secs.

    { echo “user_name”;sleep 5;echo “password”;sleep 5;} | telnet host_aix_ip

    Thanks in Advance

    • Jon Westfall Post author

      Not sure what you mean – the session will likely close – the script isn’t designed to open the connection and stay open, it’s designed to automate some task then close the connection.