2

In my environment there are about 1000 production servers. Direct root login is disabled on all servers. There is one user "abc" which has sudo access. We login to each computer using "abc" and then sudo su - to get root access.

Please note that I am running this script on a Ubuntu machine and connecting to a RHEL machine.

There is a requirement to know hostname and OS version of each remote server IP.

So I made a script which will connect with remote system and execute a command and saves output in a local file.

Script which I managed to create is as below:

for i in `cat test1` 
do 
{ 
    echo "***************************$i***************************************" 
    sshpass -p 'password' ssh abc@ipaddress “/sbin/ifconfig >> /home/ankush/output.txt”
} 
done 

It connects to all computers IP address present in test1 file and executes, but doesn't execute ifconfig command on the remote system.

On execution it is giving error as:

***************************ip address***************************************
bash: “/sbin/ifconfig: No such file or directory
4
  • See this question: unix.stackexchange.com/questions/145447/… Commented Nov 13, 2016 at 6:38
  • It may be an artifcact of your badly formatted post, but it appears you used the 'curly' double-quote characters “ ” (used/replaced automatically by some web/HTML software and most Microsoft software) not the old-style 'straight' double-quote " which (along with straight single quote or apostrophe ') is the only one that works in Unix shells (and many other Unix programs). Commented Nov 13, 2016 at 9:50
  • 2
    ifconfig is not the right tool anyway to find out hostname or os-version. Your script is broken in may ways. I wonder that you have root access to 1000 systems. Maybe you should hire a sysadmin who knows at least some basics.
    – rudimeier
    Commented Nov 13, 2016 at 10:40
  • With such requirements (hostnames/ip lookup), it may be interesting for you to give a look at Ansible (github.com/ansible/ansible)
    – SYN
    Commented Nov 13, 2016 at 18:21

2 Answers 2

0

There is a requirement to know hostname,os version of each remote server ip.

There is an excellent tool for that called nmap. It is available for Ubuntu, link here.

Example:

nmap -sP 192.168.1.*

Here's another link that might be useful.

0

Ansible can do that (and more) for you :

ansible remotehost -m setup

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .