Files
BE_CPONE/application/controllers/tools/Backup.php
2026-04-27 10:26:26 +07:00

62 lines
1.7 KiB
PHP

<?php
class Backup extends MY_Controller {
var $backup_folder;
function __construct(){
parent::__construct();
$this->backup_folder = "/data-sda/backup-db/";
}
public function list_backup() {
$cpones = glob($this->backup_folder . 'cpone/*');
$cpone_logs = glob($this->backup_folder . 'cpone_log/*');
// Recursive function to scan files
$files = [];
$files["cpone"]= [];
foreach ($cpones as $file) {
if (is_file($file)) {
$files["cpone"][] = [
'name' => basename($file),
'full_path'=> $file,
'last_modified' => date("Y-m-d H:i:s", filemtime($file)),
'size' => $this->formatSize(filesize($file))
];
} else {
echo $file . " not file\n";
}
}
$files["cpone_log"]= [];
foreach ($cpone_logs as $file) {
if (is_file($file)) {
$files["cpone_log"][] = [
'name' => basename($file),
'full_path'=> $file,
'last_modified' => date("Y-m-d H:i:s", filemtime($file)),
'size' => $this->formatSize(filesize($file))
];
}
}
// Sort files by last modified date descending
usort($files["cpone"], function($a, $b) {
return strtotime($b['last_modified']) - strtotime($a['last_modified']);
});
usort($files["cpone_log"], function($a, $b) {
return strtotime($b['last_modified']) - strtotime($a['last_modified']);
});
// Return JSON response
echo json_encode(["status"=>"OK","result"=>$files]);
}
private function formatSize($size) {
$units = ['B', 'KB', 'MB', 'GB', 'TB'];
$i = 0;
while ($size >= 1024 && $i < count($units) - 1) {
$size /= 1024;
$i++;
}
return round($size, 2) . ' ' . $units[$i];
}
}