2010-10-26 22 views
5

Soy nuevo en tareas cron y necesito restaurar una base de datos (mysql) cada 30 minutos. ¿Hay un comando cron job que pueda restaurar una base de datos desde un archivo .sql que se ha descomprimido gf?Necesito restaurar una base de datos (mysql) cada 30 minutos usando un trabajo cron

¿O necesito crear un script php para hacer esto y crear un trabajo cron para llamar este script cada treinta minutos?

Además, y esta es una pregunta aparte pero relacionada con los trabajos cron, estoy usando un trabajo cron para hacer una copia de seguridad de una base de datos diferente una vez al día, gzip y ponerla en una carpeta sobre la raíz. ¿Hay alguna manera de (automáticamente) eliminar algo más antiguo que un mes? O, al menos, ¿conserva las 20 copias de seguridad más recientes y elimina el resto?

No hay muchos buenos tutoriales sobre este tema que no sean mensajes aleatorios en el foro. Cualquier ayuda es apreciada.

Respuesta

7

En cuanto a la forma de importar un archivo de volcado, en pocas palabras un

mysql -u user -ppassword databasename < /path/to/dump.sql 

en el trabajo de cron.

Más detalles: How do I restore a MySQL .dump file?

+0

muy apreciada. – Johnny

+0

Entiendo la historia de este Pekka, pero ¿sería más eficiente realizar este método sobre 'cat /path/to/file.sq/ | mysql -u root -pcontraseña'? –

+1

@Daryl ¡Conozco muy poco sobre cómo Unix/Linux maneja los datos de archivo para decir de qué manera es más eficiente! Puede ser que tu sugerencia sea mejor. –

1

Se puede escribir un script bash para hacer esto.

mysql -uPutYourUserHere -pPutYourPasswordHere PutYourUserHere_databaseName < database.sql 

No hay nada que elimine automáticamente algo. Pero se puede hacer en su trabajo de cron:

find /path/to/files -mtime +30 -exec rm {}\; 
+0

Quise decir un trabajo cron para eliminar copias de seguridad antiguas. Creo que "automáticamente" fue engañoso. Intentaremos tu sugerencia. No estoy muy familiarizado con los scripts bash, me temo. – Johnny

+0

find es una herramienta realmente poderosa. a veces, si busca en google "encontrar eliminar mes anterior", encontrará la respuesta correcta. –

+0

Me aparece un mensaje de error que dice find: missing argument to '-exec ' – Johnny

1

MySQL no puede manejar los datos gzipped directamente, pero es trivial para tubería a través de gzcat y luego tubería que a mysql:

gzcat name_of_file.sql.gz | mysql -u.... 
Cuestiones relacionadas