El blog de Juan Palómez

17 marzo 2013

Automysqlbackup additions

Filed under: Uncategorized — Etiquetas: , — thisisoneball @ 16:05

These are some things I add or change to the default AutoMySQLBackup script:

  • mysqldump options
OPT="--quote-names --opt"

For this section you should read the mysqldump documentation, but this is what I use:

OPT="--quote-names --opt --routines --single-transaction --skip-dump-date"

–routines dumps your stored procedures and functions along with the tables (it creates DROP PROCEDURE and CREATE PROCEDURE statements in your dump file). Routines are also stored in the information_schema database, so if you are also dumping that database, the routines will be there anyway.

–single-transaction avoids this kind of error:

mysqldump: Got error: 1449: The user specified as a definer (‘root’@’%’) does not exist when using LOCK TABLES

–skip-dump-date

this eliminates the “– Dump completed on xxxx-xx-xx” line at the end of each dump file. Otherwise, dumps from identical schemas appear to be different. With this, the files are identical and you can delete duplicate files and save disk space

  • Parallel compresion

Compression of the dump files was taking too long in my system, as the files are big and I also use bzip2 instead of gzip because of its higher compression rate.
So I installed the pbzip2 package, which can use several CPU cores at the same time, unlike bzip2. I have a 4-core processor so I use -p3 so that it uses 3 cores in parallel. By default it autodetects the number of cores, which is usually ok, although if the processor has Hyperthreading I would recommend setting the number manually, because it can autodetect twice the real number of cores. I also remove the -v switch as it’s too verbose in pbzip2

Original options:

BZIP2="`${WHICH} bzip2`"
${BZIP2} -f -v ${1} 2>&1

My options:

BZIP2="`${WHICH} pbzip2` -p3"
${BZIP2} -f ${1} 2>&1
  • Skipping backup

In my server some DB processes can take days to complete, and in that case I prefer not to run the DB backup. I read the /proc/loadavg file (which shows the same system load values as the uptime or top commands) to check if there is something running (this is a dedicated DB server so if the load is high it should be the DB causing it):

if [ "$(cut -f1 -d. /proc/loadavg)" -gt 1 ]
then
    echo "System load too high, skipping backup"
    exit 10
fi

15 marzo 2013

Traducir documento de Word “in situ”

Filed under: Uncategorized — Etiquetas: — thisisoneball @ 20:40

 

Esto sirve para traducir el texto de un documento dentro del propio documento, manteniendo el formato y las imágenes.

 
Puedes usar translate.google.es, pinchar en “traduce un documento”, y ahí seleccionar el archivo desde tu PC, y el resultado se muestra en una página web, aunque sin imágenes.
 
Otra forma es abrir el documento en Word, ir a Archivo -> Guardar como -> Guardar como Página Web.
Abre el archivo resultante con Google Chrome y el propio navegador sugerirá traducir la página. Si no es así haz click derecho en la página y selecciona Traducir.
 

1 marzo 2013

Ver progreso de lectura o escritura de un archivo

Filed under: Uncategorized — Etiquetas: , , , , — thisisoneball @ 17:51

A veces un programa tarda mucho tiempo en procesar un archivo y no muestra el progreso de la operación que está haciendo ni dice la hora aproximada a la que va a terminar. Pero el sistema operativo tiene información sobre los ficheros abiertos y con el software adecuado se puede mirar la posición en bytes que se está leyendo o escribiendo en un momento dado.

En Windows XP puedes usar el programa FileMon (File Monitor) y en XP/Vista/7 Process Monitor:
En la columna Other aparece un campo Offset que es la posición en el fichero en bytes. Este programa puede sacar demasiada información así que conviene filtrar las filas por nombre de archivo o por proceso.
Si usas Process Monitor, para que haga lo equivalente a File Monitor hay que pulsar el botón “Show File System Activity”

En Linux, como root, hay que buscar el PID del proceso que tiene abierto el archivo (puedes usar ‘ps’ y deducir qué proceso es o usar ‘lsof’ para ver qué archivos tiene abierto cada proceso). Lista el contenido del directorio /proc/[PID]/fd , y busca ahí el archivo. Por ejemplo

2 -> /var/log/httpd/error_log

Cogemos el número de la izquierda y hacemos ‘cat /proc/[PID]/fdinfo/2′ y el campo ‘pos’ es la posición en bytes en el archivo.

Otros comandos interesantes para Linux/Unix son ‘bar’,’pv’ e ‘iostat’

Crea un blog o un sitio web gratuitos con WordPress.com.