
Вот что интересного накопал об использовании утилиты Curl. Проверка скорости сайта. Всё сделано руками и с любовью. БыстроТериминал и только.
Делаем файл sitespeed.curl, с описанием формата вывода информации о замерах скорости, буквально можно выполнить такую команду целиком:
echo '
\nTest response time for:\t%{url_effective}\n\n
Lookup Time:\t\t\t%{time_namelookup}\n
Connect Time:\t\t\t%{time_connect}\n
AppCon Time:\t\t\t%{time_appconnect}\n
Redirect Time:\t\t\t%{time_redirect}\n
Pre-transfer Time:\t\t%{time_pretransfer}\n
Start-transfer Time:\t\t%{time_starttransfer}\n\n
Total Time:\t\t\t%{time_total}\n' | tee sitespeed.curl
Для справки, что значит time_pretransfer?
time_namelookup
: длительность просмотра DNS (перевод имени домена в IP-адрес).time_connect
: длительность рукопожатия TCP (выполненного как при HTTP, так и при HTTPS-запросах).time_appconnect
: длительность рукопожатия SSL (только для HTTPS).time_redirect
: длительность перенаправления. Значение равно 0, если перенаправления не было. В cURL для активации перенаправления требуется флаг-L
.time_pretransfer
: по сути, это псевдоним дляtime_appconnect
либоtime_connect
(в зависимости от HTTP или HTTPS). Он пригождается только в качестве указателя на то, когда начался конкретный запрос к серверу.time_starttransfer
: обозначает готовность сервера к передаче байтов. То же, что и TTFB (Time To First Byte). Он включает в себяtime_pretransfer
. Чтобы получить продолжительность этой фазы, нужно просто вычестьtime_pretransfer
изtime_starttransfer
.time_total
: общая продолжительность всего вызова cURL. Для получения времени передачи данных (их скачивания) нужно вычислитьtime_total
—time_starttransfer
.
И так, продолжаем.
Уже можно протестировать командой в терминале:
curl -s -w "@sitespeed.curl" -o /dev/null morikoff.ru
Но мы сделаем маленький скрипт, которому будем передавать одно значение – это адрес сайта, как с указанием протокола, так и без (по скорости отклика имеет значение).
Создаём файл:
nano sitespeed.sh
Вставляем в файл следующий код:
############################################
#!/bin/bash
############################################
curl -s -w "@sitespeed.curl" -o /dev/null $1
Дайте скрипту право быть запущенным на выполнение.
chmod +x sitespeed.sh
Пожалуй всё.
Запускаем:
./sitespeed.sh morikoff.ru