Проблема устранена. --- В настоящее время у нас возникла проблема с подключением в части...
Скрипт для резервного копирования из cpanel
В Cpanel с правами пользователя невозможно настроить создание резервных копий по расписанию. Полный бэкап делается только вручную.
Обойти это ограничение можно с помощью следующего скрипта, который инициирует создание полного бэкапа и закачивание его на удаленный FTP-сервер. Скрипт написан на PHP и его можно запускать по расписанию.
<?php
// Переменная для имени пользователя cpanel (CPANEL_USERNAME) и пароля (PASSWORD)
$auth = base64_encode("CPANEL_USERNAME:PASSWORD");
// Домен или ip-адрес сервера с установленной cpanel
$domain = "cpaneldomain.tld";
// Тема оформления должна совпадать с темой, установленной в cpanel по умолчанию
$theme = "x3";
// использовать или нет защищенное соединение
$secure = false;
// Использовать или нет удаленный FTP-сервер
$ftp = true;
// Домен или ip-адрес удаленного FTP-сервера для бэкапов (в данном случае прописан наш FTP
$ftpserver = "hyperstream.ru";
// Имя пользователя FTP
$ftpusername = "$USER";
// Пароль FTP
$ftppassword = "$PASS";
// Порт FTP
$ftpport = "21";
// Каталог на удаленном FTP, куда нужно положить созданный бэкап
$ftpdirectory = "/backups";
// Выбор порта подключения к cpanel
if ($secure) {
$url = "ssl://" . $domain;
$port = 2083;
} else {
$url = $domain;
$port = 2082;
}
// Соединение с cpanel-сервером
$socket = fsockopen($url, $port);
if (!$socket) {
exit("Failed to open socket connection.");
}
// Формирование ссылки с параметрами
if ($ftp) {
$params = "dest=ftp&server=$ftpserver&user=$ftpusername&pass=$ftppassword&port=$ftpport&rdir=$ftpdirectory&submit=Generate Backup";
} else {
$params = "submit=Generate Backup";
}
// Отправка сформированной ссылки в cpanel
fputs($socket, "POST /frontend/" . $theme . "/backup/dofullbackup.html?" . $params . " HTTP/1.0\r\n");
fputs($socket, "Host: $domain\r\n");
fputs($socket, "Authorization: Basic $auth\r\n");
fputs($socket, "Connection: Close\r\n");
fputs($socket, "\r\n");
// Получение ответа от cpanel
while (!feof($socket)) {
$response = fgets($socket, 4096);
echo $response;
}
// Закрытие соединения
fclose($socket);
?>
Фактически всё, что делает скрипт - эмулирует ручной вход в cpanel и выбор создания полного бэкапа в соответствующем разделе панели.
Как использовать по расписанию:
Создайте в своем домашнем каталоге скрипт /home/user/public_html/cpanel-backup.php с приведенным выше текстом.
Внесите свои логин и пароль, адреса cpanel и FTP.
Сохраните скрипт.
Теперь его можно протестировать путем вызова через WEB: http://mydomain.tld/cpanel-backup.php
Вы должны увидеть стандартный вывод cpanel, но без CSS (страница будет "поломана").
Теперь Вы можете выполнять скрипт по расписанию с помощью команды wget "http://mydomain.tld/cpanel-backup.php" > /dev/null 2>&1
Обратите, пожалуйста, внимание, что в этом варианте скрипт может запросить кто угодно. Потенциально это может стать точкой для DDOS-атаки на ваш сервер\аккаунт.
Для закрытия доступа третьих лиц, можно перенести скрипт выше public_html. После этого понадобится отредактировать cron-задание, так как вызов скрипта через WEB уже будет невозможен. Новая строка будет выглядеть примерно так:
php -f /home/user/cpanel-backup.php > /dev/null 2>&1
где "user" нужно заменить на имя своего пользователя cpanel.