You can avoid some of the quoting issues by using a here document. In my limited testing, this causes the remote hosts' MOTD messages to be displayed, which may or may not be a problem for you; depends on the SSH version and stuff like that, too, I guess.
Code:
#!/bin/sh
while read host
do
ssh $host <<"__HERE"
for i in `lslpp -l |grep tsm`
do
lslpp -Lc $i |grep -v State |tr ':' ',' |awk -F, '{print $2, "," , $3}'
done
__HERE
done <server_list.txt > ./test.csv
chmod 644 test.csv
Whatever you really want, chmod 777 is almost guaranteed to be wrong; I changed it to 644.
Looks to me like the redirection to test.csv was also in the wrong place (you would be overwriting it for each host) so I changed that as well.
Hi
I use the following command to check if my_base is active or not :
active_db=`${LOCAL_BIN}/ssh -l ${my_user} ${my_service} "ps -ef | grep ora_smon | grep ${my_base} | sed -e \"s/ */ /g\" | cut -d'?' -f2 | cut -d' ' -f3 | cut -d'_' -f3"`
When I use a file listing databases to check them... (1 Reply)
The while loop exits (early) when a simple ssh command is run.
#!/bin/ksh
#set -x
#-------------------------------------------------------------------------
# Functions Section
#-------------------------------------------------------------------------
while :
do
cat list.txt|while read... (1 Reply)
Hi all,
I am trying to run a script which is expected to do:
on the remote machine,
There are two directories /export/home/abc1,/export/home/abc2
i am trying to do,
ssh SERVERNAME "for i in `ls -l /export/home/abc*|awk '{print $9}'`; do cd $i; ls -l; done"
But its not working ,iam... (11 Replies)
Hi,
The requirement is to ssh to unix servers and oracle databases, to perform some monitoring activity. I'm using shell script to perfom this.
I pass the server details and database to a variable ...
SERVERS="SERVER1 SERVER2 SERVER3"
DATABASE="DB1 DB2 DB3"
for i in $SERVERS
do
ssh... (2 Replies)
Hi all,
I am facing an issue while trying to access a for loop variable inside ssh. Can anyone please help me with what this issue is, the following is the code that I have ->
IMPL_LOG_FOLDERS=(transaction_logs invalid_transaction_logs)
sshg3 ftp_id@boxname << EOS
for log_folder in... (5 Replies)
Here is the smallest extract to demonstrate the problem that I experience.
#!/bin/bash
r=$1
while read ip
do
if ] ;then
x=`ssh $ip echo "$ip"`
else
x=`echo "$ip"`
fi
echo $x
done << EOF
192.168.8.241
192.168.8.241
EOF
# Any IP with public key set (0 Replies)
Hi,
I am having a file like,
#cat file
Jun 19 13:08
Jun 19 13:08
Jun 19 13:08
Jun 19 13:14
when I run the below comamnd locally it will work fine,
IFS=$'\n'; for i in $(cat file) ;do echo "HI $i" ; done
And the output is,
HI Jun 19 13:08
HI Jun 19 13:08
HI Jun 19 13:08
HI... (1 Reply)
I read a file (iplist.txt) ine-by-line in a loop which has the list of all the server hostnames.
With each hostname read; I do ssh and fire multiple commands to gather information about that systemas shown below.
#!/bin/bash
while IFS='' read -r line || ]; do
echo "Text read from file:... (3 Replies)
Hi all,
I have observed that ssh exits while loop.
#!/bin/ksh
typeset -i i
typeset -i size
set -A server = " " "SERVER1" "SERVER2"
i=2
while ]
do
while read in_module
do
print $in_module
size=`ssh ${server} ls -l $in_module 2>/dev/null | awk '{print $5}'`
... (3 Replies)
Discussion started by: Soham
3 Replies
LEARN ABOUT SUSE
ssh-keyscan
SSH-KEYSCAN(1) BSD General Commands Manual SSH-KEYSCAN(1)NAME
ssh-keyscan -- gather ssh public keys
SYNOPSIS
ssh-keyscan [-46Hv] [-f file] [-p port] [-T timeout] [-t type] [host | addrlist namelist] ...
DESCRIPTION
ssh-keyscan is a utility for gathering the public ssh host keys of a number of hosts. It was designed to aid in building and verifying
ssh_known_hosts files. ssh-keyscan provides a minimal interface suitable for use by shell and perl scripts.
ssh-keyscan uses non-blocking socket I/O to contact as many hosts as possible in parallel, so it is very efficient. The keys from a domain
of 1,000 hosts can be collected in tens of seconds, even when some of those hosts are down or do not run ssh. For scanning, one does not
need login access to the machines that are being scanned, nor does the scanning process involve any encryption.
The options are as follows:
-4 Forces ssh-keyscan to use IPv4 addresses only.
-6 Forces ssh-keyscan to use IPv6 addresses only.
-f file
Read hosts or addrlist namelist pairs from this file, one per line. If - is supplied instead of a filename, ssh-keyscan will read
hosts or addrlist namelist pairs from the standard input.
-H Hash all hostnames and addresses in the output. Hashed names may be used normally by ssh and sshd, but they do not reveal identify-
ing information should the file's contents be disclosed.
-p port
Port to connect to on the remote host.
-T timeout
Set the timeout for connection attempts. If timeout seconds have elapsed since a connection was initiated to a host or since the
last time anything was read from that host, then the connection is closed and the host in question considered unavailable. Default
is 5 seconds.
-t type
Specifies the type of the key to fetch from the scanned hosts. The possible values are ``rsa1'' for protocol version 1 and ``rsa''
or ``dsa'' for protocol version 2. Multiple values may be specified by separating them with commas. The default is ``rsa''.
-v Verbose mode. Causes ssh-keyscan to print debugging messages about its progress.
SECURITY
If an ssh_known_hosts file is constructed using ssh-keyscan without verifying the keys, users will be vulnerable to man in the middle
attacks. On the other hand, if the security model allows such a risk, ssh-keyscan can help in the detection of tampered keyfiles or man in
the middle attacks which have begun after the ssh_known_hosts file was created.
FILES
Input format:
1.2.3.4,1.2.4.4 name.my.domain,name,n.my.domain,n,1.2.3.4,1.2.4.4
Output format for rsa1 keys:
host-or-namelist bits exponent modulus
Output format for rsa and dsa keys:
host-or-namelist keytype base64-encoded-key
Where keytype is either ``ssh-rsa'' or ``ssh-dss''.
/etc/ssh/ssh_known_hosts
EXAMPLES
Print the rsa host key for machine hostname:
$ ssh-keyscan hostname
Find all hosts from the file ssh_hosts which have new or different keys from those in the sorted file ssh_known_hosts:
$ ssh-keyscan -t rsa,dsa -f ssh_hosts |
sort -u - ssh_known_hosts | diff ssh_known_hosts -
SEE ALSO ssh(1), sshd(8)AUTHORS
David Mazieres <dm@lcs.mit.edu> wrote the initial version, and Wayne Davison <wayned@users.sourceforge.net> added support for protocol ver-
sion 2.
BUGS
It generates "Connection closed by remote host" messages on the consoles of all the machines it scans if the server is older than version
2.9. This is because it opens a connection to the ssh port, reads the public key, and drops the connection as soon as it gets the key.
BSD January 9, 2010 BSD