J'ai décidé d'abandonner complètement l'utilisation d'ispmanager, car il nécessite beaucoup de ressources et n'est utilisé que pour une chose - la sauvegarde de données. Mais puisque cela peut être fait personnellement, garder le panneau sur le serveur pour dix sites n'a aucun sens.
C'est pourquoi la première tâche consiste à créer des copies de sauvegarde des bases de données mysql. Les bases de données étant de petite taille, la version la plus simple des sauvegardes sera utilisée: créer des archives et les placer dans un dossier de serveur spécifique.
Bien sûr, il serait plus sûr d’envoyer une sauvegarde sftp quelque part sur un autre serveur situé dans un autre centre de données (et dans le pays qui y est déjà), mais comme mes sites changent plusieurs fois par mois, le téléchargement de sauvegardes tous les deux jours n’est pas difficile. par profession. :)
Je n'avais aucune expérience dans l'écriture de scripts en Bash jusqu'à ce moment. Mais ce n’était pas difficile à comprendre, étant donné les nombreux exemples de scripts de sauvegarde mysql sur divers sites concernant l’administration de serveurs.
Le script mysqlbackup.sh lui-même:
#! / bin / bash # Initialise les variables TMPDIR = "sqlfiles" BACKUPDIR = "/ storage" USER = "root" PASS = "xxx" TIMEY = $ (date +% Y-% m-% d) # Vérifier la disponibilité d'un dossier pour sauvegardes si [! -d "$ BACKUPDIR"]; then mkdir -m 0700 "$ BACKUPDIR" fi # Vérifie la présence d’un répertoire temporaire si [! -d "$ BACKUPDIR / $ TMPDIR"]; then mkdir -m 0700 "$ BACKUPDIR / $ TMPDIR" fi # Enregistrer des copies du cd "$ BACKUPDIR / $ TMPDIR" 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 # Créez une archive cd "$ BACKUPDIR" tar -cjf bases de données - "$ TIMEY" .tbz2 "$ TMPDIR" chmod 0600 bases de données - "$ TIMEY" .tbz2 # Supprimez le dossier temporaire rm - r $ TMPDIR echo "Les bases de données sont sauvegardées!" sortie 1
Travailler avec mysql est effectué directement à partir de l'utilisateur root, car il a accès à toutes les bases de données en même temps.
Les bases de données information_schema , mysql , performance_schema sont exclues de la sauvegarde. Toutes les bases de données sont ensuite placées dans une archive bzip2 et stockées dans un dossier spécifique à partir duquel elles peuvent être téléchargées ultérieurement.
La tâche consistant à exécuter le script une fois par jour est écrite dans le planificateur Cron, par exemple à une heure du matin.
00 01 * * * sh ~ / mysqlbackup.sh
Si l'adresse électronique correcte est définie dans les paramètres de la couronne, un rapport sera envoyé au bureau de poste, dans lequel les bases de données enregistrées seront répertoriées.
PS Vous pouvez également créer des sauvegardes et plusieurs fois par jour. Pour ce faire, vous devez spécifier l'heure de création dans le nom de l'archive, afin que le fichier ne soit pas écrasé.

Quelque chose dans le script n'utilise jamais le mot de passe pour mysql
Oui, j'ai raté le temps. Mais uniquement parce que j'utilise le fichier .my.cnf dans mon dossier racine. Il existe un identifiant et un mot de passe enregistrés dans ce format:
Vous auriez dû ajouter cela à la publication plus tôt. :)
Merci d'avoir découvert my.cnf :)
Mon option de mise en œuvre, qui peut être utile:
https://github.com/wdda/backupper_mysql