Shell script for telnet and run commands

Last update on November 8, 2009 09:23 AM by jak58
Published by jak58

Shell script for telnet and run commands




Issue



I have made a shell script which can telnet automatically and run commands on the other machine and end the telnet session without any interact from the user, only he just run the script or call it from another script.
but you need to install EXPECT and TCL packages on your Unix system.

The script contains the following instructions:


#!/usr/local/bin/expect -f ####/usr/local/bin/expect is the directory where expect was installed
log_user 0 ####this command is used to hide the conversation between the script and the other machine
set address [lindex $argv 0] ###assign the first passed parameter while calling the script to $address
set username [lindex $argv 1] ###assign the 2nd passed parameter while calling the script to $username
set password [lindex $argv 2] ###assign the 3rd passed parameter while calling the script to $password
spawn telnet ${address} ###start the telnet session to machine with IP=$address

###start conversation with the machine:
expect "login:"
send -- "${username}\r"
expect "Password:"
send -- "${password}\r"
expect "$ "
send -- "#!/bin/ksh\r" ###declare the shell to be used (optional)
expect "$ "
send -- "###type her any command you want to execute"
expect "$ "
send -- "exit\r" ###end the telnet session and exit the script


To execute this script, I typed:
$ expect_script "address" "username" "password" ###the script name is "expect_script"
but before u call the expect script, you should make the expect script executable, and this can be done by typing:
$ chmod +x expect_script

Solution


Try this:
#!/usr/local/bin/expect 
spawn telnet <machine ip> 
expect "login:" 
send "<username>\n" 
expect "Password:" 
send "<password>\n" 
send "bash\n" 
send "cd /opt\n" 
send "ls -ltr\n" &#61664; (if you are not giving \n then it will wait for your response or u have to type enter manually). 
interact 


How to execute the “expect“ command expect –f <file name>
Ex: expect –f <filename>.expect

Note


Thanks to ZooZoo for this tip on the forum.
Best answers for « Shell script for telnet and run commands » in :
Windows 7: Adding the Run command to the start menu ShowWindows 7: Adding the Run command to the start menu Issue Solution Issue As for Vista, the Run command is not present by default in the Start menu of Windows 7. You must type Run in Search to access it. Solution If you want to...
[Bash]Parameters Show[Bash]Parameters Intro Example 1 Example 2 Initialize parameters Examples Example 3 Intro You can provide a script on the command line and arguments also known as parameters for its implementation. There are two categories of...
Execute a script a startup and shutdown ShowExecute a script a startup and shutdown The trick works Windows XP, Vista and 7, but the method varies depending on your edition of Windows. For professional or full editions Start the policy editor of the local group: Start Menu> Run> Type...
Download Spider SEO ShowSpiderSeo is a graphical application and a script from the command line version of two tools that help webmaster to create their pages. Advantages A meta tag generator prepares your HTML pages for search engines. Keywords and description are...
Using Telnet ShowIntroduction to Telnet Telnet is a protocol for emulating a remote terminal, which means that it can be used to run commands entered on a keyboard at a remote machine. The tool Telnet is an implementation of the Telnet protocol, which means that it...
Linux - The shell ShowIntroduction to the shell The command interpreter is the interface between the user and the operating system, hence the name "shell". The shell therefore acts as an intermediary between the operating system and the user thanks to command lines...
Using Telnet ShowIntroduction to Telnet Telnet is a protocol for emulating a remote terminal, which means that it can be used to run commands entered on a keyboard at a remote machine. The tool Telnet is an implementation of the Telnet protocol, which means that it...