Código: Seleccionar todo
#!/bin/bash
echo "Se va a realizar una copia de seguridad de tu usuario al disco data, carpeta backup"
cp -r -u -v /home/guillermo /media/guillermo/data/backup
Código: Seleccionar todo
chmod +x backup.sh
Código: Seleccionar todo
./backup.sh
Explicación del código:Desglosando el comando cp -r -u -vCódigo: Seleccionar todo
cp -r -u -v /origen /destino
El comando cp en Bash es una herramienta esencial para copiar archivos y directorios en sistemas Linux. Las opciones -r, -u y -v añaden funcionalidades específicas a esta operación básica. Vamos a analizar cada una de ellas:
cp
Función: Copiar archivos y directorios.
Sintaxis básica: cp [opciones] origen destino
-r (recursivo)
Función: Copia de forma recursiva todos los archivos y subdirectorios dentro de un directorio.
Ejemplo: cp -r directorio1 directorio2 copiará todo el contenido de directorio1, incluyendo subdirectorios, a directorio2.
-u (actualizar)
Función: Copia únicamente los archivos que son más recientes que los archivos de destino existentes.
Ejemplo: cp -u archivo1 destino copiará archivo1 a destino solamente si archivo1 es más reciente que un archivo con el mismo nombre en destino.
-v (verbose)
Función: Muestra detalles de la copia, como los nombres de los archivos que se están copiando.
Ejemplo: cp -v archivo1 destino mostrará mensajes como "copiando archivo1 a destino".
Combinando las opciones
Al utilizar cp -r -u -v, estás instruyendo al sistema a:
Copiar de forma recursiva: Todos los archivos y subdirectorios de un directorio.
Actualizar solo si es necesario: Copiar únicamente los archivos más recientes.
Ser detallado: Mostrar el progreso de la copia en la pantalla.
Ejemplo práctico
Supongamos que tienes un directorio llamado "proyectos" y deseas hacer una copia de seguridad en un directorio llamado "backup". Podrías utilizar el siguiente comando:Usa el código con precaución.Código: Seleccionar todo
cp -r -u -v proyectos/ backup/
Esto copiará todos los archivos y subdirectorios de "proyectos" a "backup", pero solo actualizará los archivos que han sido modificados desde la última copia. Verás una lista detallada de todos los archivos que se están copiando en la terminal.
En resumen:
cp: Comando básico de copia.
-r: Copia de forma recursiva.
-u: Actualiza solo los archivos más recientes.
-v: Muestra información detallada.
Cuándo utilizar este comando:
Crear copias de seguridad: Copiar directorios completos a un lugar seguro.
Sincronizar directorios: Mantener dos directorios con el mismo contenido, actualizando solo los archivos modificados.
Mover archivos de forma selectiva: Copiar únicamente los archivos que han sido alterados desde la última copia.
Observaciones:
Sobrescritura: Si intentas copiar un archivo a un lugar donde ya existe un archivo con el mismo nombre, el archivo existente será sobrescrito, a menos que la opción -u lo evite.
Permisos: Los permisos de los archivos y directorios copiados se mantendrán.
Enlaces simbólicos: El comportamiento con los enlaces simbólicos puede variar según tu distribución de Linux.
Al comprender estas opciones, puedes utilizar el comando cp de manera más eficiente y segura en tus scripts y tareas diarias.
NOTA: Algunos archivos es posible que no se copien por tema permisos, pero son de cache, nada más.
Ver esto: https://www.redeszone.net/tutoriales/se ... ar-tareas/
Programar una tarea con `cron` y `crontab` en un sistema Linux:
1. Abre la terminal.
2. Escribe crontab -e para editar el archivo crontab del usuario actual.
3. Se abrirá el archivo crontab en el editor de texto predeterminado. Aquí es donde puedes agregar, editar o eliminar tareas programadas.
4. Por ejemplo, ara ejecutar un script bash todos los días a las 12:30 horas, puedes agregar la siguiente línea al final del archivo:
Código: Seleccionar todo
30 12 * * * /ruta/al/tu/script.sh
5. Guarda y cierra el archivo.
Aquí está el desglose de la sintaxis de la línea agregada:
- 30 12 * * * : Esto especifica cuándo se ejecutará la tarea. En este caso, `30 12` significa que la tarea se ejecutará todos los días a las 12:30 horas.
- /ruta/al/tu/script.sh: Este es el comando que se ejecutará en el horario especificado.
Por último, asegúrate de que tu script bash tenga permisos de ejecución. Puedes hacer esto con el comando chmod +x /ruta/al/tu/script.sh.