alibek Posted June 23, 2016 Нужен сабж или какая-то его разновидность. Суть проблемы - в IPTV время от времени проскакивает неясная проблема, которую не получается воспроизвести. Проблема проявляется относительно нечасто - иногда за сутки ни разу не случается. Тех.поддержка хочет дампы. Но писать дампы IPTV за много часов мне просто некуда. А нельзя ли организовать кольцевой буфер минут на 10-20, чтобы он был постоянно запущен и я его останавливал, когда проблема случится? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
zhenya` Posted June 23, 2016 Тспдампом можно писать дамп определённого размера.. И по достижении новый файл будет.. А старые подчищать.. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Dimka88 Posted June 23, 2016 (edited) Может через fifo file попробовать? ps:/ Костыль еще сложнее получается. Edited June 23, 2016 by Dimka88 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
sfstudio Posted June 23, 2016 Не щупали https://github.com/netoptimizer/IPTV-Analyzer ? Я к тому что может без tcpdump вовсе обойтись. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alibek Posted June 24, 2016 IPTV-Analyzer интересная вещь по описанию, мне она видимо в любом случае не будет лишней. Но все тех.поддержки очень любят дампы, поэтому хотелось бы все же найти способ организовать кольцевой буфер. Тспдампом можно писать дамп определённого размера.. В принципе да. Но по закону подлости проблема может оказаться в разных фрагментах дампа. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Hawk128 Posted June 24, 2016 Можно оставлять 2-3 последних... Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
OK-2004 Posted June 24, 2016 (edited) apt-get install daemonlogger daemonlogger -d -f /root/bpf.txt -i eth0 -l /var/log/iptv -g 0 -u 0 -n e0 -P /var/run -p dlog -S 0 -t 1h -m 100 -r -F cat /root/bpf.txt: tcp and port \( 80 or 8080 \) #!/bin/bash d0=`date +%d%m%g_%H%M` d1=`date +%s` d=`date +%d` d2=`date +%G-%m-%d` m=`date +%m` find /var/log/iptv -maxdepth 1 -type f -name e0.* -mmin +1440 -printf "%f\n"|sed -e 's/e0\.//' > /var/log/iptv/$d0.list while read line0 ; do dy=`date +%G --date="@${line0}"` dm=`date +%m --date="@${line0}"` d=`date +%d --date="@${line0}"` beg=`date +%H --date="@${line0}"` end=`stat -c%y /var/log/iptv/e0.${line0}|awk '{print $2}'|sed -e 's/\:.*//g'` fname=`echo "${beg}_${end}"` [[ -d /var/log/iptv/pcap/$dy ]] || mkdir /var/log/iptv/pcap/$dy [[ -d /var/log/iptv/pcap/$dy/$dm ]] || mkdir /var/log/iptv/pcap/$dy/$dm [[ -d /var/log/iptv/pcap/$dy/$dm/$d ]] || mkdir /var/log/iptv/pcap/$dy/$dm/$d if [ ! -f /var/log/iptv/pcap/$dy/$dm/$d/$fname ] ; then cp /var/log/iptv/e0.${line0} /var/log/iptv/pcap/$dy/$dm/$d/$fname # find /var/log/iptv/pcap/2016/${m}/${d} -type f >> /tmp/1.txt while read line ; do fname=$(basename $line) dname_0=$(dirname $line) dname_1=`echo "${dname_0#/var/log/iptv/pcap}"` dname_2=`echo "${dname_1}"|tr '/' ' '` echo "${dname_2} ${fname}" >> /tmp/2.txt done < /tmp/1.txt cat /tmp/2.txt|sort -n > /tmp/3.txt # while read line1 ; do read year mon day fl <<< ${line1} if [ ! -f /var/log/iptv/txt/${year}/${mon}/${day}/${fl} ] then if [ ! -d /var/log/iptv/txt/${year} ] then mkdir -p /var/log/iptv/txt/${year}/${mon}/${day} else if [ ! -d /var/log/iptv/txt/${year}/${mon} ] then mkdir -p /var/log/iptv/txt/${year}/${mon}/${day} else if [ ! -d /var/log/iptv/txt/${year}/${mon}/${day} ] then mkdir /var/log/iptv/txt/${year}/${mon}/${day} fi fi fi touch /var/log/iptv/txt/${year}/${mon}/${day}/${fl} tcpdump -v -n -tttt -r /var/log/iptv/pcap/${year}/${mon}/${day}/${fl} src port \(80 or 8080 \) > /tmp/4.txt cat /tmp/4.txt|sed '$!N;s/\n/ /'|sed -e ':again;$!N;$!b again; :b; s/([^()]*)//g; t b'|tr -s ' '|cut -d ' ' --fields=1,2,6,9- > /tmp/5.txt fi done < /tmp/3.txt exit 0 Edited June 24, 2016 by OK-2004 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
boco Posted June 24, 2016 https://www.wireshark.org/docs/man-pages/dumpcap.html Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ivan_83 Posted June 24, 2016 Как дети малые. Пишется тупо через wget / fetch. Там можно и параметрами играть. Если поток мультикастовый то пишется через udpxy/msd_lite. В составе udpxy была udprec тоже типа для записи, но меня никогда не интересовало потому хз. Если писать 1 канал то за сутки даже от хд канала дамп будет не очень большой - в пределах 100 гб. Тех поддержку вряд ли заинтересует вывод tcpdump и л2-л3-л4 заголовки, хотя как знать что там у вас за проблемы. Если по тцп то точно не нужно. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...