В linux (ubuntu) можно ли выполнить скрипт по любому входящему сетевому соединению?Запуск сценария при любом сетевом подключении
В течение длительного периода бездействия на моем домашнем сервере я планирую прекратить программный рейд, парковку дисков данных и перезапуск массива RAID при столкновении с входящим сетевым соединением.
Я изучал эту проблему и не нашел подходящего решения, но любая помощь приветствуется.
Нил
Замечание: Я знаю, что это unnessecary остановить/запустить массив и есть минусы (диск носить & слезу ...). Однако я настроен на свои пути, пожалуйста, не отправляйте сообщения, чтобы я не останавливал/не запускал диски.
Edit (1):
Мысль, что я разделю свое мнение, и мы надеемся получить обратную связь на нем.
Я думаю, что нужно бы использовать Xinetd связывание ловца скрипта, который перехватывает входящие данные подключения на все порты, запускает свой запуск сценария и передает данные входящие подключения к соответствующей службе для этого порта. Единственная проблема - я не знаю, какие данные мне нужно будет поймать или как в python.
Edit (2): Я взломал вместе решение с использованием библиотеки Python pypcap http://code.google.com/p/pypcap/. Для дальнейшего использования здесь приведен код.
import pcap
...
pc = pcap.pcap(name)
pc.setfilter(' '.join(args))
pc.setnonblock()
try:
for ts, pkt in pc:
# subprocess.call([filename, args])
print 'readying disks...'
break
except OSError, ValueError:
print 'Error: invalid arguements passed to subprocess'
except KeyboardInterrupt:
print 'Error: keyboard interupt'
спасибо за предложение. Я просмотрел библиотеки, но решил использовать использование libpcap или, более конкретно, pycap http://code.google.com/p/pypcap/ – 2010-01-06 14:20:11