Skip to content

Instantly share code, notes, and snippets.

@Capriatto
Created June 26, 2018 06:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Capriatto/149bcdb7e81b8bc1d252c0d1d145a17e to your computer and use it in GitHub Desktop.
Save Capriatto/149bcdb7e81b8bc1d252c0d1d145a17e to your computer and use it in GitHub Desktop.
Este Script permite actualizar todas las bases de datos del servidor OpenERP 7 de forma automatizada.
#!/bin/bash
#permite obtener los nombres de las bases de datos
OUTPUT="$(psql -U openerp -d template1 -X -t -A -c "SELECT datname FROM pg_database where datname not in ('template0', 'template1', 'postgres')")"
read -a arr_ids_temp <<< $OUTPUT #crea un arreglo con los nombres
tamanio=${#arr_ids_temp[@]} #tamaño del arreglo
mult_cuatro=(4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100) #Estos multiplos de 4 se usan para actualizar las bases de datos en grupos de 4.
PID_list=() #arreglo que almacena el id de los 4 procesos que estan actualizando bases de datos
for (( i=0; i < $tamanio; ++i )) #ciclo para procesar cada base de datos
do
for a in "${mult_cuatro[@]}"; do # si es multiplo de 4 damos 3 minutos para que se actualicen las BD y luego matamos los 4 procesos.
if [ "$i" == "$a" ] ; then
sleep 180
kill -9 ${PID_list[@]}
unset PID_list #vaciamos el arreglo de id de procesos
break # rompemos el ciclo cuando encontramos la primera coincidencia de multiplicidad por 4
fi
done
/opt/openerp/server/openerp-server --addons-path="/opt/openerp/addons,/opt/openerp/web/addons" --update=doctor,l10n_co_doctor --database=${arr_ids_temp[$i]} & #cmd para actualizar cada BD
PID_list+=($!) #apendizamos el proceso que se acaba de iniciar con el comando anterior
done
sleep 180 #al final del programa esperamos 3 minutos
kill -9 ${PID_list[@]} #matamos todos los procesos que se iniciaron
echo "======>FIN DE LA ACTUALIZACIÓN<====="
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment