Visit The New, Modern Unix Linux Community


Script to find Error: rpmdb open failed on list of servers


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Script to find Error: rpmdb open failed on list of servers
# 1  
Script to find Error: rpmdb open failed on list of servers

Hello all,

I have a task to patch red hat servers and some servers have a corrupted rpm database and return the error:

Error: rpmdb open failed

I know how to fix this when it occurs. What I'm hoping to do is scan a list of servers by IP and report back which server have this error.

Would someone be able to assist or point me in the right direction on how I capture this? My thought is to run the following:

Code:
sudo yum update infolist

On each server and capture the output to find the error.

Thanks in advance for any assistance or pointers you can provide me.
# 2  
Are you considering to run your "status checking" script in cron?
# 3  
You can use a for loop and process substitution and some descriptor magic:
Code:
#!/bin/bash
for server in server1 server2
do
  ssh -x "$server" '
    echo "hello I am on `hostname`"
    sudo yum update infolist
  ' 2> >(sed "s/^/$server: /" >&3)
done 3>stderr

The stderr output goes to the file stderr, filtered by sed.
The sed prepends $server: to every stderr line. It can also prepend it once:
Code:
for server in server1 server2
do
  ssh -x "$server" '
    echo "hello I am on `hostname`"
    sudo yum update infolist
  ' 2> >(sed "1i\\
$server:" >&3)
done 3>stderr

# 4  
Hello @MadeInGermany and @Neo,

Thanks very much for your replies.

My intention is not to use this in a cronjob.

The script that MadeInGermany is what I was looking for. When I run these scripts I receive the following errors:

First Script Error:
Code:
 
checkyum.sh: line 7: syntax error near unexpected token `>'
checkyum.sh: line 7: `  ' 2> >(sed "s/^/$server: /" >&3)'


Second Script Error:
Code:
 
checkyum.sh: line 7: syntax error near unexpected token `('
checkyum.sh: line 7: `  ' 2>>(sed "1i\\'

My BashFu is pretty weak. Would you be able to point out what I need to change to get this working?

thank you.
# 5  
For using the <( ) and >( ) process substitution, the OS must support Unix devices, and bash must be compiled to utilize it.
Obviously not true for your OS and bash.?
Code:
uname -sr
bash --version

The following pipes stderr (descriptor 2) to sed. But a pipe works with stdout (descriptor 1) only. Therfore, it swaps stdin and stdout before the pipe, and afterwards swaps them back.
Code:
#!/bin/bash
for server in server1 server2
do
  {
  ssh -x "$server" '
    echo "hello I am on `hostname`"
    sudo yum update infolist
  '  3>&2 2>&1 1>&3 | sed "s/^/$server: /" 
  } 3>&2 2>&1 1>&3
done 2>stderr

# 6  
Hello @MadeInGermany,

Apologies for not responding sooner to your helpful reply.

Here are some details of the Red Hat server I'm using:
Code:
$ uname -sr
Linux 3.10.0-1062.el7.x86_64

Code:
$ bash --version
GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)

I'm trying my hand at this script again. I've used your suggestion:
Code:
#!/bin/bash
for server in server1 server2
do
  ssh -x "$server" '
    echo "hello I am on `hostname`"
    sudo yum update infolist
  ' 2> >(sed "1i\\
$server:" >&3)
done 3>stderr

I can successfully login to a server and I receive the echo that says "hello I am on 'hostname'" so the script is working and gives me this detail back. But I don't receive any other data back after running this script against my test server? Would this be the result if rpmdb open failed wasn't occuring on this test server? What I mean is...will the above script only show if rpmdb open failed exists and if it doesn't the script returns nothing back?

Thank you.

Moderator's Comments:
Mod Comment
Code tags please

Last edited by Peasant; 09-12-2019 at 04:38 AM.. Reason: Added code tags.
# 7  
Here is an example of what I'm trying to do. If someone can help me formulate this line properly to get what I need please:

Code:
Code:
sudo yum repolist | grep -qi 'Error: rpmdb open failed ' ; case "$?" in "0") echo "Match" ;; "1") echo "No Match" ;; *) echo "Error" ;; esac

