prepare( 'INSERT INTO backup_log (created_at, admin_username, label, note, size_bytes_reported) VALUES (NOW(), ?, ?, ?, ?)' ); $stmt->execute([current_admin_username(), $label, $note, $sizeBytes]); $feedback = 'Sauvegarde enregistree dans le journal.'; } catch (Throwable $e) { error_log('[backup] log_backup: ' . $e->getMessage()); $feedback = 'Une erreur est survenue lors de l\'enregistrement.'; $feedbackType = 'error'; } } } } } $history = []; try { $history = $db->query( 'SELECT id, created_at, admin_username, label, note, size_bytes_reported FROM backup_log ORDER BY created_at DESC LIMIT 50' )->fetchAll(PDO::FETCH_ASSOC); } catch (Throwable $e) { error_log('[backup] history query: ' . $e->getMessage()); $feedback = 'La table backup_log est introuvable ou inaccessible. Consultez les journaux du serveur.'; $feedbackType = 'error'; } $user = current_admin_username(); $today = date('Ymd_His'); $dumpCommand = "mysqldump --defaults-extra-file=/etc/netmonster/.my.cnf --single-transaction --routines --triggers netmonster | gzip > /var/backups/netmonster/netmonster_{$today}.sql.gz"; $restoreCommand = "gunzip -c /var/backups/netmonster/netmonster_{$today}.sql.gz | mysql --defaults-extra-file=/etc/netmonster/.my.cnf netmonster"; ?> Sauvegardes — NetMonster Admin

Sauvegardes de la base

Cette page n'execute aucune commande sur le serveur. Elle fournit une commande prete a l'emploi et journalise les sauvegardes realisees manuellement ou par cron.

Commande de sauvegarde recommandee

A executer sur le serveur, avec un fichier .my.cnf contenant les identifiants (jamais dans ce fichier PHP ni dans un depot Git) :

Commande de restauration

Recommandations :

Journaliser une sauvegarde effectuee

Historique des sauvegardes journalisees

Date Utilisateur Libelle Taille Note
Aucune sauvegarde journalisee.