forked from ZwiiCMS-Team/ZwiiCampus
Update rolling backup
This commit is contained in:
parent
caa348a571
commit
c8abde012c
@ -11,38 +11,38 @@ La clé doit être fournie en tant que paramètre "key" dans l'URL et correspond
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// Vérification de la clé
|
// Vérification de la clé
|
||||||
if (isset($_GET['key'])) {
|
if (isset ($_GET['key'])) {
|
||||||
$key = $_GET['key'];
|
$key = $_GET['key'];
|
||||||
$storedKey = file_get_contents('data.key');
|
$storedKey = file_get_contents('data.key');
|
||||||
if ($key !== $storedKey) {
|
if ($key !== $storedKey) {
|
||||||
die("Clé invalide !");
|
http_response_code(401);
|
||||||
|
exit();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
die("Clé manquante !");
|
// Création du ZIP
|
||||||
}
|
$filter = ['backup', 'tmp'];
|
||||||
|
$fileName = date('Y-m-d-H-i-s', time()) . '-rolling-backup.zip';
|
||||||
// Création du ZIP
|
$zip = new ZipArchive();
|
||||||
$filter = ['backup', 'tmp'];
|
$zip->open('../../../../site/backup/' . $fileName, ZipArchive::CREATE | ZipArchive::OVERWRITE);
|
||||||
$fileName = date('Y-m-d-H-i-s', time()) . '-rolling-backup.zip';
|
$directory = '../../../../site';
|
||||||
$zip = new ZipArchive();
|
$files = new RecursiveIteratorIterator(
|
||||||
$zip->open('../../../../site/backup/' . $fileName, ZipArchive::CREATE | ZipArchive::OVERWRITE);
|
new RecursiveCallbackFilterIterator(
|
||||||
$directory = '../../../../site';
|
new RecursiveDirectoryIterator(
|
||||||
$files = new RecursiveIteratorIterator(
|
$directory,
|
||||||
new RecursiveCallbackFilterIterator(
|
RecursiveDirectoryIterator::SKIP_DOTS
|
||||||
new RecursiveDirectoryIterator(
|
),
|
||||||
$directory,
|
function ($fileInfo, $key, $iterator) use ($filter) {
|
||||||
RecursiveDirectoryIterator::SKIP_DOTS
|
return $fileInfo->isFile() || !in_array($fileInfo->getBaseName(), $filter);
|
||||||
),
|
}
|
||||||
function ($fileInfo, $key, $iterator) use ($filter) {
|
)
|
||||||
return $fileInfo->isFile() || !in_array($fileInfo->getBaseName(), $filter);
|
);
|
||||||
|
foreach ($files as $name => $file) {
|
||||||
|
if (!$file->isDir()) {
|
||||||
|
$filePath = $file->getRealPath();
|
||||||
|
$relativePath = substr($filePath, strlen(realpath($directory)) + 1);
|
||||||
|
$zip->addFile($filePath, $relativePath);
|
||||||
}
|
}
|
||||||
)
|
|
||||||
);
|
|
||||||
foreach ($files as $name => $file) {
|
|
||||||
if (!$file->isDir()) {
|
|
||||||
$filePath = $file->getRealPath();
|
|
||||||
$relativePath = substr($filePath, strlen(realpath($directory)) + 1);
|
|
||||||
$zip->addFile($filePath, $relativePath);
|
|
||||||
}
|
}
|
||||||
}
|
$zip->close();
|
||||||
$zip->close();
|
http_response_code(201);
|
||||||
|
}
|
@ -11,7 +11,7 @@ Le script vérifie également la présence et la validité d'une clé spécifiqu
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// Vérification de la clé
|
// Vérification de la clé
|
||||||
if (isset($_GET['key'])) {
|
if (isset ($_GET['key'])) {
|
||||||
// Récupération de la clé fournie en GET
|
// Récupération de la clé fournie en GET
|
||||||
$key = $_GET['key'];
|
$key = $_GET['key'];
|
||||||
|
|
||||||
@ -20,31 +20,31 @@ if (isset($_GET['key'])) {
|
|||||||
|
|
||||||
// Vérification de correspondance entre les clés
|
// Vérification de correspondance entre les clés
|
||||||
if ($key !== $storedKey) {
|
if ($key !== $storedKey) {
|
||||||
die("Clé invalide !");
|
http_response_code(401);
|
||||||
|
exit();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Si la clé est manquante, affiche un message d'erreur et arrête l'exécution du script
|
|
||||||
die("Clé manquante !");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Récupère le nombre de jours à partir de la variable GET 'days'
|
// Récupère le nombre de jours à partir de la variable GET 'days'
|
||||||
$days = isset($_GET['days']) ? (int)$_GET['days'] : 1; // Par défaut à 1 si non spécifié
|
$days = isset ($_GET['days']) ? (int) $_GET['days'] : 1; // Par défaut à 1 si non spécifié
|
||||||
|
|
||||||
// Chemin vers le répertoire contenant les fichiers
|
// Chemin vers le répertoire contenant les fichiers
|
||||||
$directory = '../../../../site/backup/'; // Remplacez par le chemin réel
|
$directory = '../../../../site/backup/'; // Remplacez par le chemin réel
|
||||||
|
|
||||||
// Convertit le nombre de jours en secondes
|
// Convertit le nombre de jours en secondes
|
||||||
$timeLimit = strtotime("-$days days");
|
$timeLimit = strtotime("-$days days");
|
||||||
|
|
||||||
// Crée un nouvel objet DirectoryIterator
|
// Crée un nouvel objet DirectoryIterator
|
||||||
foreach (new DirectoryIterator($directory) as $file) {
|
foreach (new DirectoryIterator($directory) as $file) {
|
||||||
// Vérifie si l'élément courant est un fichier et a l'extension 'tar.gz'
|
// Vérifie si l'élément courant est un fichier et a l'extension 'tar.gz'
|
||||||
if ($file->isFile() && $file->getExtension() === 'tar.gz') {
|
if ($file->isFile() && $file->getExtension() === 'tar.gz') {
|
||||||
// Vérifie si le fichier a été modifié avant la limite de temps
|
// Vérifie si le fichier a été modifié avant la limite de temps
|
||||||
if ($file->getMTime() < $timeLimit) {
|
if ($file->getMTime() < $timeLimit) {
|
||||||
// Supprime le fichier
|
// Supprime le fichier
|
||||||
unlink($file->getRealPath());
|
unlink($file->getRealPath());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
// Si la clé est manquante, affiche un message d'erreur et arrête l'exécution du script
|
||||||
?>
|
http_response_code(201);
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user