Estoy usando la última Linux Mint. Me preguntaba si es posible crear un cronjob especial para una copia de seguridad de la base de datos.
En mi /etc/cronjob
archivo tengo el siguiente código:
# Minute Hour Day of Month Month Day of Week Command
# (0-59) (0-23) (1-31) (1-12 or Jan-Dec) (0-6 or Sun-Sat)
30 4 * * 1-6 /home/users/backup.sh
En mi /home/users/backup.sh
tengo:
mysqldump -uroot -p MyDatabase > /home/users/backup_MyDB/full_myDB.sql
En lugar de, full_myDB.sql
me gustaría tener algo así como 2014-04-04_full_myDB.sql
donde la fecha se agrega dinámicamente dependiendo de la fecha que tengamos.
Si el archivo de copia de seguridad SQL es anterior a una semana, me gustaría que el cronjob lo elimine automáticamente.
Utilicé la información anterior y quería proporcionar una actualización menor más que realmente trunca una de las tablas realmente grandes que ralentizaba nuestras copias de seguridad.
Esperemos que esto ayude a alguien más.
Usando la información anterior, creé un script de shell básico llamado mysqlbackup.sh con el siguiente contenido:
Asegúrese de ejecutar: chmod + x mysqlbackup.sh
También puse esto en mi crontab -e:
fuente
Sé que es muy antiguo, pero he usado las respuestas anteriores y he agregado una instrucción de compresión de archivos. Esperemos que alguien más encuentre esto útil.
1) Investigando un poco, 7-zip parece el mejor compresor que existe. Si su distribución de Linux lo admite, puede usar el instalador apt:
Alternativamente, puede usar tar.gz si se siente más cómodo con él.
2) Luego, crea un script, por ejemplo,
/home/users/backup.sh
con los contenidos:Este script encontrará los archivos con más de 7 días y los eliminará, luego hará el volcado de sql, luego comprimirá 7 todos los archivos .sql en el directorio, luego eliminará todos los archivos .sql en el directorio ( Por cierto, opcionalmente puede agregar un comando mysql antes del volcado, como se señaló en la respuesta anterior si lo necesita)
3) Hacemos un
chmod +x /home/users/backup.sh
para que pueda ser ejecutable.3.1) Debe probar su secuencia de comandos si funciona según lo previsto
4) Programamos la tarea con
crontab -e
Y eso es. Realizará una copia de seguridad de su base de datos MySQL todos los días de la semana a las 4:30 a.m. (excepto los domingos), y comprimirá la copia de seguridad
fuente
Para agregar a la respuesta de @ Graeme, vale la pena señalar que a veces es posible que deba escapar del carácter '%' en un trabajo cron para que se vea así:
fuente