pathway mtu discovery bash script
I wrote pmtud.sh this weekend to get the MTU of a link (or tunnel) quickly, reliably, and without sending a ton of pings. It can do so in about 11 pings per target.
I had fun writing the entire thing in sh, tried making it "POSIX-compliant," but probably failed somewhere since POSIX isn't worded well. The script only needs dig and ping and uses shell built-ins for everything else. It performs a recursive binary search on the MTU search domain and asynchronously queues pings for later.
https://gist.github.com/bneils/8f337bedebffbe3c1bf2c59def7029d2Open linkView original on programming.dev
3 replies
Some stylistic notes
head -1syntax is obsolete in POSIX, replaced byhead -n 1.for filename in $(ls)is inefficient and will break on whitespace. You can use shell globbing for this instead, e.g.,for filename in *./tmp/ dir, I believe it will remove/tmpanddir)Saved my bacon with this comment. Fixed a ton of (seemingly) innocuous errors.
100% use shellcheck! Saves so much time. Even better: https://github.com/bash-lsp/bash-language-server