Backup automático de un directorio en Linux
Para empezar sacar backup de nuestros directorios Linux es necesario conocer los siguientes conceptos.
¿Qué es cron?
El nombre cron viene del griego chronos que significa “tiempo”. En el sistema operativo Unix, cron es un administrador regular de procesos en segundo plano (demonio) que ejecuta procesos o guiones a intervalos regulares (por ejemplo, cada minuto, día, semana o mes). Los procesos que deben ejecutarse y la hora en la que deben hacerlo se especifican en el fichero cr0ntab.
¿Qué es Cr0ntab?
Es un simple archivo de texto que guarda una lista de comandos a ejecutar en un tiempo especificado por el usuario. Además verificará la fecha y hora en que se debe ejecutar el script o el comando, los permisos de ejecución y lo realizará en el background. Cada usuario puede tener su propio archivo, de hecho el /etc/cr0ntab se asume que es el archivo del usuario root, cuando los usuarios normales (e incluso root) desean generar su propio archivo de cr0ntab, entonces utilizaremos el comando cr0ntab.
Cr0ntab es la manera mas sencilla de administrar tareas de cron en sistemas multiusuario, ya sea como simple usuario de sistema o usuario root.
Pasos para sacar el Backup
- Crear el directorio para los scripts y backups de un directorio
1 2 |
mkdir /scripts /opt mkdir /backup / |
- Crear un script que genere un backup de tipo “semanal” utilizando de manera automática todos los scripts.
1 |
touch /opt/scripts/backup-semanal.sh |
1 |
chmod +x /opt/scripts/backup-semanal.sh |
1 |
vim /opt/scripts/backup-semanal.sh |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#!/bin/bash #Proposito = sacar backup de carpeta DATA #Fecha = 30/11/2016 #Author = Granados Santos Jhoon #Version 1.0 #START TIME=$(date +%y%m%d) # Este comando agregará fecha en nombre de archivo. FILENAME=backup-$TIME.tar.gz # Aquí defino el formato y nombre de archivo. SRCDIR=/data # Ubicación del directorio de backup. DESDIR=/backup # Destino del archivo de copia de seguridad. tar -cpzf $DESDIR/$FILENAME $SRCDIR #END |
- Podemos ahora programar la ejecución de este script
Nota: 4 remplazar por «a»
1 |
vim /etc/cront4b |
1 2 |
# Ejecutar el script cada domingo a la media noche 0 0 * * 0 root /opt/script/backup.sh |
El significado de los 5 asteriscos de crontab también se de izquierda a derecha, los asteriscos representan:
- * Minutos: de 0 a 59.
- * Horas: de 0 a 23.
- * Día del mes: de 1 a 31.
- * Mes: de 1 a 12.
- * Día de la semana: de «0» a «6», siendo «0» el domingo.
En conclusión.- Crontab Linux es similar a las programaciones de tareas de Windows. Crontab son muy útiles para las tareas rutinarias como la exploración sistema de programación, copias de seguridad diarias, etc crontab ejecuta tareas de forma automática en el back-end de intervalo de tiempo especificado. Para la programación de tareas de tiempo de uno se puede utilizar en el comando en Linux.