Нужен демон, который может прослушивать кастомный TCP/UDP-порт и, получив по нему текстовую строку, запускать скрипт с этой строкой в качестве аргумента. Существует ли такой в природе?Система FreeBSD 10.2.
ucspi-tcp например
Спасибо! Будем пробовать!
SSHD :)Поверь мне - я не шучу. Всё равно к нему придёте :)
> Нужен демон, который может прослушивать кастомный TCP/UDP-порт и, получив по нему текстовую
> строку, запускать скрипт с этой строкой в качестве аргумента. Существует ли
> такой в природе?
> Система FreeBSD 10.2.man (x)inetd
> Нужен демон, который может прослушивать кастомный TCP/UDP-порт и, получив по нему текстовую
> строку, запускать скрипт с этой строкой в качестве аргумента. Существует ли
> такой в природе?
> Система FreeBSD 10.2.netcat
>> Система FreeBSD 10.2.
> netcatУ него есть фатальный недостаток второго порядка: openbsd netcat совсем не одно и то же, что n[et]cat от fyodor.
ЗЫЖ "Когда я служил с маленьком уездном городке"R и написал на gawk-е веб-сервер, мою лень в освоении https://www.gnu.org/software/gawk/manual/html_node/TCP_002fI... я компенсировал использованием xinetd &| socket|socat. В каких-то/разных комбинациях.
ЗЗЫЖ AGkhr, FreeBSD?! Ухо-хо, опять криворукие неучи хэндбукаов не нюхавшие... ЕГЭ ж ещё не!!! Гоните их.
> Нужен демон, который может прослушивать кастомный TCP/UDP-порт и, получив по нему текстовую
> строку, запускать скрипт с этой строкой в качестве аргумента. Существует ли
> такой в природе?
> Система FreeBSD 10.2.Например можно на python сделать скрипт, что-то вроде:
===========================================================================
import socket
import sys
import osproto = argv[0]
port = argv[1]if proto == 'udp':
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
except socket.error, msg:
print 'Error Code:' + str(msg[0]) + msg[1]
sys.exit()
try:
sock.bind (("", port))
except socket.error, msg:
print 'Error Code:' + str(msg[0]) + msg[1]
sys.exit()
data, addr = sock.recvfrom(1024)
if data == 'YOUR_MESSAGE':
os.system('/bin/command.sh')
sock.close()
elif proto == 'tcp':
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
except socket.error, msg:
print 'Error Code:' + str(msg[0]) + msg[1]
sys.exit()
try:
sock.bind (("", port))
except socket.error, msg:
print 'Error Code:' + str(msg[0]) + msg[1]
sys.exit()
sock.listen(1)
conn, addr = sock.accept()
data = conn.recv(1024)
if data == 'YOUR_MESSAGE':
os.system('/bin/command.sh')
conn.close()
===========================================================================запуск python script.py udp 1111 или python script.py tcp 2222
Когда телнетитесь на порт и отправляете YOUR_MESSAGE запустится /bin/command.sh
ну или ncat -u IP PORT и написать YOUR_MESSAGE