- Se incorporó
- 30 Marzo 2015
- Mensajes
- 345
La semana pasada me encontraba programando una tarea de respaldo para una base de datos en PostgreSQL, la cual debía tomar la base de datos de producción, hacer un dump y llevarla al servidor de desarrollo donde esta base se cargaría y se le realizarían algunas modificaciones del tipo UPDATE, nada de otro mundo. Cuando desarrollé el scrip en el servidor de desarrollo (Debian 8.5) este funcionó a la perfección, el problema fue cuando pasé el script a producción (Debian 7.11), al generar el .gz del respaldo arrojaba un extraño error que no lograba encontrar, ni corriendo el script con el clásico bash -x script.sh, la línea que presentaba el problema era:
"
PGPASSWORD="$PASS" /usr/bin/pg_dump -U$USER $DB|/bin/gzip --to-stdout > $DESARROLLOBKP/$DB-$(/bin/date +%Y%m%d).gz
"
Este error solo se presentaba ejecutando el script, si corría la misma línea (reemplazando las variables jejeje) el .gz se generaba sin ningún problema, intenté cambiando la compresión, pero este persistía.
Después de mucho tiempo verificando el script, descubrí el problema... el comando ldd tenía un """"error""" en su programación, la línea 118 estaba escita de la siguiente forma:
eval $add_env '"$@"' | cat
la cual cambié por:
eval $add_env '"$@"' | /bin/cat
y paaaafffff nació chocapic. Este mismo problema se me presentaba en un monitoreo de Nagios a otro servidor PostgreSQL, que también solucioné de esta forma.
Si me preguntan es algo bien rebuscado, pero considero importante comentar, a más de uno le podría servir.
saludos
"
PGPASSWORD="$PASS" /usr/bin/pg_dump -U$USER $DB|/bin/gzip --to-stdout > $DESARROLLOBKP/$DB-$(/bin/date +%Y%m%d).gz
"
Este error solo se presentaba ejecutando el script, si corría la misma línea (reemplazando las variables jejeje) el .gz se generaba sin ningún problema, intenté cambiando la compresión, pero este persistía.
Después de mucho tiempo verificando el script, descubrí el problema... el comando ldd tenía un """"error""" en su programación, la línea 118 estaba escita de la siguiente forma:
eval $add_env '"$@"' | cat
la cual cambié por:
eval $add_env '"$@"' | /bin/cat
y paaaafffff nació chocapic. Este mismo problema se me presentaba en un monitoreo de Nagios a otro servidor PostgreSQL, que también solucioné de esta forma.
Si me preguntan es algo bien rebuscado, pero considero importante comentar, a más de uno le podría servir.
saludos