Для того, чтобы убедиться, что ваш сайт всегда доступен пользователям Интернета, вы должны его анализировать. В этом уроке, я покажу вам, как можно легко создать скрипт, который будет проверять доступность вашего сайта и отправлять письмо на Вашу электронную почту, если это не так.
Предисловие
Может быть, я констатирую очевидное, но скрипт PHP должен быть на другом сервере, чем тот, который Вы используете для своего сайта. Если скрипт размещается на том же сервере, что и ваш сайт, то он становится бесполезным:
1. Создание cкрипта PHP
Возьмите свой любимый текстовый редактор и создайте файл с именем monitor.php. Скрипт очень прост: нам нужны только две функции: одна для проверки доступности сайта, а другая – оповещения на электронную почту.
Вставьте следующий код в файл monitor.php:
function check($host, $find) {
$fp = fsockopen($host, 80, $errno, $errstr, 10);
if (!$fp) {
echo "$errstr ($errno)\n";
} else {
$header = "GET / HTTP/1.1\r\n";
$header .= "Host: $host\r\n";
$header .= "Connection: close\r\n\r\n";
fputs($fp, $header);
while (!feof($fp)) {
$str .= fgets($fp, 1024);
}
fclose($fp);
return (strpos($str, $find) !== false);
}
}
function alert($host) {
mail('youremail@gmail.com', 'Monitoring', $host.' down');
}
$host = 'rusellned.ru';
$find = 'Скрипт анализа сайта на php (Вторая часть)';
if (!check($host, $find)) alert($host);
Первую функцию, мы создали в check(). Она принимает два параметра: первый — сервер, который будет проверять наличие Вашего сайта в поисковых запросах. Второй параметр ищет заданный текст на веб-странице. Второй параметр является дополнением к безопасности: Проверяя заданное слово, содержащейся на странице сайта, мы убеждаемся в том, что контент на сайте не был изменен, например, после взлома.
Если сервер недоступен, или если текст, заданный в поиске, не найден – используем функцию alert(), которая будет отправлять отчет об изменениях на вашу электронную почту.
Сохраните файл monitor.php и загрузите его на свой сервер, где осуществляете анализ сайта.
2. Определение задания
Нам нужно ввести http://mymonitoringserver.com/monitor.php в веб-браузер и проверить наш веб-сайт, однако после этого наш скрипт будет почти бесполезным.
Но решить такую проблему можно легко. Нужно создать хрон задачу с указанием серверу выполнять monitor.php каждый час. Откройте SSH консоль и введите следующую команду:
0 * * * * /usr/local/bin/php -q /htdocs/www/monitor.php
Если ваши скрипты не имеют исполняемый разрешений, 644, то как часть командной хрон строки, вы должны указать PHP интерпретатор и передать ему имя файла скрипта PHP (включая полный путь к скрипту из вашего домашнего каталога), который вы хотите выполнить.
Источник: www.catswhocode.com



