Skip to content

Instantly share code, notes, and snippets.

@thomseddon
Last active October 21, 2020 08:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save thomseddon/a761a6da014f5a5e58459134973c6a95 to your computer and use it in GitHub Desktop.
Save thomseddon/a761a6da014f5a5e58459134973c6a95 to your computer and use it in GitHub Desktop.
Anydump for ubnt edgemax
#!/bin/sh
#===================================================================================
#
# FILE: dump.sh
# USAGE: dump.sh [-i interface] [tcpdump-parameters]
# DESCRIPTION: tcpdump on any interface and add the prefix [Interace:xy] in front of the dump data.
# OPTIONS: same as tcpdump
# REQUIREMENTS: tcpdump, sed, ifconfig, kill, awk, grep, posix regex matching
# BUGS: ---
# FIXED: - In 1.0 The parameter -w would not work without -i parameter as multiple tcpdumps are started.
# - In 1.1 VLAN's would not be shown if a single interface was dumped.
# - In 1.3 Some fixes for virtual interfaces have been provided by Reiner Keller. (Thanks!)
# NOTES: ---
# - 1.2 git initial
# AUTHOR: Sebastian Haas
# VERSION: 1.2
# CREATED: 16.09.2014
# REVISION: 22.09.2014
#
#===================================================================================
# When this exits, exit all background processes:
trap 'kill $(jobs -p) &> /dev/null && sleep 0.2 && echo ' EXIT
trap 'echo re-enabling ipoffload; sudo /usr/sbin/ubnt-adk ipoffload-on; exit' SIGINT SIGQUIT
echo disabling ipoffload
sudo /usr/sbin/ubnt-adk ipoffload-off
# Create one tcpdump output per interface and add an identifier to the beginning of each line:
if [[ $@ =~ -i[[:space:]]?[^[:space:]]+ ]]; then
tcpdump -l $@ | sed 's/^/[Interface:'"${BASH_REMATCH[0]:2}"'] /' &
else
for interface in $(ifconfig | grep '^[a-z0-9]' | awk '{print $1}'i | sed "/:[0-9]/d")
do
tcpdump -l -i $interface -nn $@ | sed 's/^/[Interface:'"$interface"'] /' 2>/dev/null &
done
fi
# wait .. until CTRL+C
wait
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment