| #!/bin/bash |
| # |
| # lib/tcpdump |
| # Functions to start and stop a tcpdump |
| |
| # Dependencies: |
| # |
| # - ``functions`` file |
| |
| # ``stack.sh`` calls the entry points in this order: |
| # |
| # - start_tcpdump |
| # - stop_tcpdump |
| |
| # Save trace setting |
| _XTRACE_TCPDUMP=$(set +o | grep xtrace) |
| set +o xtrace |
| |
| TCPDUMP_OUTPUT=${TCPDUMP_OUTPUT:-$LOGDIR/tcpdump.pcap} |
| |
| # e.g. for iscsi |
| # "-i any tcp port 3260" |
| TCPDUMP_ARGS=${TCPDUMP_ARGS:-""} |
| |
| # start_tcpdump() - Start running processes |
| function start_tcpdump { |
| # Run a tcpdump with given arguments and save the packet capture |
| if is_service_enabled tcpdump; then |
| if [[ -z "${TCPDUMP_ARGS}" ]]; then |
| die $LINENO "The tcpdump service requires TCPDUMP_ARGS to be set" |
| fi |
| touch ${TCPDUMP_OUTPUT} |
| run_process tcpdump "/usr/sbin/tcpdump -w $TCPDUMP_OUTPUT $TCPDUMP_ARGS" root root |
| fi |
| } |
| |
| # stop_tcpdump() stop tcpdump process |
| function stop_tcpdump { |
| stop_process tcpdump |
| } |
| |
| # Restore xtrace |
| $_XTRACE_TCPDUMP |