Re: [OT] run command via ssh - problem

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


On 11/04/2009 11:39 PM, Rick Stevens wrote:
Bryn M. Reeves wrote:
On Wed, 2009-11-04 at 13:32 +0000, Dan Track wrote:
Hi Bryn,

Many thanks. I tried hostname -s but I keep getting the following:

hostname: Host name lookup failure

Possibly your resolver on the servers is not configured to search its
own local domain. Add a line like this to /etc/resolv.conf:


Or, if you configure the resolver via dhcp add a directive on the server
to pass this over to clients.

This may be because the hostname's are short already e.g just
"server1" instead of ""

I've updated teh script to your recommendations but I still get the
local hosts hostname in teh output instead of the remote servers
hostname. Any other thoughts?

I now run the following:

for i in server1 server2;do ssh root@$i "DNSNAME=$(basename
$(hostname)$);echo $DNSNAME";done

You need to use single quotes instead of double quotes - see the rules
in the bash man page about quote expansion. A single quoted string is
not subject to any expansion by the shell on the client machine but a
double quoted string will be expanded on the client before the ssh
command is executed.

$ ssh abox 'DNSNAME=$(basename $(hostname));echo $DNSNAME'

I still don't think that basename will do what you want here...

It's not quotes, it's the backtick. Don't backtick the command, just

Yes, they are quotes (in my example above). They are there to disable shell expansion on the client machine and to ensure the whole command line is sent to the remote system unchanged.

for i in server1 server2; do ssh root@$i hostname; done

Read the whole thread :)

This was suggested way back but the OP wants to do the nested shell expansion thing.


fedora-list mailing list
To unsubscribe:

[Index of Archives]     [Current Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]     [Fedora Docs]

  Powered by Linux