I would like to use a one line command so use it in a bash script along with other checks I do.

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

Test Your Knowledge in Computers #573
Difficulty: Medium
PHP does not allow you to use arrays as both function parameters and as return types.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Linux open failed: No such file or directory error

Hi, The below commands works fine on serverB . /etc/profile; cd /export/home/user2/utils/plugin/ ./runme.shHowever, when i run the same commands from serverA it fails $ ssh -q user2@serverB ". /etc/profile; cd /export/home/user2/utils/plugin; ./runme.sh"Output Error: Please find the below... (8 Replies)
Discussion started by: mohtashims
8 Replies

2. UNIX for Beginners Questions & Answers

Rdesktop - ERROR: Failed to open keymap en-us

I just updated my rdesktop to 1.8.3 from source ( on Slackware 11 ) and had troubles with arrow keys/page up/page down not working. I see this on the console: ERROR: Failed to open keymap en-us The fix is a permission change. I initially looked at /usr/share/rdesktop/keymaps and everything... (1 Reply)
Discussion started by: agentrnge
1 Replies

3. Shell Programming and Scripting

How to find out list of all proccess which are running on unix servers from last two days.

Hi All, I have a requirment, i need to get the list of all the process which are running from last two days on my unix server and also to put this list into an another file. i am giving you a sample example : $ ps -ef UID PID PPID C STIME TTY TIME CMD (1 Reply)
Discussion started by: akshu.agni
1 Replies

4. Red Hat

rpmdb open failed

Hi, # yum --skip-broken -y update rpmdb: Thread/process 6657/3078387392 failed: Thread died in Berkeley DB library error: db3 error(-30974) from dbenv->failchk: DB_RUNRECOVERY: Fatal error, run database recovery error: cannot open Packages index using db3 - (-30974) error: cannot open... (3 Replies)
Discussion started by: sef alislam
3 Replies

5. UNIX for Dummies Questions & Answers

NDM: Source file open failed. Error= 2

Hi, I have try to ndm to one server to another server. but i am getting this error. what is this error? are files not in source folder? Source file open failed. Error= 2 Regards, Balamurgan (1 Reply)
Discussion started by: krbala1985
1 Replies

6. Solaris

Error- ld.so.1: expr: fatal: libgmp.so.3: open failed:No such file or directory

Hi Friends I have a compiler(Sun Forte,I believe) running in my Solaris 9 box. since y'day my development team is finding this error when they compile: ld.so.1: expr: fatal: libgmp.so.3: open failed: No such file or directory I ran a search for this file and found it in one of my file... (2 Replies)
Discussion started by: Hari_Ganesh
2 Replies

7. Solaris

Error:: libm.so.2:open failed

Hi, I am working with solaris 9 and I want to install perforce on that,so I downloaded the p4v.bin file and try to install it by the command ./p4v after that it is giving the error--- ld.so.1: ./p4v.bin: fatal: libm.so.2: open failed: No such file or directory Killed I am not... (3 Replies)
Discussion started by: smartgupta
3 Replies

8. Shell Programming and Scripting

Telnet script to test open ports on mult servers

Hello All, Can somebody help me with this script. I have an output file with a list of servers ips and ports. I need to be able to run this script to list all the server ips in the outfile and find out if the port is open or not. #!/bin/sh IFS=#;for i in $(cat portTest); do # check... (2 Replies)
Discussion started by: liketheshell
2 Replies

9. Shell Programming and Scripting

Script Error: 13192.sumr: 0403-016 Cannot find or open the file.

Hello, i am familiar enough with unix to do some damage but thats about it. We have a set of RS/6000 43P Model 150's running AIX for our Catia V4 programmers. back in the 90's a script was written to automate the conversion of files into machine code. that script has started giving us... (0 Replies)
Discussion started by: jgruenwald
0 Replies

10. Shell Programming and Scripting

Failed to open output file Error

Hi guys, I Have written a script,In that it will call another file which contains the sql quaries. while wxecuting that I am getting the below exception 01/16|06:28:06:16800: Operating System Error|Failed to open output file Can anybody help me about this,,Its urgent (0 Replies)
Discussion started by: Anji
0 Replies

Featured Tech Videos