Разумно спросить, почему команда DD сначала не проверяет, содержит ли ее цель установленной файловой системы, а затем пригласить подтверждение или требует специального флага. Один простой ответ заключается в том, что он нарушит любые сценарии, которые ожидают, что смогут использовать DD таким образом, и что не предназначены для обработки интерактивного ввода. Например, можно разумно изменить таблицу разбиения необработанного устройства, в то время как установлен раздел того же устройства; Вы просто должны быть осторожны, чтобы изменить только первый сектор.
В дикой природе есть огромное количество систем Linux, и нельзя знать, какие сумасшедшие насадки люди придумали люди. Таким образом, сопровождающие DD очень вряд ли будут делать несовместимые несовместимые изменения, которые вызовут проблемы для неизвестного количества сред.
попробуйте nc
from man nc
nc - произвольные соединения TCP и UDP и прослушивание
Возможно, вас заинтересует sendip
, его веб-сайт: http://snad.ncsl.nist.gov/ipv6 /sendip.html
С сайта:
Q: Как обрабатываются строковые и числовые аргументы? A: Многие поля заголовка и область пакетных данных можно указать с помощью следующего синтаксиса:
- 0xXXXX - интерпретируется как шестнадцатеричное число, преобразованное в двоичное число в сетевом порядке байтов.
- 0XXXX - интерпретируется как восьмеричное число, преобразованное в двоичное число в сетевом порядке байтов.
- rN - N «случайных» байтов
- zN - N nul (нулевых) байтов
- fF - прочитать аргумент из следующей строки в файле F
- другой - взять как буквальную строку
socat являются современным инструментом для соединения, двунаправлено, почти чего-либо почти к чему-либо еще. В частности, можно заставить это слушать на порте для соединений запущенных, программа при соединении отправляет данные в него, и возвратить вывод назад сокету. Например:
socat TCP4-LISTEN:3344,reuseaddr,fork EXEC:/tmp/runme,pty
выполнит сценарий /tmp/runme
, например:
#!/bin/bash
trap 'echo sigterm >&2;exit' TERM
echo "start" >&2
while read line
do echo "got $line"
done
, в котором можно сделать то, что вы любите с данными, такой как здесь
возврат его с префиксом "добрался". Можно протестировать это с, например, telnet localhost 3344
или
echo hi | socat - TCP4:localhost:3344
, Если необходимо сделать то же с udp, можно вместо этого попробовать, например:
socat UDP-RECVFROM:3344,fork EXEC:/tmp/runme,pty
вы будете только переданы один пакет, но вы все еще получаете любой ответ. Протестировать его с, например:
echo hi | socat - UDP-SENDTO:localhost:3344
, Если все вы хотите сделать, отреагировали на ваши данные, эта функция встроена в xinetd
, и вы только должны включить эхо сервис. См. человек xinetd.conf
.
, Если вы хотите получить статистику пропускной способности, посмотрите инструмент netperf .