Вот пример скрипта на PHP, который проверяет доступность сайта каждые 5 минут и отправляет сообщение в Telegram, если сайт недоступен. Для отправки сообщения в Telegram используется его Bot API.
- Создайте Telegram-бота через BotFather и получите токен.
- Найдите ваш Telegram chat ID (например, с помощью @userinfobot).
- Создайте файл PHP в нужной папке:
<?php
// Конфигурация
$siteUrl = "https://test.ru"; // URL сайта для проверки
$botToken = "xxxxxxxxxxxxxxxxxxxxxxx"; // Токен Telegram-бота
$chatId = "-00000000000000"; // Ваш Telegram Chat ID
$checkInterval = 300; // Интервал проверки в секундах (5 минут)
// Функция для проверки доступности сайта
function checkSiteAvailability($url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Возвращает ответ как строку
curl_setopt($ch, CURLOPT_NOBODY, true); // Не загружает тело ответа
curl_setopt($ch, CURLOPT_TIMEOUT, 10); // Таймаут на запрос 10 секунд
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // Следует за редиректами
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); // Проверяет SSL-сертификаты
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); // Проверяет хост SSL
curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); // Получает HTTP-код ответа
$curlError = curl_errno($ch); // Проверяет ошибки cURL
curl_close($ch);
// Если ошибки cURL нет и код ответа HTTP в диапазоне 200–399, то сайт доступен
return ($curlError === 0 && $httpCode >= 200 && $httpCode < 400);
}
// Функция для отправки сообщения в Telegram
function sendTelegramMessage($botToken, $chatId, $message) {
$url = "https://api.telegram.org/bot{$botToken}/sendMessage";
$postData = [
'chat_id' => $chatId,
'text' => $message
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postData));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);
curl_close($ch);
}
// Основной цикл проверки
while (true) {
if (!checkSiteAvailability($siteUrl)) {
$message = "❗️Сайт {$siteUrl} недоступен! Проверьте работу сервера.";
sendTelegramMessage($botToken, $chatId, $message);
} else {
echo "Сайт {$siteUrl} доступен.\n";
}
sleep($checkInterval); // Ждем указанный интервал перед следующей проверкой
}
Пошаговые действия:
- Настройка сервера:
- Разместите скрипт на сервере, поддерживающем PHP.
- Убедитесь, что PHP имеет доступ к
curl.
- Запуск в фоне:
- Используйте
nohupилиscreen, чтобы запустить скрипт в фоне. Например:
- Используйте
nohup php /path/to/script.php > /dev/null 2>&1 &
Руководитель в Волсофт
Разработка и продвижение сайтов.
Поставка лицензионного программного обеспечения.
Поставка лицензионного программного обеспечения.
Блинов Роман недавно публиковал (посмотреть все)
- Открыть всплывающее Popup-окно Elementor по текстовой ссылке - 06.03.2025
- Мониторинг сайта с оповещением в Telegram - 17.01.2025
- Выгрузить лиды из Битрикс24 в Google таблицы - 23.12.2024