Имитация обрыва связи
Иногда требуется проверить, что приложение нормально восстанавливает свою работу после обрыва соединения. Можно, конечно, грохать сетевое подключение целиком, но влиять на работу других приложений — так себе идея, а если все еще и локально происходит, то грохать loopback интерфейс — совсем грустно.
Лучше убивать подключения более гранулярно. Для этого может пригодиться утилита tcpkill
— во время ее работы она будет обрывать подключения по фильтру. Например,
sudo tcpkill -i lo port 5672
будет убивать все подключения к локальному RabbitMQ. Можно оборвать только часть подключений с помощью подобной колбасы:
sudo netstat -natp | grep ':5672' | grep java | head -n10 | awk '{print $4}' | cut -d':' -f2 | xargs -L1 -P10 sudo tcpkill -i lo port
Тут с помощью netstat
выводятся все активные подключения, фильтруются по исходящему порту и приложению, обрезаются до исходящего порта и режутся по нему (я в шоке, что написал это без гугла).