Passer au contenu principal

Sauvegarde sur Yandex.Disk via davfs



La sauvegarde est une tâche importante qui doit être effectuée sur tout serveur sur lequel se trouvent des données importantes. Il peut être résolu par différentes méthodes. Pour les grands systèmes, c'est le logiciel approprié qui peut créer des sauvegardes sans latence de serveur notable.

Pour les systèmes plus petits (un serveur avec une douzaine de sites), le problème peut être résolu en utilisant des méthodes plus simples et en utilisant des scripts auto-écrits qui copient les données, par exemple, sur Yandex.Disk. L'avantage est que vous n'avez pas besoin de dépenser de l'argent pour un serveur supplémentaire (ou un stockage spécial pour les sauvegardes, ce que certains hébergeurs proposent). Et dix gigaoctets alloués par Yandex peuvent suffire.



Vous pouvez enregistrer un compte dédié dans Yandex ou utiliser une boîte aux lettres sur votre domaine qui s'exécute sur Mail for Domains.

Contenu de l'article:

De quoi avez-vous besoin pour une telle sauvegarde?

Tout ce dont vous avez besoin est le package davfs2, à travers lequel la section webdav sera montée dans le système.

  # aptitude install davfs2 

Paramétrer davfs

Ses fichiers de configuration sont situés dans le dossier / etc / davfs2. Le fichier davfs.conf contient tous les paramètres disponibles avec les valeurs par défaut. Nous ne le toucherons pas pour l'instant.



Le deuxième fichier est intéressant - secrets, contenant les noms de connexion, les mots de passe, les paramètres de proxy et de certificat. Plus précisément, la section «Ligne de référence», où vous devez enregistrer une entrée du formulaire:

  / mnt / yadisk vashemail@yandex.ru vashparol 

Le premier argument est le point de montage, le second est votre courrier Yandex (login), le troisième est le mot de passe. C'est tout ce qu'il faut spécifier.

Création d'un point de montage et d'une entrée dans / etc / fstab

La section doit être montée quelque part. Comme indiqué dans l'exemple ci-dessus, il s'agit du répertoire / mnt / yadisk, qui peut être remplacé par le vôtre. Créez-le avec un accès root uniquement:


  # mkdir -m 0700 / mnt / yadisk 

Ensuite, on édite le fichier / etc / fstab en écrivant la ligne:

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

Ici, le premier est l'adresse pour se connecter à Yandex.Disk, le deuxième est le point de montage, le troisième est le type de système de fichiers, le quatrième est les options.

  • noauto - désactive le montage du système de fichiers au démarrage du système d'exploitation ou à l'aide de la commande mount -a
  • noexec, nosuid - désactive le lancement de fichiers exécutables et l'installation de suid / sgid bits sur des fichiers et des dossiers.
  • file_mode / dir_mode - définit les autorisations pour les fichiers et les dossiers, respectivement, uniquement pour le propriétaire (racine, si aucun utilisateur ni groupe ne sont spécifiés dans les paramètres uid et gid

Pourquoi ne pas monter la partition automatiquement? Ce n'est nécessaire que pendant la sauvegarde. Et après, il sera a) suspendu, b) consommera une petite quantité de trafic, synchronisant le contenu.

Après avoir enregistré fstab, vous pouvez vérifier si la partition est montée correctement avec la commande mount / mnt / yadisk .

Script de sauvegarde

J'ai quelques sites sur le serveur. Fondamentalement, le contenu change rarement et vous pouvez utiliser la méthode de copie complète.

À ces fins, a écrit un petit script simple sur bash.

  #! / bin / bash
 # Initialise les variables
 BACKUPDIR = "/ var / tmp" # Répertoire pour les sauvegardes
 TMPDIR = "backup" # Dossier temporaire pour les copies de fichiers, qui est ensuite archivé
 YADISK = "/ mnt / yadisk" # Point de montage
 SQLDIR = "sqldb" # Dossier pour bases de données
 SQLUSER = "root"
 SQLPASS = "12345"
 TIMEY = $ (date +% F_% H% M% S) # Heure au format ANNÉE-MOIS-JOUR_heure d'une minute à la seconde
 # Nous vérifions la disponibilité d'un dossier pour les bases de données. S'il n'existe pas, tous les dossiers nécessaires sont créés.
 si [!  -d "$ BACKUPDIR / $ TMPDIR / $ SQLDIR"];  alors
 mkdir -p -m 0700 "$ BACKUPDIR / $ TMPDIR / $ SQLDIR"
 fi
 # Connect Yandex.Disk
 monter "$ YADISK"
 # Créer des sauvegardes
 N ° 1 base de données
 cd "$ BACKUPDIR / $ TMPDIR / $ SQLDIR"
 pour la base de données dans `mysql -s -r -e 'SHOW DATABASES' |  grep -v Base de données |  grep -v information_schema |  grep -v performance_schema |  grep -v mysql`;
 do mysqldump "$ database"> "$ database" .sql; done
 # 2 Tous les utilisateurs
 cd /
 tar -cf "$ BACKUPDIR" / "$ TMPDIR" /home.tar home
 # 3 paramètres système
 tar -cf "$ BACKUPDIR" / "$ TMPDIR" /system.tar etc. var / spool / cron / crontabs
 # Nous emballons dans bzip-archive
 cd "$ BACKUPDIR"
 tar -cjf backup - "$ TIMEY" .tbz2 "$ TMPDIR"
 sauvegarde mv - "$ TIMEY" .tbz2 "$ YADISK"
 # Supprimer les fichiers temporaires
 rm -r "$ TMPDIR"
 # Supprimer les anciennes archives
 trouver le type "$ YADISK" f -mtime +4 |  xargs rm -f
 # Désactiver Yandex.Disk
 umount "$ YADISK"
 sortie 1 

Il fonctionne deux fois par jour sur la couronne. Crée des copies des bases de données, de certains paramètres système, ainsi que des données utilisateur (sites). En partie, il s'agit d'un script permettant de copier uniquement les bases de données publiées précédemment.

Parfois, une erreur peut apparaître dans syslog:

  mount.davfs: les fichiers ouverts dépassent la taille de cache maximale de 50 MiBytes 

Dans ce cas, nous montons la section Yandex.Disk et voyons ce qui se trouve dans le dossier lost + found. Nous le nettoyons. Ensuite, nous nettoyons le contenu du dossier / var / cache / davfs2 /.



Comment évaluez-vous l'article?
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (Pas encore de notes)
Chargement ...

Ajouter un commentaire

Votre email ne sera pas publié.