Nube

Mostrando entradas con la etiqueta mantenimiento web. Mostrar todas las entradas
Mostrando entradas con la etiqueta mantenimiento web. Mostrar todas las entradas

martes, 26 de agosto de 2008

Realizar backup a MySql desde PHP

Voy a explicar como realizar un backup o copia de seguridad de tu base de datos MySql desde PHP.


//servidor MySql
$C_SERVER='tu_servidor';
//base de datos
$C_BASE_DATOS='tu_base_de_datos';
//usuario y contraseña de la base de datos mysql
$C_USUARIO='tu_usuario';
$C_CONTRASENA='tu_contraseña';
//ruta archivo de salida
//(el nombre lo componemos con Y_m_d_H_i_s para que sea diferente en cada backup)
$C_RUTA_ARCHIVO = '/ruta_hasta/backups/backup_'.date("Y_m_d_H_i_s").'.sql';
//si vamos a comprimirlo
$C_COMPRIMIR_MYSQL='true';


//comando
$command = "mysqldump --opt -h ".$C_SERVER." ".$C_BASE_DATOS." -u ".$C_USUARIO." -p".$C_CONTRASENA.
" -r \"".$C_RUTA_ARCHIVO."\" 2>&1";

//ejecutamos
system($command);

//comprimimos
if ($C_COMPRIMIR_MYSQL == 'true') {
system('bzip2 "'.$C_RUTA_ARCHIVO.'"');
}



*Supongo que el tutorial es aplicable a cualquier tipo de base de datos siempre y cuando tenga una consola y comandos correspondientes, sería cuestión de adaptar el código.

Mantenimiento MySql en PHP aplicable a otras bases de datos

Bueno, una manera bastante sencilla de realizar un mantenimiento de una base de datos MySql básico sería algo así :

Antes debes conocer como crear el conector $link.
Te dejo el tutorial por si te interesa: Tutorial Conexión a MySql desde PHP


//conectamos
mysql_conecta($link);
//listamos tablas
$tablas=mysql_query("SHOW TABLES FROM box",$link);
//recorremos todas las tablas
while($ft=mysql_fetch_array($tablas)){
//optimizamos las tablas
mysql_query("OPTIMIZE TABLE ".$ft[0],$link);
//otras tareas ...
}

jueves, 26 de junio de 2008

Crear una tarea programa en el cron de sistemas UNIX

En sistemas tipo UNIX, como Linux, FreeBSD o Darwin (Mac OS X), es posible utilizar tareas cron para realizar tareas periódicas. Pasar el antivirus, realizar copias de seguridad, optimizar bases de datos ... etc ... etc ...

Qué hacer

Nota: La sintaxis puede diferir según la versión de cron en su sistema.

  1. Inicie una sesión shell como root y escriba el siguiente comando para iniciar un editor tipo VI:
    crontab -u root -e
  2. Pulse 'i' para insertar texto.
  3. Una tarea cron requiere cinco entradas indicando la fecha y hora, y el nombre y ruta del programa a ejecutar. Utilice un espacio o una tabulación entre cada entrada:

    minuto(0-59) hora(0-23) día_del_mes(1-31) mes(1-12) día_de_la_semana (0-7) (parámetro opcional que indica la ruta del interprete del script a ejecutar) /ruta/elscript.loquesea

    Puede utilizar el asterisco "*" como carácter comodín. Así "0 10 * * * /ruta/script.sh" equivale a "0 10 1-31 1-12 0-7 /ruta/script.sh". En este caso, el script se ejecutará a las diez de la mañana todos los días.

    Por ejemplo, para realizar un escaneado con Sophos Anti-Virus en el que se borren los elementos infectados de forma automática a las 8 de la noche en Linux (en Darwin no es necesario indicar la ruta a sweep), utilice:
    0 20 * * * /usr/local/bin/sweep /directorio/subdirectorio -remove

    Es posible utilizar nombres, en inglés, para indicar el mes o el día de la semana. Para el domingo puede utilizar Sunday, 0 ó 7.
  4. Una vez especificada la tarea, pulse 'Esc' para dejar el modo de inserción.
  5. Pulse 'ZZ' ('z' mayúsculas dos veces). Se mostrará un mensaje del tipo:
    /crontab.zUcAAFwPVp: 1 lines, 24 characters
    crontab: installing new crontab

La tarea ya se ha guardado y se enviará un mensaje de confirmación a root.

Para más información sobre cron o crontab, lea las páginas man correspondientes. Por ejemplo, para ver las páginas man de crontab:

man crontab


Fuente: www.esp.shopos.com

Realizar copia de seguridad de archivos web

Para realizar copias de seguridad, en linux, de nuestros archivos web cada cierto tiempo, deberemos de crear una tarea en el cron. Si no sabes como crearla pásate por aquí.

Yo suelo utilizar php para realizar dichas tareas:


//ruta archivo de salida
$C_FILE_ARCHIVO = "/ruta/backups/file_backup_".date("y_m_d_H_i_s").".tar.bz2";

//archivo o directorio a comprimir
$C_FILE_COMPRIME="eldirectoriodemiweb.com/";

//instrucción de guardado
system('tar -c "'.$C_FILE_COMPRIME.'" | bzip2 > "'.$C_FILE_ARCHIVO.'"');


Cualquier duda preguntarla.