Reparar la base de datos de RPM de Linux RedHat

De vez en cuando me encuentro con que voy a instalar un nuevo paquete RPM en Linux RedHat con yum o con el propio comando rpm pero no puedo hacerlo debido a una corrupción de la base de datos de RPM, devolviendo un error del siguiente estilo:

[[email protected] ~]# rpm -qa |grep -i py
error: db3 error(12) from dbenv->open: Cannot allocate memory
error: db3 error(12) from dbenv->close: Cannot allocate memory
error: cannot open Packages index using db3 - Cannot allocate memory (12)
error: cannot open Packages database in /var/lib/rpm
error: db3 error(12) from dbenv->open: Cannot allocate memory
error: db3 error(12) from dbenv->close: Cannot allocate memory
error: cannot open Packages database in /var/lib/rpm
[[email protected] ~]#

Como administro tantos servidores, es inviable ir comprobando uno a uno si la base de datos de RPM está bien o no, así que creé el siguiente script que tengo en el cron de todos los servidores que se encarga de verificar el estado de salud de la base de datos de RPMs y, en caso de que esté mal, la reconstruye:

# crontab -l |grep -i rpm
00 00 01 * * /planific/bin/admsys/checkrpmdb.sh
# cat /planific/bin/admsys/checkrpmdb.sh
#!/bin/sh

PATH=$PATH:/bin:/usr/bin

RPMDBCHECK=$(rpm -qa |wc -l)

if [ "$RPMDBCHECK" = "0" ]
then

   rm -f /var/lib/rpm/__db*
   rpm --rebuilddb
   db_verify /var/lib/rpm/Packages

fi
#

Por ahora, este script lo estoy utilizando en RedHat 6 y 7.

¿Te ha gustado? ¡Compártelo!

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on email

SUSCRÍBETE A PUERTO53

Recibe un email periódico con los artículos más interesantes de Puerto53.com

Antes de suscribirte lee los términos y condiciones. Gracias.

Contenido Relacionado

Artículos Recientes

Deja un comentario

About Author