#linux #shell #ftp #функциональное_тестирование
Скрипт на python в ходе работы скачивает файлы с ftp-сервера. Процесс использует боевой ftp, и я не хотел бы усложнять процесс поднятием виртуалки с тестовым ftp - работа скрипта чувствительна к содержимому и мне придется настраивать обновление данных. Нужно протестировать поведение при обрыве соединения в процессе скачивания. Желательно делать это автоматически, то есть вручную делать kill myftpserver или выдергивание шнура из сетевой карты — не вариант. Таким образом, мне нужно либо обрывать текущее соединение прямо на тестовом сервере, либо поднимать прокси, на нем ждать соединения и обрывать через секунду-другую. Не представляю, как это реализовать. Нужно хотя бы название утилиты или команды, которой я смогу отловить текущее соединение и оборвать его, либо блокировать все текущие соединения на заданный ip. Разумеется, тестирую я на тестовом инстансе. К нему есть root-доступ по ssh.
Ответы
Ответ 1
Думаю проще всего делать это с помощью iptables. Просто запрещать передавать пакеты, можно попробовать действия REJECT для быстрого обрыва или DROP для слета по таймауту. Простейшее правило (если задается на машине где тестируемая прога) типа iptables -I OUTPUT -d ip-ftp-сервера -j REJECT Добавлять можно простеньким скриптом на shell периодически делая задержки sleep, например. Или усложнить само правило и задействовать например connbytes. sudo iptables -I OUTPUT -d ip-ftp-сервера -m \ connbytes --connbytes 10000 --connbytes-dir both \ --connbytes-mode bytes -j REJECT должно оборвать соединение после прокачки по нему 10 килобайт. Если с iptables до этого не работали ... iptables -I добавляет правило. iptables -D с точно такими же параметрами, как были при добавлении - удаляет. iptables -L -nv покажет существующие правила
Комментариев нет:
Отправить комментарий