Foros del Web » Administración de Sistemas » Unix / Linux »

ayuda para crear un comando

Estas en el tema de ayuda para crear un comando en el foro de Unix / Linux en Foros del Web. Hola, he contratado un servidor dedicado linux y se lo justo de linux, por eso os pido ayuda para crear un cron que cree una ...
  #1 (permalink)  
Antiguo 12/06/2008, 04:47
Avatar de sfx4ever  
Fecha de Ingreso: noviembre-2003
Ubicación: aqui
Mensajes: 384
Antigüedad: 21 años
Puntos: 2
ayuda para crear un comando

Hola, he contratado un servidor dedicado linux y se lo justo de linux, por eso os pido ayuda para crear un cron que cree una copia de seguridad de mi base de datos mysql.

El cron lo puedo crear yo desde el panel de control plesk, en esto no hay problema, pero yo quiero que cada dia cree un archivo con el numero del dia al final, y al mes siguiente que se vayan machacando los archivos, asi siempre tengo copias de un mes como maximo.

Seria algo como esto:

mysqldump -u usuario -pmipass > copiadb12.sql (si por ejemplo hoy es dia 12)

El dia 12 del mes siguiente, la copia machacaria a esta que se ha creado hoy, por lo que siempre habria 31 archivos (despues de un mes de 31 dias, claro ).

¿se podria hacer tambien que se guarde comprimida, para que ocupe menos espacio ?

GRACIAS.

un saludo.
  #2 (permalink)  
Antiguo 12/06/2008, 14:43
Avatar de Koveart
Colaborador
 
Fecha de Ingreso: julio-2002
Ubicación: Colombia
Mensajes: 4.407
Antigüedad: 22 años, 3 meses
Puntos: 29
Respuesta: ayuda para crear un comando

Pues la verdad se trataria de hacer un script con cada mes, no le veo mayor problema asi no tendrás inconvenientes a la hora de que llegue el otro mes.

Saludos
__________________
“Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar”
  #3 (permalink)  
Antiguo 13/06/2008, 06:43
Avatar de Tombar  
Fecha de Ingreso: junio-2008
Ubicación: /home/tombar
Mensajes: 198
Antigüedad: 16 años, 5 meses
Puntos: 11
Respuesta: ayuda para crear un comando

lo que tienes que hacer es escribir un script en bash similar a esto

Código:
#[path/donde/queres/guardar/el/respaldo] = la ruta a donde quieres guardar el respaldo

cd [path/donde/queres/guardar/el/respaldo]

#[usuario] = tu user en la db
#[password] = tu pass en la db
#[basededatos] = el nombre de la db

#$(date +%Y%m%d) = 20080613 por ejemplo. 
# para sacar solo el dia (cosa q no te aconsejo) seria $(date +%d)

mysqldump -u [usuario] -p [password] [base de datos] > respaldoDB_$(date +%Y%m%d).sql

#aca seteamos permisos de solo lectura para el owner del archivo
chmod 400 respaldoDB_$(date +%Y%m%d).sql
con ese archivo lo que tenes que hacer es salvarlo dentro de tu home x ejemplo con el nombre respaldo_sql.sh y darle permisos de lectura y ejecucion solamente

chmod 500 respaldo_sql.sh

luego te creas una nueva tarea de cron y la apuntas a ese respaldo_sql.sh

Atencion:

estas guardando tu contrasena de base de datos en un archivo plano. esto no hay ninguna forma simple de evitarlo. hay un par de workarrounds de todas formas. si te interesa solo dilo y te guio en como hacerlo.

tu quieres guardar respaldos diarios y pisarlos x mes. yo lo que te aconsejaria seria hacer respaldos diarios y no pisarlos x mes, vamos que no hay necesidad alguna de hacerlo. hoy en dia el espacio sobra :P

si tienes problemas de espacio solo agrega el siguiente comando en el script despues del mysqldump y listo :P

bzip2 -9 respaldoDB_$(date +%Y%m%d).sql

con eso comprimes de maravilla el .sql (una db de 4.6GB la pasas a unos 500mb x ejemplo)

Última edición por Tombar; 13/06/2008 a las 06:48 Razón: agregado la compresion
  #4 (permalink)  
Antiguo 13/06/2008, 09:13
 
Fecha de Ingreso: julio-2003
Mensajes: 1.115
Antigüedad: 21 años, 3 meses
Puntos: 6
Respuesta: ayuda para crear un comando

Recomiendo le des una mirada al comando DAR, dos de sus principales cualidades son las de permitir realizar respaldos diferenciales comprimidos, pudiendo restaurar a una fecha determinada y además te puede partir en varios archivos para que puedan ser grabados en CD/DVD por ejemplo. Antes debes bajarlo de los repositorios y luego revisá este tuto explicativo.
http://dar.linux.free.fr/doc/mini-ho...-howto.es.html
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:07.