11#! /bin/bash
22
3- # Variables
3+ # Variables por defecto
44SOURCE_DIR=" /home/javi/minecraft-server/data"
55BACKUP_DIR=" /home/javi/minecraft-server/backups"
66TIMESTAMP=$( date +" %Y-%m-%d" )
77BACKUP_FILE=" $TIMESTAMP .tar.gz"
88
9+ # Variables de montaje
10+ SERVER=" "
11+ FOLDER=" "
12+ MOUNTPOINT=" $BACKUP_DIR "
13+ USER=" "
14+ PASSWORD=" "
15+
16+ # Función para mostrar la ayuda
17+ mostrar_ayuda () {
18+ echo " Opciones:"
19+ echo " -server <IP-servidor> Dirección IP del servidor de archivos."
20+ echo " -folder <nombre_de_carpeta> Nombre de la carpeta compartida en el servidor."
21+ echo " -mountpoint <punto_de_montura> Directorio local donde se montará el volumen (opcional)."
22+ echo " -user <usuario> Nombre de usuario para la autenticación (opcional)."
23+ echo " -password <contraseña> Contraseña para la autenticación (opcional)."
24+ echo " -help Mostrar esta ayuda y salir."
25+ exit 0
26+ }
27+
28+ # Procesar los parámetros
29+ while [[ " $# " -gt 0 ]]; do
30+ case $1 in
31+ -server) SERVER=" $2 " ; shift ;;
32+ -folder) FOLDER=" $2 " ; shift ;;
33+ -mountpoint) MOUNTPOINT=" $2 " ; shift ;;
34+ -user) USER=" $2 " ; shift ;;
35+ -password) PASSWORD=" $2 " ; shift ;;
36+ -help) mostrar_ayuda ;;
37+ -m) MOUNT=true ;; # Indica que se debe montar el volumen en red
38+ * ) echo " Opción desconocida: $1 " ; mostrar_ayuda ;;
39+ esac
40+ shift
41+ done
42+
943# Crear directorio de respaldo si no existe
1044mkdir -p $BACKUP_DIR
1145
46+ # Montar el volumen en red si se especificó -m y todos los parámetros necesarios están presentes
47+ if [ " $MOUNT " = true ]; then
48+ if [ -z " $SERVER " ] || [ -z " $FOLDER " ]; then
49+ echo " Error: Se requieren los parámetros -server y -folder para montar el volumen en red."
50+ exit 1
51+ fi
52+
53+ echo " Montando el volumen en red..."
54+ MOUNT_CMD=" sudo mount -t cifs //$SERVER /$FOLDER $MOUNTPOINT "
55+
56+ if [ -n " $USER " ] && [ -n " $PASSWORD " ]; then
57+ MOUNT_CMD+=" -o username=$USER ,password=$PASSWORD "
58+ fi
59+
60+ # Ejecutar el comando de montaje
61+ $MOUNT_CMD
62+
63+ # Verificar si el montaje fue exitoso
64+ if [ $? -ne 0 ]; then
65+ echo " Error al montar el volumen en red."
66+ exit 1
67+ fi
68+
69+ # Recargar los servicios del sistema
70+ sudo systemctl daemon-reload
71+ echo " Volumen en red montado exitosamente en $MOUNTPOINT ."
72+ fi
73+
1274# Realizar la copia de seguridad
1375tar -zcvf $BACKUP_DIR /$BACKUP_FILE -C $SOURCE_DIR .
1476
@@ -19,4 +81,4 @@ echo "Copia de seguridad realizada con éxito: $BACKUP_DIR/$BACKUP_FILE"
1981find $BACKUP_DIR -name " *.tar.gz" -type f -mtime +2 -exec rm -f {} \;
2082
2183# Imprimir mensaje de limpieza de copias antiguas
22- echo " Copias de seguridad de más de 2 días eliminadas."
84+ echo " Copias de seguridad de más de 2 días eliminadas."
0 commit comments