Skip to content

Instantly share code, notes, and snippets.

@mostlygeek
Created January 28, 2016 18:13
Show Gist options
  • Save mostlygeek/f5f3dd59b7b631b64a98 to your computer and use it in GitHub Desktop.
Save mostlygeek/f5f3dd59b7b631b64a98 to your computer and use it in GitHub Desktop.
Test CDN before migrating the actual DNS
#!/bin/sh
#
# <3 curl.
#
# Pages to check on MDN to get resource URIs
URLS='
https://developer.mozilla.org/en-US/
https://developer.mozilla.org/en-US/docs/Web/HTML
https://developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements
https://developer.mozilla.org/en-US/docs/Web/API
https://developer.mozilla.org/en-US/docs/Web/API/IDBIndexSync
https://developer.mozilla.org/en-US/Apps
'
for URL in $URLS
do
# grab an IP address from the CDN using the R53 Alias
# this will be given to curl as a DNS override
IP=$(dig mdn-cdn.prod.mozaws.net +short | head -1)
echo "Checking $URL @ cdn $IP"
# grep out URIs that point at the CDN and check them
for RESOURCE in $(curl -s --resolve developer.cdn.mozilla.net:443:$IP "$URL" | \
grep developer.cdn.mozilla.net | \
grep -v noscript | grep -oE "https://[^\"']*\.(css|png|js)")
do
printf " - check ($IP) => $RESOURCE: "
curl -sI --resolve developer.cdn.mozilla.net:443:$IP "$RESOURCE" | grep "HTTP/1.1 200 OK"
done
done
@jezdez
Copy link

jezdez commented Jan 28, 2016

