Sauvegarde des fichiers medias
This commit is contained in:
@@ -142,25 +142,75 @@ if(isset($controller->splitted_url[1]) && $user->rankIsHigher("moderator")) {
|
||||
if(isset($controller->splitted_url[2]) && $controller->splitted_url[2]=='delete' && isset($controller->splitted_url[3])) {
|
||||
unlink($config['abs_root_folder'].'tmp/'.$controller->splitted_url[3]);
|
||||
$output = Array();
|
||||
$backup_file = null;
|
||||
$backup_file = Array();
|
||||
}
|
||||
else {
|
||||
// Nom du fichier de sauvegarde
|
||||
$timestamp = date('Ymd_His');
|
||||
$filename = $timestamp.'_backup.sql';
|
||||
$backup_file = $config['abs_root_folder'].'tmp/'.$filename;
|
||||
$backup_filename[0] = $timestamp.'_backup.sql';
|
||||
$backup_file[0] = $config['abs_root_folder'].'tmp/'.$backup_filename[0];
|
||||
|
||||
// Construction de la commande pg_dump
|
||||
$cmd = 'PGPASSWORD="'.$config['SQL_pass'].'" pg_dump -h '.$config['SQL_host'].' -U '.$config['SQL_user'].' -F c -b -v -f "'.$backup_file.'" '.$config['SQL_db'].' 2>&1';
|
||||
$cmd = 'PGPASSWORD="'.$config['SQL_pass'].'" pg_dump -h '.$config['SQL_host'].' -U '.$config['SQL_user'].' -F c -b -v -f "'.$backup_file[0].'" '.$config['SQL_db'].' 2>&1';
|
||||
|
||||
$output = [];
|
||||
$return_var = 0;
|
||||
exec($cmd, $output, $return_var);
|
||||
}
|
||||
|
||||
$sql_files = glob($config['abs_root_folder'].'tmp/*.sql');
|
||||
$backup_files = glob($config['abs_root_folder'].'tmp/*.sql');
|
||||
|
||||
include ($config['views_folder']."d.admin.sql-dump.html");
|
||||
include ($config['views_folder']."d.admin.backup.html");
|
||||
}
|
||||
else {
|
||||
$notfound = 1;
|
||||
}
|
||||
break;
|
||||
case 'files-backup':
|
||||
if ($user->rankIsHigher("administrator")) {
|
||||
$head['title'] = "Export des fichiers";
|
||||
$output = Array();
|
||||
$backup_file = Array();
|
||||
|
||||
if(isset($controller->splitted_url[2]) && $controller->splitted_url[2]=='delete' && isset($controller->splitted_url[3])) {
|
||||
unlink($config['abs_root_folder'].'tmp/'.$controller->splitted_url[3]);
|
||||
}
|
||||
else {
|
||||
// Nom du fichier de sauvegarde
|
||||
$timestamp = date('Ymd_His');
|
||||
$backup_source[0] = $config['abs_root_folder'].'medias/avatars';
|
||||
$backup_source[1] = $config['abs_root_folder'].'medias/wiki';
|
||||
$backup_filename[0] = $timestamp.'_avatar_files.zip';
|
||||
$backup_filename[1] = $timestamp.'_wiki_files.zip';
|
||||
|
||||
for($i=0;$i<2;$i++) {
|
||||
$backup_file[$i] = $config['abs_root_folder'].'tmp/'.$backup_filename[$i];
|
||||
|
||||
$backup[$i] = new ZipArchive();
|
||||
if ($backup[$i]->open($backup_file[$i], ZipArchive::CREATE | ZipArchive::OVERWRITE) === TRUE) {
|
||||
$files = new RecursiveIteratorIterator(
|
||||
new RecursiveDirectoryIterator($backup_source[$i]),
|
||||
RecursiveIteratorIterator::LEAVES_ONLY
|
||||
);
|
||||
|
||||
foreach ($files as $name => $file) {
|
||||
if (!$file->isDir()) {
|
||||
$filePath = $file->getRealPath();
|
||||
$relativePath = substr($filePath, strlen(realpath($backup_source[$i])) + 1);
|
||||
$backup[$i]->addFile($filePath, $relativePath);
|
||||
}
|
||||
}
|
||||
|
||||
$backup[$i]->close();
|
||||
} else {
|
||||
$output[0] = "Erreur lors de la création de l'archive $backup_filename[$i] avec les avatars de $backup_source[$i]";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$backup_files = glob($config['abs_root_folder'].'tmp/*.zip');
|
||||
|
||||
include ($config['views_folder']."d.admin.backup.html");
|
||||
}
|
||||
else {
|
||||
$notfound = 1;
|
||||
|
||||
@@ -17,18 +17,21 @@
|
||||
?></pre>
|
||||
<br>
|
||||
|
||||
<? if (file_exists($backup_file ?? '')) { ?>
|
||||
<a href='<?=$config['rel_root_folder']?>tmp/<?=$filename?>' target='_blank'><i class="fas fa-file-export"></i> Télécharger le DUMP généré</a>
|
||||
<? } else { ?>
|
||||
Le DUMP n'a pas été généré
|
||||
<? } ?>
|
||||
<? $i=0;
|
||||
foreach($backup_file as $file) {
|
||||
if (file_exists($file ?? '')) { ?>
|
||||
<a href='<?=$config['rel_root_folder']?>tmp/<?=$backup_filename[$i]?>' target='_blank'><i class="fas fa-file-export"></i> Télécharger le fichier "<i><?=$backup_filename[$i]?></i>"</a><br>
|
||||
<? } else { ?>
|
||||
Fichier <?=$file?> non généré
|
||||
<? }
|
||||
$i++;
|
||||
}?>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h4>Archives des anciennes sauvegardes</h4>
|
||||
<ul style="padding: 1em 0 1em 40px;">
|
||||
<? foreach($sql_files as $file) { ?>
|
||||
<li style="padding: 0 0 0.2em 0;"><?=basename($file)?> - <a href='<?=$config['rel_root_folder']?>tmp/<?=basename($file)?>' target='_blank'><i class="fas fa-download"></i> Télécharger</a> - <a href='<?=$config['rel_root_folder']?>admin/sql-backup/delete/<?=basename($file)?>'><i class="fas fa-trash"></i> Effacer</a></li>
|
||||
<? foreach($backup_files as $file) { ?>
|
||||
<li style="padding: 0 0 0.2em 0;"><?=basename($file)?> - <a href='<?=$config['rel_root_folder']?>tmp/<?=basename($file)?>' target='_blank'><i class="fas fa-download"></i> Télécharger</a> - <a href='<?=$config['rel_root_folder']?>admin/<?=$controller->splitted_url[1]?>/delete/<?=basename($file)?>'><i class="fas fa-trash"></i> Effacer</a></li>
|
||||
<? } ?>
|
||||
</ul>
|
||||
</section>
|
||||
@@ -12,7 +12,7 @@
|
||||
<br>
|
||||
<? if($user->rankIsHigher("administrator")) { ?>
|
||||
<a href="<?=$config['rel_root_folder']?>admin/git-pull" class="button"><i class="fas fa-sync-alt"></i> Mettre à jour</a> <small>Met à jour le logiciel depuis le dépôt GIT.</small><br><br>
|
||||
<a href="<?=$config['rel_root_folder']?>admin/sql-backup" class="button"><i class="fas fa-file-export"></i> Sauvegarde SQL</a><small>Génère un dump SQL téléchargeable.</small><br><br>
|
||||
<a href="<?=$config['rel_root_folder']?>admin/sql-backup" class="button"><i class="fas fa-file-export"></i> Sauvegarde SQL</a><a href="<?=$config['rel_root_folder']?>admin/files-backup" class="button"><i class="fas fa-file-export"></i> Archive des médias</a><small>Génère un dump SQL et une archive de fichiers téléchargeable.</small><br><br>
|
||||
<? } ?>
|
||||
<? if($user->rankIsHigher("moderator")) { ?>
|
||||
<a href="<?=$config['rel_root_folder']?>admin/logs" class="button"><i class="fas fa-history"></i> Voir les logs</a> <small>Permet d'accéder aux 200 dernières lignes des logs bruts des actions sur la base de données.</small><br><br>
|
||||
|
||||
Reference in New Issue
Block a user