Database
 sql >> Base de données >  >> RDS >> Database

Sauvegardes de la base de données uniquement dans WHM

Certains clients nous ont demandé si vous pouviez configurer uniquement des sauvegardes de base de données dans WHM. Pour certains, cela semblera étrange, mais certains utilisateurs souhaitent une telle fonctionnalité.

Vous pouvez accéder aux paramètres de sauvegarde WHM via WHM->Sauvegarde->Configuration de sauvegarde . Malheureusement, il n'y a pas d'option pour le moment pour sauvegarder uniquement les bases de données des utilisateurs.

Mise à jour :Depuis le 20 avril 2020, cette demande cPanel est en statut « Discussion ouverte ». Vous pouvez commenter et voter sur le site de demandes de fonctionnalités cPanel

Quelles solutions avez-vous ? Vous pouvez utiliser les commandes bash. Une commande pour sauvegarder toutes les bases de données sur le serveur dans une archive .gz est :

root@www [/backup]# mysqldump --all-databases | gzip > /backup/$(date +%Y-%h-%d)-alldatabases.sql.gz

Cela créera une sauvegarde avec toutes les bases de données MySQL/MariaDB sur le serveur. Le nom du fichier inclura la date actuelle. (par exemple 2018-Sep-25-alldatabases.sql.gz) Vous pouvez modifier la commande selon vos besoins. Vous pouvez également créer une tâche cron pour l'exécuter à des moments précis.

Une autre possibilité consiste à sauvegarder individuellement chaque base de données sur le serveur. Pour cela, créez un nouveau fichier comme backupdbs.sh Le contenu du fichier est :

#!/bin/bash

mysql=/usr/bin/mysql
mysqldump=/usr/bin/mysqldump
date=$(date +%Y-%h-%d)

backupdir="/backup"
mkdir -p $backupdir/$date

databases=`$mysql -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema)"`
for db in $databases; do
echo $db
$mysqldump --opt --databases $db | gzip > "$backupdir/$date/$db.sql.gz"
done

Pour exécuter le script :

root@www [/backup]# perl backupdbs.sh

Comme dans le cas précédent, vous pouvez également ajuster le script selon vos besoins et créer une tâche cron.