Checking https://developer.mozilla.org/en-US/ @ cdn 54.240.184.42
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/styles/mdn.b6e66f90df84.css: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/styles/home.67d789688cae.css: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/opengraph-logo.dc4e08e2f6af.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/opengraph-logo.dc4e08e2f6af.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/favicon144.a6e4162070f4.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/favicon114.0e9fabd44f85.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/favicon72.8ff9d87c82a0.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/favicon57.a2490b9a2d76.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/favicon32.e02854fdcf73.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/js/html5shiv.3948ccddab6f.js: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/styles/editor-content.75214a866141.css: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/styles/wiki-compat-tables.f3a3bfce97a1.css: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/js/syntax-prism.7a66ddfa68bf.js: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/js/wiki-compat-tables.14ce5dcb2c3d.js: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/js/selectivizr.091e18cf669b.js: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/js/main.a52455fd6782.js: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/jsi18n/en-us/javascript.4fef8f9a3076.js: HTTP/1.1 200 OK
Checking https://developer.mozilla.org/en-US/docs/Web/HTML @ cdn 54.240.184.42
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/styles/mdn.b6e66f90df84.css: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/styles/wiki.7abcbb903e10.css: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/opengraph-logo.dc4e08e2f6af.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/opengraph-logo.dc4e08e2f6af.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/favicon144.a6e4162070f4.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/favicon114.0e9fabd44f85.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/favicon72.8ff9d87c82a0.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/favicon57.a2490b9a2d76.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/favicon32.e02854fdcf73.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/js/html5shiv.3948ccddab6f.js: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/styles/editor-content.75214a866141.css: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/styles/wiki-compat-tables.f3a3bfce97a1.css: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/js/syntax-prism.7a66ddfa68bf.js: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/js/wiki-compat-tables.14ce5dcb2c3d.js: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/js/selectivizr.091e18cf669b.js: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/js/main.a52455fd6782.js: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/jsi18n/en-us/javascript.4fef8f9a3076.js: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/js/wiki.44d3bc8f4783.js: HTTP/1.1 200 OK
Checking https://developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements @ cdn 54.240.184.42
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/styles/mdn.b6e66f90df84.css: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/styles/wiki.7abcbb903e10.css: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/opengraph-logo.dc4e08e2f6af.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/opengraph-logo.dc4e08e2f6af.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/favicon144.a6e4162070f4.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/favicon114.0e9fabd44f85.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/favicon72.8ff9d87c82a0.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/favicon57.a2490b9a2d76.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/favicon32.e02854fdcf73.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/js/html5shiv.3948ccddab6f.js: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/styles/editor-content.75214a866141.css: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/styles/wiki-compat-tables.f3a3bfce97a1.css: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/js/syntax-prism.7a66ddfa68bf.js: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/js/wiki-compat-tables.14ce5dcb2c3d.js: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/js/selectivizr.091e18cf669b.js: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/js/main.a52455fd6782.js: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/jsi18n/en-us/javascript.4fef8f9a3076.js: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/js/wiki.44d3bc8f4783.js: HTTP/1.1 200 OK
Checking https://developer.mozilla.org/en-US/docs/Web/API @ cdn 54.240.184.42
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/styles/mdn.b6e66f90df84.css: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/styles/wiki.7abcbb903e10.css: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/opengraph-logo.dc4e08e2f6af.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/opengraph-logo.dc4e08e2f6af.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/favicon144.a6e4162070f4.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/favicon114.0e9fabd44f85.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/favicon72.8ff9d87c82a0.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/favicon57.a2490b9a2d76.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/favicon32.e02854fdcf73.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/js/html5shiv.3948ccddab6f.js: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/styles/editor-content.75214a866141.css: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/styles/wiki-compat-tables.f3a3bfce97a1.css: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/js/syntax-prism.7a66ddfa68bf.js: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/js/wiki-compat-tables.14ce5dcb2c3d.js: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/js/selectivizr.091e18cf669b.js: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/js/main.a52455fd6782.js: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/jsi18n/en-us/javascript.4fef8f9a3076.js: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/js/wiki.44d3bc8f4783.js: HTTP/1.1 200 OK
Checking https://developer.mozilla.org/en-US/docs/Web/API/IDBIndexSync @ cdn 54.240.184.42
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/styles/mdn.b6e66f90df84.css: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/styles/wiki.7abcbb903e10.css: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/opengraph-logo.dc4e08e2f6af.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/opengraph-logo.dc4e08e2f6af.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/favicon144.a6e4162070f4.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/favicon114.0e9fabd44f85.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/favicon72.8ff9d87c82a0.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/favicon57.a2490b9a2d76.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/favicon32.e02854fdcf73.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/js/html5shiv.3948ccddab6f.js: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/styles/editor-content.75214a866141.css: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/styles/wiki-compat-tables.f3a3bfce97a1.css: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/js/syntax-prism.7a66ddfa68bf.js: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/js/wiki-compat-tables.14ce5dcb2c3d.js: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/js/selectivizr.091e18cf669b.js: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/js/main.a52455fd6782.js: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/jsi18n/en-us/javascript.4fef8f9a3076.js: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/js/wiki.44d3bc8f4783.js: HTTP/1.1 200 OK
Checking https://developer.mozilla.org/en-US/Apps @ cdn 54.240.184.42
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/styles/mdn.b6e66f90df84.css: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/styles/wiki.7abcbb903e10.css: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/opengraph-logo.dc4e08e2f6af.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/opengraph-logo.dc4e08e2f6af.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/favicon144.a6e4162070f4.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/favicon114.0e9fabd44f85.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/favicon72.8ff9d87c82a0.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/favicon57.a2490b9a2d76.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/img/favicon32.e02854fdcf73.png: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/js/html5shiv.3948ccddab6f.js: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/styles/editor-content.75214a866141.css: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/styles/wiki-compat-tables.f3a3bfce97a1.css: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/js/syntax-prism.7a66ddfa68bf.js: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/js/wiki-compat-tables.14ce5dcb2c3d.js: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/js/selectivizr.091e18cf669b.js: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/js/main.a52455fd6782.js: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/jsi18n/en-us/javascript.4fef8f9a3076.js: HTTP/1.1 200 OK
  - check (54.240.184.42) => https://developer.cdn.mozilla.net/static/build/js/wiki.44d3bc8f4783.js: HTTP/1.1 200 OK

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment