alibek Posted June 23, 2016 Posted June 23, 2016 Нужен сабж или какая-то его разновидность. Суть проблемы - в IPTV время от времени проскакивает неясная проблема, которую не получается воспроизвести. Проблема проявляется относительно нечасто - иногда за сутки ни разу не случается. Тех.поддержка хочет дампы. Но писать дампы IPTV за много часов мне просто некуда. А нельзя ли организовать кольцевой буфер минут на 10-20, чтобы он был постоянно запущен и я его останавливал, когда проблема случится? Вставить ник Quote
zhenya` Posted June 23, 2016 Posted June 23, 2016 Тспдампом можно писать дамп определённого размера.. И по достижении новый файл будет.. А старые подчищать.. Вставить ник Quote
Dimka88 Posted June 23, 2016 Posted June 23, 2016 (edited) Может через fifo file попробовать? ps:/ Костыль еще сложнее получается. Edited June 23, 2016 by Dimka88 Вставить ник Quote
sfstudio Posted June 23, 2016 Posted June 23, 2016 Не щупали https://github.com/netoptimizer/IPTV-Analyzer ? Я к тому что может без tcpdump вовсе обойтись. Вставить ник Quote
alibek Posted June 24, 2016 Author Posted June 24, 2016 IPTV-Analyzer интересная вещь по описанию, мне она видимо в любом случае не будет лишней. Но все тех.поддержки очень любят дампы, поэтому хотелось бы все же найти способ организовать кольцевой буфер. Тспдампом можно писать дамп определённого размера.. В принципе да. Но по закону подлости проблема может оказаться в разных фрагментах дампа. Вставить ник Quote
Hawk128 Posted June 24, 2016 Posted June 24, 2016 Можно оставлять 2-3 последних... Вставить ник Quote
OK-2004 Posted June 24, 2016 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
boco Posted June 24, 2016 Posted June 24, 2016 https://www.wireshark.org/docs/man-pages/dumpcap.html Вставить ник Quote
Ivan_83 Posted June 24, 2016 Posted June 24, 2016 Как дети малые. Пишется тупо через wget / fetch. Там можно и параметрами играть. Если поток мультикастовый то пишется через udpxy/msd_lite. В составе udpxy была udprec тоже типа для записи, но меня никогда не интересовало потому хз. Если писать 1 канал то за сутки даже от хд канала дамп будет не очень большой - в пределах 100 гб. Тех поддержку вряд ли заинтересует вывод tcpdump и л2-л3-л4 заголовки, хотя как знать что там у вас за проблемы. Если по тцп то точно не нужно. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.