Автор Гілка: Запуск bash-скрипта udp-пакетом  (Прочитано 9690 раз)

Відсутній shroman

  • Новачок
  • *
  • дописів: 2
  • Карма: +0/-0
Підкажіть, будь ласка, як вирішити таку задачу:
Програма на комп'ютері в мережі відправляє udp-пакет при певних подіях. Потрібно на linux-машині цей пакет зловити, виділити дані і запустити shell-скрипт.
Спробував через xinetd запустити скрипт, а в скрипті зловити пакет tcpdump-ом. Але проблема, що першим пакетом xinetd запускає скрипт, а tcpdump відловлює тільки другий пакет.

# /etc/xinetd.d/stream_control
service stream_control
{
    disable = no
    type = UNLISTED
    port = 8012
    socket_type = dgram
    protocol = udp
    flags = IPv4
    wait = yes
    user = root
    server = /home/user/test.sh
    log_type = SYSLOG daemon
}
test.sh:
#!/bin/bash
tcpdump -Q in --immediate-mode udp port 8012 -A -c 1 >> /home/user/test.txt

Відсутній shroman

  • Новачок
  • *
  • дописів: 2
  • Карма: +0/-0
Re: Запуск bash-скрипта udp-пакетом
« Відповідей #1 : 2017-12-30 23:22:56 »
Вирішено.
xinetd передає дані з пакету на std-in.
Щоб їх отримати, достатньо скрипта
#!/bin/bash
cat - >> /home/user/test.txt