Versión: Guía Versión 1
Probado: He probado esto en CentOS Linux con el servidor de MySQL 5, y funciona al 100%. Recientes versiones de servidor MySQL 4.x debe apoyar también. Se trabajará con cualquier base de datos SQL, se puede usar para que los foros o las bases de datos SQL. También puede trabajar en cygwin si se ha instalado la herramienta en su cron cygwin. (Necesidad de una confirmación cygwin usuario, si usted puede conseguir que funcione)
Hola compañeros de DivineRO.
He escrito esta guía para uso de otras personas para establecer un sistema automático de copias de seguridad para su servidor utilizando cron.
Requisitos
El conocimiento de los comandos básicos de Linux, que trabajan con archivos, edición de ficheros es todo lo que necesita saber, básicamente.
Cron - ¿Qué más probable es que usted ya tiene.
Mysqldump - Se incluye con su distribución de MySQL.
¿Qué es cron?
"Cron" es una muy útil utilidad de Linux que puede realizar tareas a intervalos específicos, o momentos del día. Se utiliza mucho en nuestro mundo empresarial, y lo mejor de todo, usted probablemente ya tiene en su distribución de Linux.
Primeros pasos
Primero lo primero, hay que decidir con qué frecuencia usted desea que sus copias de seguridad que se cree.
Mine se establecen por horas, porque no me gusta tener que revertir a todos, y mucho menos por más de una hora.
Decidió todavía? Bien. Pasando ...
1.) Utilice vi o nano o algo para crear un nuevo archivo llamado auto-backup.sh, y pegue el siguiente. Asegúrese de que ninguna de las líneas de recapitulación. ^ ^
# autobackup.sh for eAthena/Freya/etc (SQL) Linux users.
# made by Euph, version 1
# Important Settings
# Change these to match your information.
BACKUP_DIR=/path/to/backups/folder
BACKUP_SQL_LOGIN=ragnarok
BACKUP_SQL_PASS=ragnarok
BACKUP_SQL_DB=ragnarok
# Don't touch this unless you know what you're doing!
BACKUP_FILE_OLD=$BACKUP_SQL_DB.$(date +%F.%H --date='1 week ago').sql.tgz
BACKUP_FILE_NEW=$BACKUP_SQL_DB.$(date +%F.%H).sql
# Go to our backup folder
cd $BACKUP_DIR
# Purge a backup we made 1 week ago, if any. This is useful if you dont want
# a full partition after a month or two. This line is completely optional though.
# you do not have to delete 1 week old back-ups, it's just my preference,
# so comment this out if you want to.
rm -f $BACKUP_FILE_OLD 2>/dev/null
# And now create the new backup
mysqldump -u$BACKUP_SQL_LOGIN -p$BACKUP_SQL_PASS $BACKUP_SQL_DB --add-drop-table --allow-keywords > $BACKUP_FILE_NEW 2>/dev/null
# Not finished yet! We should compress this backup because it can get quite large!
tar -zcf $BACKUP_FILE_NEW.tgz $BACKUP_FILE_NEW 2>/dev/null
# Finally, remove the existing file
rm $BACKUP_FILE_NEW
Cambio de los ajustes necesarios en el guión, guardarla y salida.
En el shell, escriba lo siguiente:
chmod +x auto-backup.sh
Esto hace que la secuencia de comandos de un archivo ejecutable.
Ahora que hemos creado el script que genera la copia de seguridad, ahora queremos que sea automática, en primer lugar, recordar la carpeta que se haya colocado en el archivo! Será necesario ahora que estamos estableciendo cron. Si no conoce la forma de ver su carpeta actual, escriba pwd.
Escriba lo siguiente en el shell:
crontab -e
Esto le llevará a un editor, más probable es que "vi" - un editor en linux.
Si no hay nada allí, genial, si no, basta con acceder a la línea siguiente. Ahora quiere escribir una de las siguientes:
(Si está utilizando vi, presione la tecla I para entrar en modo de inserción.)
PARA HOURLY: (lo que se pueden ejecutar en cada primer minuto de cada hora. El primer parámetro debe ser 0-59.)
1 * * * * /path/to/folder/autobackup.sh
SÓLO PARA ESPECÍFICOS HORAS (esto se ejecute a 1:01 AM, 3:01 AM, 5:01 AM. El segundo parámetro debe ser 0-23.)
1 1,3,5 * * * /path/to/folder/autobackup.sh
DE UNA VEZ POR DÍA (esto funcionará todos los días a las 12:30 PM.)
30 12 * * * /path/to/folder/autobackup.sh
Entender? Espero que sí, la causa no voy más nuevas entradas en el crontab.
Copiar, salida. (En VI, pulse ESCAPE clave, a continuación, escriba: wq y pulse ENTER.)
¡Bien! Usted acaba de añadirse una nueva entrada cron. Si lo hizo correctamente, debe ver la siguiente.
Crontab: instalación de nuevos crontab
-------------------------------------------------- -----------------
En este punto, su sistema de copia de seguridad automática deberá entrar en funcionamiento si sigue esta guía. Ahora, lo que debe saber, la forma de restaurar estas copias de seguridad.
En primer lugar, asegúrese de apagar el servidor en primer lugar, por lo que puede llevar a cabo la reversión.
Sólo tiene que seguir estos comandos shell:
cd /path/to/backup/folder
ls *.tgz
(Ahora, fíjese en los nombres de archivo y tratar de encontrar la adecuada copia de seguridad que usted necesita en su situación actual.)
Entonces este tipo para extraer el contenido:
tar -zxvf filenameofbackup.sql.tgz
Ahora, escribir esto: (y cambiar las cosas que tengo en tapas )
mysql -uYOURUSERNAME -p YOURSQLDBNAME < filenameofbackup.sql
dele entrar, se le pedirá la contraseña de su SQL, entrar en ella, pulse intro.
Si todo está bien y dandy, que acaba de restablecerse de su archivo de copia de seguridad.
Después de eso, puede que desee:
rm filenameofbackup.sql
Para deshacerse de los grandes sin script SQL.
Si alguien tiene algún problema con esta guía o mis guiones, no dudes en preguntar.