/* * Ferramenta de Emergência: Limpeza de Espaço (26GB) */ add_action('admin_menu', function() { add_submenu_page('tools.php', 'Limpeza de Espaço', 'Limpeza de Espaço', 'manage_options', 'limpeza-espaco', 'renderizar_limpeza_espaco'); }); function obter_tamanho_pasta_php($dir) { $tamanho = 0; $arquivos = glob(rtrim($dir, '/').'/*', GLOB_NOSORT); if ($arquivos) { foreach ($arquivos as $cada) { $tamanho += is_file($cada) ? filesize($cada) : obter_tamanho_pasta_php($cada); } } return $tamanho; } function formatar_bytes_espaco($bytes) { if ($bytes == 0) return '0 B'; $k = 1024; $sizes = ['B', 'KB', 'MB', 'GB', 'TB']; $i = floor(log($bytes) / log($k)); return round($bytes / pow($k, $i), 2) . ' ' . $sizes[$i]; } function renderizar_limpeza_espaco() { echo '

Inspeção de Emergência (Alvo: 26GB)

'; // Lógica para apagar arquivos soltos if (isset($_POST['apagar_arquivo']) && current_user_can('manage_options')) { $arquivo = sanitize_text_field($_POST['apagar_arquivo']); if (file_exists($arquivo) && is_file($arquivo)) { unlink($arquivo); echo '

Apagado com sucesso: ' . esc_html($arquivo) . '

'; } } // Lógica para apagar pastas inteiras (Staging/Cache) via Shell if (isset($_POST['apagar_pasta']) && current_user_can('manage_options')) { $pasta = sanitize_text_field($_POST['apagar_pasta']); if (file_exists($pasta) && is_dir($pasta)) { shell_exec("rm -rf " . escapeshellarg($pasta)); echo '

Comando de destruição enviado para a pasta: ' . esc_html($pasta) . '

'; } } echo '

Suspeitos Comuns (Arquivos Pesados na Raiz do Servidor):

'; // Busca arquivos de log gigantes ou backups comprimidos $arquivos_raiz = glob(ABSPATH . '*.{zip,tar,gz,log,sql}', GLOB_BRACE); if (file_exists(ABSPATH . 'error_log')) { $arquivos_raiz[] = ABSPATH . 'error_log'; } echo ''; if (!empty($arquivos_raiz)) { foreach ($arquivos_raiz as $arq) { if (file_exists($arq) && is_file($arq)) { echo ''; echo ''; echo ''; } } } else { echo ''; } echo '
ArquivoTamanhoAção
' . esc_html(basename($arq)) . '
' . esc_html($arq) . '
' . formatar_bytes_espaco(filesize($arq)) . '
Nenhum arquivo de log ou backup pesado encontrado na raiz.
'; echo '

Mapeamento das Maiores Pastas (Aguarde o carregamento):

'; $pastas_alvo = [ WP_CONTENT_DIR . '/uploads', WP_CONTENT_DIR . '/cache', WP_CONTENT_DIR . '/updraft', WP_CONTENT_DIR . '/plugins', ]; // Caça pastas que tenham "staging" ou "clone" no nome $pastas_raiz = glob(ABSPATH . '*', GLOB_ONLYDIR); if ($pastas_raiz) { foreach($pastas_raiz as $p) { if (stripos($p, 'staging') !== false || stripos($p, 'clone') !== false) { $pastas_alvo[] = $p; } } } echo ''; foreach (array_unique($pastas_alvo) as $pasta) { if (file_exists($pasta)) { // Tenta medir rápido via shell, se o servidor bloquear, faz na unha pelo PHP $tamanho_shell = shell_exec("du -sb " . escapeshellarg($pasta) . " 2>/dev/null | cut -f1"); if (is_numeric(trim($tamanho_shell))) { $tamanho_formatado = formatar_bytes_espaco((int)trim($tamanho_shell)); } else { $tamanho_formatado = formatar_bytes_espaco(obter_tamanho_pasta_php($pasta)); } echo ''; echo ''; // Trava de segurança: SÓ permite apagar via botão pastas descartáveis (staging, cache, updraft) if (preg_match('/(staging|cache|updraft|clone)/i', basename($pasta))) { echo ''; } else { echo ''; } echo ''; } } echo '
Caminho da PastaTamanho OcupadoAção Rápida
' . esc_html(basename($pasta)) . '
' . esc_html($pasta) . '
' . esc_html($tamanho_formatado) . '
Protegida do sistema
'; echo '
'; }/* * Ferramenta de Emergência: Limpeza de Espaço (26GB) */ add_action('admin_menu', function() { add_submenu_page('tools.php', 'Limpeza de Espaço', 'Limpeza de Espaço', 'manage_options', 'limpeza-espaco', 'renderizar_limpeza_espaco'); }); function obter_tamanho_pasta_php($dir) { $tamanho = 0; $arquivos = glob(rtrim($dir, '/').'/*', GLOB_NOSORT); if ($arquivos) { foreach ($arquivos as $cada) { $tamanho += is_file($cada) ? filesize($cada) : obter_tamanho_pasta_php($cada); } } return $tamanho; } function formatar_bytes_espaco($bytes) { if ($bytes == 0) return '0 B'; $k = 1024; $sizes = ['B', 'KB', 'MB', 'GB', 'TB']; $i = floor(log($bytes) / log($k)); return round($bytes / pow($k, $i), 2) . ' ' . $sizes[$i]; } function renderizar_limpeza_espaco() { echo '

Inspeção de Emergência (Alvo: 26GB)

'; // Lógica para apagar arquivos soltos if (isset($_POST['apagar_arquivo']) && current_user_can('manage_options')) { $arquivo = sanitize_text_field($_POST['apagar_arquivo']); if (file_exists($arquivo) && is_file($arquivo)) { unlink($arquivo); echo '

Apagado com sucesso: ' . esc_html($arquivo) . '

'; } } // Lógica para apagar pastas inteiras (Staging/Cache) via Shell if (isset($_POST['apagar_pasta']) && current_user_can('manage_options')) { $pasta = sanitize_text_field($_POST['apagar_pasta']); if (file_exists($pasta) && is_dir($pasta)) { shell_exec("rm -rf " . escapeshellarg($pasta)); echo '

Comando de destruição enviado para a pasta: ' . esc_html($pasta) . '

'; } } echo '

Suspeitos Comuns (Arquivos Pesados na Raiz do Servidor):

'; // Busca arquivos de log gigantes ou backups comprimidos $arquivos_raiz = glob(ABSPATH . '*.{zip,tar,gz,log,sql}', GLOB_BRACE); if (file_exists(ABSPATH . 'error_log')) { $arquivos_raiz[] = ABSPATH . 'error_log'; } echo ''; if (!empty($arquivos_raiz)) { foreach ($arquivos_raiz as $arq) { if (file_exists($arq) && is_file($arq)) { echo ''; echo ''; echo ''; } } } else { echo ''; } echo '
ArquivoTamanhoAção
' . esc_html(basename($arq)) . '
' . esc_html($arq) . '
' . formatar_bytes_espaco(filesize($arq)) . '
Nenhum arquivo de log ou backup pesado encontrado na raiz.
'; echo '

Mapeamento das Maiores Pastas (Aguarde o carregamento):

'; $pastas_alvo = [ WP_CONTENT_DIR . '/uploads', WP_CONTENT_DIR . '/cache', WP_CONTENT_DIR . '/updraft', WP_CONTENT_DIR . '/plugins', ]; // Caça pastas que tenham "staging" ou "clone" no nome $pastas_raiz = glob(ABSPATH . '*', GLOB_ONLYDIR); if ($pastas_raiz) { foreach($pastas_raiz as $p) { if (stripos($p, 'staging') !== false || stripos($p, 'clone') !== false) { $pastas_alvo[] = $p; } } } echo ''; foreach (array_unique($pastas_alvo) as $pasta) { if (file_exists($pasta)) { // Tenta medir rápido via shell, se o servidor bloquear, faz na unha pelo PHP $tamanho_shell = shell_exec("du -sb " . escapeshellarg($pasta) . " 2>/dev/null | cut -f1"); if (is_numeric(trim($tamanho_shell))) { $tamanho_formatado = formatar_bytes_espaco((int)trim($tamanho_shell)); } else { $tamanho_formatado = formatar_bytes_espaco(obter_tamanho_pasta_php($pasta)); } echo ''; echo ''; // Trava de segurança: SÓ permite apagar via botão pastas descartáveis (staging, cache, updraft) if (preg_match('/(staging|cache|updraft|clone)/i', basename($pasta))) { echo ''; } else { echo ''; } echo ''; } } echo '
Caminho da PastaTamanho OcupadoAção Rápida
' . esc_html(basename($pasta)) . '
' . esc_html($pasta) . '
' . esc_html($tamanho_formatado) . '
Protegida do sistema
'; echo '
'; } https://soropositivo.org/