Saltar al contenido principal.

Copia de seguridad en Yandex.Disk a través de davfs



La copia de seguridad es una tarea importante que debe realizarse en cualquier servidor donde se encuentren datos importantes. Puede ser resuelto por varios métodos. Para sistemas grandes, este es el software apropiado que puede crear copias de seguridad sin una latencia notable en el servidor.

Para sistemas más pequeños (un servidor con una docena de sitios), el problema se puede resolver utilizando métodos más simples y usando scripts de escritura automática que copian datos, por ejemplo, en Yandex.Disk. La ventaja es que no necesita gastar dinero en un servidor adicional (o almacenamiento especial para copias de seguridad, que ofrecen algunos hosters). Y diez gigabytes asignados por Yandex pueden ser suficientes.



Puede registrar una cuenta dedicada en Yandex, o puede usar un buzón de correo en su dominio que se ejecuta en Mail for Domains.

Contenido del artículo:

¿Qué necesitas para una copia de seguridad?

Todo lo que se necesita es el paquete davfs2, a través del cual se montará la sección webdav en el sistema.

  # aptitude install davfs2 

Configurando davfs

Sus archivos de configuración se encuentran en la carpeta / etc / davfs2. El archivo davfs.conf contiene todas las configuraciones disponibles con valores predeterminados. No lo tocaremos por ahora.



El segundo archivo es interesante: secretos, que contienen inicios de sesión, contraseñas, proxy y configuración de certificados. Más específicamente, en la sección "Línea de credencial", donde debe registrar una entrada del formulario:

  / mnt / yadisk vashemail@yandex.ru vashparol 

El primer argumento es el punto de montaje, el segundo es su correo Yandex (inicio de sesión), el tercero es la contraseña. Esto es todo lo que se requiere para especificar.

Creando un punto de montaje y entrada en / etc / fstab

La sección necesita ser montada en algún lugar. Como se ve en el ejemplo anterior, este es el directorio / mnt / yadisk, que puede ser reemplazado por el suyo. Crearlo solo con acceso root:


  # mkdir -m 0700 / mnt / yadisk 

Luego editamos el archivo / etc / fstab, escribiendo la línea allí:

  https://webdav.yandex.ru / mnt / yadisk davfs noauto, noexec, nosuid, file_mode = 0600, dir_mode = 0700 0 0 

Aquí, la primera es la dirección para conectarse a Yandex.Disk, la segunda es el punto de montaje, la tercera es el tipo de sistema de archivos, la cuarta es opciones.

  • noauto : deshabilita el montaje del sistema de archivos cuando se inicia el sistema operativo o con el comando mount -a
  • noexec, nosuid : deshabilita el lanzamiento de archivos ejecutables y la instalación de bits suid / sgid en archivos y carpetas.
  • file_mode / dir_mode : establece permisos para archivos y carpetas, respectivamente, solo para el propietario (raíz, si no se especifican usuario y grupo en los parámetros uid y gid

¿Por qué no montar la partición automáticamente? Es necesario solo durante la copia de seguridad. Y después de que sea a) colgar inactivo, b) consumirá una pequeña cantidad de tráfico, sincronizando el contenido.

Después de guardar fstab, puede verificar si la partición está montada correctamente con el comando mount / mnt / yadisk .

Script de copia de seguridad

Tengo algunos sitios en el servidor. Básicamente, el contenido cambia con poca frecuencia y puede utilizar el método de copia completa.

Para estos propósitos, escribió un pequeño script simple en bash.

  #! / bin / bash
 # Inicializar variables
 BACKUPDIR = "/ var / tmp" # Directorio para copias de seguridad
 TMPDIR = "backup" # Carpeta temporal para copias de archivos, que luego se archiva
 YADISK = "/ mnt / yadisk" # Punto de montaje
 SQLDIR = "sqldb" # Carpeta para bases de datos
 SQLUSER = "raíz"
 SQLPASS = "12345"
 TIMEY = $ (fecha +% F_% H% M% S) # Tiempo en formato AÑO-MES-DÍA_hora de un minuto por segundo
 # Verificamos la disponibilidad de una carpeta para las bases de datos, si no existe, se crean todas las necesarias.
 si [!  -d "$ BACKUPDIR / $ TMPDIR / $ SQLDIR"];  entonces
 mkdir -p -m 0700 "$ BACKUPDIR / $ TMPDIR / $ SQLDIR"
 fi
 # Connect Yandex.Disk
 monte "$ YADISK"
 # Crear copias de seguridad
 # 1 base de datos
 cd "$ BACKUPDIR / $ TMPDIR / $ SQLDIR"
 para la base de datos en `mysql -s -r -e 'MOSTRAR BASES DE DATOS' |  grep -v Base de datos |  grep -v information_schema |  grep -v performance_schema |  grep -v mysql`;
 hacer mysqldump "$ database"> "$ database" .sql; hecho
 # 2 Todos los usuarios
 cd /
 tar -cf "$ BACKUPDIR" / "$ TMPDIR" /home.tar home
 # 3 configuraciones del sistema
 tar -cf "$ BACKUPDIR" / "$ TMPDIR" /system.tar etc var / spool / cron / crontabs
 # Embalamos en bzip-archive
 cd "$ BACKUPDIR"
 copia de seguridad tar -cjf - "$ TIMEY" .tbz2 "$ TMPDIR"
 copia de seguridad mv - "$ TIMEY" .tbz2 "$ YADISK"
 # Borrar archivos temporales
 rm -r "$ TMPDIR"
 # Eliminar archivos antiguos
 encuentra "$ YADISK" -tipo f -mtime +4 |  xargs rm -f
 # Desactivar Yandex.Disk
 umount "$ YADISK"
 salida 1 

Se ejecuta dos veces al día en la corona. Crea copias de bases de datos, ciertas configuraciones del sistema, así como datos de usuarios (sitios). Parcialmente, consiste en un script para copiar solo las bases de datos publicadas anteriormente.

A veces puede aparecer un error en syslog:

  mount.davfs: los archivos abiertos exceden el tamaño máximo de caché en 50 MiBytes 

En este caso, montamos la sección Yandex.Disk y vemos lo que se encuentra en la carpeta perdido + encontrado. Nosotros lo limpiamos. Luego, limpiamos el contenido de la carpeta / var / cache / davfs2 /.



¿Cómo calificas el artículo?
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (No hay valoraciones aún)
Cargando ...

Añadir un comentario

Su correo electrónico no será publicado.