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:
- Что нужно для такого бэкапа? 1 De quoi avez-vous besoin pour une telle sauvegarde?
- Настройка davfs 2 Installation de davfs
- Создание точки монтирования и записи в /etc/fstab 3 Créer un point de montage et une entrée dans / etc / fstab
- Скрипт резервного копирования 4 script de sauvegarde
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 /.
