Created
June 26, 2018 06:00
-
-
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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