Bash - here document on RHEL 6.8 and 6.9 servers aren't working


Login or Register for Dates, Times and to Reply

 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Bash - here document on RHEL 6.8 and 6.9 servers aren't working
# 1  
Bash - here document on RHEL 6.8 and 6.9 servers aren't working

H Forum,

I was thankful in getting help from this post that allowed me to connect to multiple severs at once using here documents to gather data into variables. But I've discovered that the same bash command that works on my RHEL 7 servers do not work on RHEL 6? What's strange about my problem is that I'm not getting an error either. The problem is that the variables return empty when I try the following code on RHEL 6.8 or 6.9 servers we manage:

Code:
IFS=$'\t' read FLAVOUR HOSTNAME ACTIVE_KERNEL INACTIVE_KERNEL UPTIME <<- EOFREAD
        $ssh -qo StrictHostKeyChecking=no -o ConnectTimeout=1 user@$InputIP sudo -u user sh -s <<- EOFSSH | tr $'\n' $'\t'
        exec bash
        cat /etc/redhat-release 2>/dev/null || lsb_release -a 2>/dev/null | grep Description | cut -f2
        awk -F= '/^NAME/{print $2}' /etc/os-release 2>/dev/null || grep Red |cat /etc/redhat-release 2>/dev/null || lsb_release -a 2>/dev/null | grep Description | cut -f2
        hostname
        uname -r
        rpm -qa | grep '^kernel-[0-9]' |grep -vE `uname -r` | paste -sd \; || echo "Can't List Ubuntu Kernels"
        uptime | cut -d "," -f1
        exit
EOFSSH
        )
EOFREAD

I've thought of adding in the ability to determine if my server is RHEL 6 or 7 using code like the following:

python -mplatform | grep -qi red &&

but even if I could determine RHEL version I'm still not sure why my RHEL 6 servers do not return variable data back. I've tested this above code connecting to just one server to try and triage the issue. No errors are returned. the variable fields are just empty. Whereas on my RHEL 7 servers I return back variables with no issue. Could it be that how I use Here Documents just doesn't work with RHEL 6 servers? has anyone seen this before?

I've also tested connecting to a RHEL 6 server multiple times to get the data I need. what I mean by this is instead of connecting to a RHEL 6 server once and collecting data I've tested connecting to a RHEL 6 for each command I need so connecting multiple times and there are no issues with the above commands I'm issuing.

Perhaps I'll just need to identify RHEL 6 servers and gather their data differently than I do for RHEL 7 severs but before I do that I thought I would check this forum for any advice first.

Thank you.
# 2  
Quote:
Originally Posted by greavette
I've also tested connecting to a RHEL 6 server multiple times to get the data I need. what I mean by this is instead of connecting to a RHEL 6 server once and collecting data I've tested connecting to a RHEL 6 for each command I need so connecting multiple times and there are no issues with the above commands I'm issuing.
This is the crux of it I think. On the first look at your code I was suspicious that the redirect of stderr on one of the commands was causing you to miss an error causing this. So some nice debugging on you part here allows us to rule this out.

What does concern me is the exec bash line. This is unusual and I'm having trouble understanding how the commands that follow make it to this shell.
I think another here-document may be called for!

Please try:
Code:
IFS=$'\t' read FLAVOUR HOSTNAME ACTIVE_KERNEL INACTIVE_KERNEL UPTIME <<- EOFREAD
        $ssh -qo StrictHostKeyChecking=no -o ConnectTimeout=1 user@$InputIP sudo -u user sh -s <<- EOFSSH | tr $'\n' $'\t'
        exec bash <<- EOFEXEC
        cat /etc/redhat-release 2>/dev/null || lsb_release -a 2>/dev/null | grep Description | cut -f2
        awk -F= '/^NAME/{print $2}' /etc/os-release 2>/dev/null || grep Red |cat /etc/redhat-release 2>/dev/null || lsb_release -a 2>/dev/null | grep Description | cut -f2
        hostname
        uname -r
        rpm -qa | grep '^kernel-[0-9]' |grep -vE `uname -r` | paste -sd \; || echo "Can't List Ubuntu Kernels"
        uptime | cut -d "," -f1
        exit
        EOFEXEC
EOFSSH
        )
EOFREAD

[/QUOTE]
This User Gave Thanks to Chubler_XL For This Post:
# 3  
Plus, bash creates a subprocess (different from ksh) on the right side of a pipe, meaning any changes to variables in the statement on the right are not returned to the parent. This changed with bash 4.2, so it may be what you are seeing with v6 versus v7. Check the listpipe bash option help for more information. But I think ChublerXL has a solid answer.

PS:
Code:
EOFSSH
        )
EOFREAD

I do not see the the opening ( in your example. Generates an error for me.
This User Gave Thanks to jim mcnamara For This Post:
# 4  
Why that exec bash at all? What's the user's default shell? And, why do you run sh -s as the ssh command? Use bash if need be, it offers -s as well, should that be necessary at all.
# 5  
Thanks all for the suggestions. I've decided to split how I gather my information from my servers into if statements so that my here doc code gathers information from my RHEL 7.x and Ubuntu servers and my else will be to gather data from my RHEL 6.x servers by connecting to each RHEL 6.x server each time I need to gather data from a command. It's not efficient because it's slower to connect to my RHEL 6.x servers multiple times to issue the commands, but luckily I don't have many so this system works out for me.

Thanks!
Login or Register for Dates, Times and to Reply

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #75
Difficulty: Easy
Apple's Mac OS X was based on NeXTStep, but iOS was not based on Mac OS X.
True or False?

9 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Syslog-ng not working not collecting logs on rhel

Hi, I need help on syslog-ng on RHEL 7.2. It is working as expected. As per configuration, it is supposed to create authlog, messages and xymessages daily in respective folder of date. But I can see only messages file and that is also not updating well. # ps -ef | grep -i syslog root 22954... (1 Reply)
Discussion started by: solaris_1977
1 Replies

2. Red Hat

RHEL 7.1 autofs permissions do not match NFS servers

RHEL 7.1 client using autofs to mount a NIS map of home directories being exported by a Solaris 10x86 nfs server. The owner and group are correct on the NFS server, but on the RHEL client, the owner and group end up being nobody nobody. The USERS and GROUPS are NIS maps as well. They are... (2 Replies)
Discussion started by: mrmurdock
2 Replies

3. Red Hat

Network Teaming not working in RHEL/CentOS 7

I was testing Networking Teaming (activebackup) with a VM hosted on VmWare Workstation and VirtualBox, and the result is, if the active interface is down, the system is not using the backup interface. Tested on both CentOS / RHEL 7 Please find below the command I have used to configure teaming.... (0 Replies)
Discussion started by: atanubanerji
0 Replies

4. Red Hat

RHEL 6 plain telnet & ftp servers

I am being pushed from AIX onto RHEL 6 and after our first 'chuck it on' install, I have a problem. Where is the old (okay insecure) telnet & ftp server? I know that they are probably regarded as archaic now, but the source servers do not have the SSH tools, so I've got to somehow transfer the... (4 Replies)
Discussion started by: rbatte1
4 Replies

5. Shell Programming and Scripting

RHEL - Shell Script not working

Hello Unix Mates I have a problem my script is not working, can anyone tell what is rung with it? #!/bin/sh wget "http://download.divx.com/labs/divx611-20060201-gcc4.0.1.tar.gz" tar zxf divx611-20060201-gcc4.0.1.tar.gz ./divx611-20060201-gcc4.0.1/install.shError: -2010-11-28 21:25:06-- ... (1 Reply)
Discussion started by: camper
1 Replies

6. Shell Programming and Scripting

sudo inside a here document not working

Have a sudo statement inside of a here document. It prompts me for a password, but doesnt wait for me to enter my password. Is there a way I can use the command without sudo or anyway that I can enter the password correctly? Eg : while read remotehost do ssh -t $2@$remotehost <<REMOTE... (13 Replies)
Discussion started by: mnanavati
13 Replies

7. Red Hat

cfengine / puppet for rhel servers

Hello all, I am planning to deploy a configuration / auditing software package for about 100 new nodes that we are planning to install. I am hearing many good things in regards to cfengine and puppet. Can someone shed some light in regards to these solutions? Thanks, jaysunn (1 Reply)
Discussion started by: jaysunn
1 Replies

8. Red Hat

Who can give me a document for configure nagios on RHEL 5

Who can give me a document for configure nagios on RHEL 5,thanks . (1 Reply)
Discussion started by: zhengsenlin
1 Replies

9. Shell Programming and Scripting

here document not working

I tried doing ftp myhost <<HERE username password quit HERE but it doesnt work. Why? When I do ftp host, I always get prompted for username, and once I type that in I get prompted for password. But when I try doing it from here document it freezes. (2 Replies)
Discussion started by: JamesByars
2 Replies

Featured Tech Videos