Response times with curl
Creating the uptime
Script
Section titled “Creating the uptime Script”First, let’s create a file named uptime
and add the following content:
#!/usr/bin/env bash
format=$(cat <<EOF---------------------------------------------Uptime of $@ is--------------------------------------------- time_namelookup: %{time_namelookup}s time_connect: %{time_connect}s time_appconnect: %{time_appconnect}s time_pretransfer: %{time_pretransfer}s time_redirect: %{time_redirect}s time_starttransfer: %{time_starttransfer}s--------------------------------------------- time_total: %{time_total}sEOF)
curl -w "$format" -o /dev/null -s "$@"
This script defines a format
variable that contains a template for the
output. The curl
command is then used to measure the performance of
the specified URL and display the results in the defined format.
Running the Script
Section titled “Running the Script”chmod +x uptimeuptime https://www.google.com
You should see output similar to the following:
---------------------------------------------Uptime of https://www.google.com is--------------------------------------------- time_namelookup: 0.021137s time_connect: 0.033610s time_appconnect: 0.064180s time_pretransfer: 0.064246s time_redirect: 0.000000s time_starttransfer: 0.134371s--------------------------------------------- time_total: 0.136121s
Explanation of Output:
time_namelookup
: The time it took to resolve the DNS name.time_connect
: The time it took to establish the connection.time_appconnect
: The time it took to complete the SSL/TLS handshake (if applicable).time_pretransfer
: The time from the start until just before the file transfer begins.time_redirect
: The time spent on redirections (if any).time_starttransfer
: The time from the start until the first byte is received.time_total
: The total time for the entire request.
Loading Format from a File
Section titled “Loading Format from a File”Alternatively, you can store the format in a separate file (e.g., format.txt
) and use it with curl
:
curl -w "@format.txt" -o /dev/null -s https://www.google.com
Source: StackOverflow