diff --git a/actualizar_gestor.sh b/actualizar_gestor.sh new file mode 100755 index 0000000..412c41b --- /dev/null +++ b/actualizar_gestor.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# Ejecuta la actualizacion del gestor corporativo +source ./configuracion.conf +mysql -u ${USER} -p${PASS} ${DB} < consultas_gestor.sql > estado_gestor.log 2>&1 +date '+%Y%m%d %H:%M' >> fechas_gestor.txt + diff --git a/api-cli.php b/api-cli.php new file mode 100755 index 0000000..f8b1795 --- /dev/null +++ b/api-cli.php @@ -0,0 +1,84 @@ + 0) { + $put_log= @file_get_contents('_put.log'); + $put_log= substr($put_log, -28); + $RES= -intval($RES); + } else { + $put_log= 'OK'; + $RES= 1; + } + $msg= mysql_real_escape_string($put_log); + $Q = << diff --git a/configuracion.conf_ b/configuracion.conf_ new file mode 100644 index 0000000..b980adf --- /dev/null +++ b/configuracion.conf_ @@ -0,0 +1,18 @@ +#Antes de distribuir confirmar que este directorio +# no contenga la clave *privada*. +V=3 +DB=db_trebol_sucursal +USER=helpcom_back_up +PASS=resp2014aldo +BUCKET=trebol-sucursal +APIKEY_L1=0 +# Edad de respaldos locales +EDADL="30 days" +# Edad de respaldos remotos +EDADR="14 days" +# public keyid (subclave) desde gpg --list-keys +KEYID=4F7097DB +# ruta de los respaldos +RUTA=/usr/local/respaldos +RUTATXT=/usr/local/respaldos + diff --git a/consultas_gestor.sql b/consultas_gestor.sql new file mode 100644 index 0000000..bc2a8a2 --- /dev/null +++ b/consultas_gestor.sql @@ -0,0 +1,27 @@ +-- +-- ESTA CONSULTA INSERTA RESUMEN MENSUAL POR CADA EMPRESA AGRUPADA POR SUCURSAL +-- + +INSERT INTO gco_empresas_detalle (emp_id,emd_ano,emd_mes,suc_id,emd_total) +(SELECT a.emp_id,YEAR(current_date()),MONTH(current_date()),suc_id,sum(bed_usado) +FROM gco_beneficiarios_detalle a INNER JOIN gco_empresas b USING (emp_id) +WHERE bed_centralizado ='NO' and emp_dia_corte=DAY(current_date()) +GROUP BY a.emp_id, suc_id); + + +-- +-- ESTA CONSULTA ACTUALIZA DETALLE, CAMBIA ESTADO DE CENTRALIZACIÓN DE NO A SI PARA NO VOLVER A CENTRALIZAR +-- +UPDATE gco_beneficiarios_detalle a INNER JOIN gco_empresas b USING (emp_id) +SET bed_centralizado='SI' +WHERE bed_centralizado='NO' and emp_dia_corte=DAY(current_date()); + + + +-- +-- ESTA CONSULTA ACTUALIZA DATOS DEL BENEFICIARIO, REINICIA SUS SALDOS A CERO AL CERRAR EL MES +-- +UPDATE gco_beneficiarios a INNER JOIN gco_empresas b USING (emp_id) +SET ben_aprobado=0, ben_usado=0, ben_saldo=0 +WHERE emp_dia_corte=DAY(current_date()); + diff --git a/crontab.txt b/crontab.txt new file mode 100644 index 0000000..2648394 --- /dev/null +++ b/crontab.txt @@ -0,0 +1,2 @@ +5 0 * * * cd /usr/local/respaldos/db && ../respaldar.sh ../configuracion.conf && ../subir.sh ../configuracion.conf + diff --git a/detail/Conn.Respaldos.php b/detail/Conn.Respaldos.php new file mode 100644 index 0000000..0b256b0 --- /dev/null +++ b/detail/Conn.Respaldos.php @@ -0,0 +1,24 @@ + 'helpcom_user' + , 'pass' => 'ale2015rce' + , 'host' => '10.0.0.6' + , 'db' => 'db_trebol_respaldos' + ); + if (!$ini) { + die("Error cargando la configuración de la sucursal.\n"); + } + if (!($link=mysql_connect( $ini['host'], $ini['user'], $ini['pass'] ))) { + die("Error conectando al servidor.\n"); + exit(); + } + if (!mysql_select_db($ini['db'],$link)) + { + die("Error abriendo la base de datos.\n"); + exit(); + } + return $link; +} + +?> diff --git a/detail/Maestros.php b/detail/Maestros.php new file mode 100644 index 0000000..53237b4 --- /dev/null +++ b/detail/Maestros.php @@ -0,0 +1,27 @@ + 'helpcom_db' + , 'pass' => 'helpcom211' + , 'host' => '10.0.0.4' + , 'db' => 'db_trebol_centralizado' + ); + if (!$ini) { + die("Error cargando la configuración de la sucursal.\n"); + } + if (!($link=mysql_connect( $ini['host'], $ini['user'], $ini['pass'] ))) { + die("Error conectando al servidor.\n"); + exit(); + } + if (!mysql_select_db($ini['db'],$link)) + { + die("Error abriendo la base de datos.\n"); + exit(); + } + return $link; +} + +function Version() { + return htmlspecialchars(@file_get_contents('./VERSION.txt')); +} +?> diff --git a/mysqldump-error.log b/mysqldump-error.log new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/mysqldump-error.log @@ -0,0 +1 @@ + diff --git a/public.key b/public.key new file mode 100644 index 0000000..a3375cb --- /dev/null +++ b/public.key @@ -0,0 +1,52 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.12 (GNU/Linux) + +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 +0KphVhKpHIKa+k7ClL/R +=KNku +-----END PGP PUBLIC KEY BLOCK----- diff --git a/respaldar.sh b/respaldar.sh new file mode 100755 index 0000000..fc971d1 --- /dev/null +++ b/respaldar.sh @@ -0,0 +1,20 @@ +#!/bin/bash +set -eu +source ./configuracion.conf +HOY=$(date -d 'yesterday' '+%Y%m%d') +PASADO=$(date -d "now - ${EDADL}" '+%Y%m%d') + +# mysqldump +date +'%Y%m%d %H:%M' >> fechas.txt +rm completed.txt || true +ARCHIVO=${DB}-${HOY} +ARCHIVOPASADO=${DB}-${PASADO} +mysqldump -u ${USER} -p${PASS} -v --log-error=mysqldump-error.log --opt \ + ${DB} > $ARCHIVO.sql +grep " Dump completed" $ARCHIVO.sql > completed.txt +gzip -9 $ARCHIVO.sql +date +'%Y%m%d %H:%M' >> fechas.txt +echo >> fechas.txt +rm ${DB}-${PASADO}.sql.gz || true + + diff --git a/s3cfg.txt b/s3cfg.txt new file mode 100644 index 0000000..f1a1e2b --- /dev/null +++ b/s3cfg.txt @@ -0,0 +1,62 @@ +[default] +access_key = AKIAIBILBDIMRQ5GTBEA +access_token = +add_encoding_exts = +add_headers = +bucket_location = US +cache_file = +cloudfront_host = cloudfront.amazonaws.com +default_mime_type = binary/octet-stream +delay_updates = False +delete_after = False +delete_after_fetch = False +delete_removed = False +dry_run = False +enable_multipart = True +encoding = UTF-8 +encrypt = False +expiry_date = +expiry_days = +expiry_prefix = +follow_symlinks = False +force = False +get_continue = False +gpg_command = /usr/bin/gpg +gpg_decrypt = %(gpg_command)s -d --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s +gpg_encrypt = %(gpg_command)s -c --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s +gpg_passphrase = tre2014r +guess_mime_type = True +host_base = s3.amazonaws.com +host_bucket = %(bucket)s.s3.amazonaws.com +human_readable_sizes = False +ignore_failed_copy = False +invalidate_default_index_on_cf = False +invalidate_default_index_root_on_cf = True +invalidate_on_cf = False +list_md5 = False +log_target_prefix = +max_delete = -1 +mime_type = +multipart_chunk_size_mb = 15 +preserve_attrs = True +progress_meter = True +proxy_host = +proxy_port = 0 +put_continue = False +recursive = False +recv_chunk = 4096 +reduced_redundancy = False +restore_days = 1 +secret_key = iHzuaqOElkIcKZzOx5tc1p8/K9PMbaiU8iYttBw/ +send_chunk = 4096 +server_side_encryption = False +simpledb_host = sdb.amazonaws.com +skip_existing = False +socket_timeout = 300 +urlencoding_mode = normal +use_https = False +use_mime_magic = True +verbosity = WARNING +website_endpoint = http://%(bucket)s.s3-website-%(location)s.amazonaws.com/ +website_error = +website_index = index.html diff --git a/subir.sh b/subir.sh new file mode 100755 index 0000000..a5077ed --- /dev/null +++ b/subir.sh @@ -0,0 +1,32 @@ +#!/bin/bash +set -eu +source ${1} +PATH=${PATH}:/usr/local/bin: +HOY=$(date -d 'yesterday' '+%Y%m%d') +PASADO=$(date -d "now - ${EDADR}" '+%Y%m%d') + +# encriptar para subir +gpg -r ${KEYID} --trust-model always -e ${DB}-${HOY}.sql.gz +SUB_TAMANYO=$(ls -l ${DB}-${HOY}.sql.gz.gpg | tr -s ' ' | cut -f 5 -d ' ') + +# genera un .sql.gz.gpg +LOG=log_$DB.txt +echo $HOY > $LOG; + +echo ${DB}_${HOY} +# s3cmd para subir el respaldo +php ./api-cli.php INI "$DB" "$HOY:${SUB_TAMANYO}:0" | tee -a $LOG +s3cmd put ${DB}-${HOY}.sql.gz.gpg s3://${BUCKET}/ 2>&1 | tee _put.log +RESULT=${PIPESTATUS[0]} +if test $RESULT -gt 0; + then echo "Error: $RESULT; " + exit $RESULT +fi + +s3cmd put completed.txt s3://${BUCKET}/ +rm ${DB}-${HOY}.sql.gz.gpg || true +php ./api-cli.php FIN "$DB" "$HOY:$SUB_TAMANYO:$RESULT" | tee -a $LOG + +s3cmd del s3://${BUCKET}/${DB}-${PASADO}.sql.gz.gpg || true +s3cmd ls -H s3://${BUCKET}/ > ls_${BUCKET}.log + diff --git a/trebol.mysqldump.sql b/trebol.mysqldump.sql new file mode 100644 index 0000000..a767c77 --- /dev/null +++ b/trebol.mysqldump.sql @@ -0,0 +1,4 @@ +CREATE USER helpcom_back_up IDENTIFIED BY 'resp2014aldo'; +GRANT SELECT, LOCK TABLES ON *.* TO helpcom_back_up; +FLUSH PRIVILEGES; + diff --git a/trebol.paquetes.txt b/trebol.paquetes.txt new file mode 100644 index 0000000..03724c4 --- /dev/null +++ b/trebol.paquetes.txt @@ -0,0 +1,27 @@ +tzdata +aptitude +apt-file +mysql-server +mysql-utilities +unattended-upgrades +ntp +ntpdate +git +rsync +python-debian +python-dateutil +gnupg +gpgv +sshfs +sshpass +zip +unzip +p7zip +p7zip-full +s3cmd +pv +mc +screen +php5-cli +php5-curl +