Вот пример скрипта на 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 &
Руководитель в Волсофт
Разработка и продвижение сайтов.
Поставка лицензионного программного обеспечения.
Поставка лицензионного программного обеспечения.
Блинов Роман недавно публиковал (посмотреть все)
- Мониторинг сайта с оповещением в Telegram - 17.01.2025
- Выгрузить лиды из Битрикс24 в Google таблицы - 23.12.2024
- PhpRedis: Not loaded - 06.03.2024