From b76f204328c982855298c90ea3734ef8c4f1f450 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B8rn=20=C3=85ne?= Date: Tue, 24 May 2016 11:42:29 +0200 Subject: [PATCH 01/68] Move files around and build package. --- .gitignore | 2 ++ Dockerfile | 6 ++++ README.md | 38 ++++++++++++++------ build.sh | 7 ++++ etc/cron.d/mp-rude | 4 --- etc/mp-rude/mp-rude-zip | 4 --- lib/systemd/system/mp-rude.service | 16 --------- mp-list.txt | 31 ---------------- mp-rude/DEBIAN/control | 11 ++++++ mp-rude/DEBIAN/postinst | 6 ++++ mp-rude/etc/cron.d/mp-rude | 8 +++++ {etc => mp-rude/etc}/init.d/mp-rude | 5 +-- mp-rude/etc/mp-rude/rude-list.conf | 0 mp-rude/etc/mp-rude/rude.conf | 0 {etc => mp-rude/etc}/mp-rude/start.conf | 4 +-- mp-rude/etc/mp-rude/trace.conf | 0 {tools => mp-rude/usr/bin}/mp-cmd | 0 tools/mp-hent.sh => mp-rude/usr/bin/mp-hent | 2 +- {tools => mp-rude/usr/bin}/rude-config-maker | 0 {tools => mp-rude/usr/bin}/udp-buf-check | 0 mp-rude/usr/share/mp-rude/make-rude.sh | 6 ++++ mp-rude/usr/share/mp-rude/make-start.sh | 6 ++++ mp-rude/usr/share/mp-rude/mp-rude-zip | 3 ++ {etc => mp-rude/usr/share}/mp-rude/start.sh | 2 +- {etc => mp-rude/usr/share}/mp-rude/stop.sh | 1 - {etc => mp-rude/usr/share}/mp-rude/trace.sh | 0 mp-rude/var/lib/mp-rude/crude.pipe | 0 rude-list.conf | 33 ----------------- tools/mp-cmd~ | 9 ----- tools/mp-ut.sh | 16 --------- 30 files changed, 89 insertions(+), 131 deletions(-) create mode 100644 .gitignore create mode 100644 Dockerfile create mode 100755 build.sh delete mode 100644 etc/cron.d/mp-rude delete mode 100755 etc/mp-rude/mp-rude-zip delete mode 100644 lib/systemd/system/mp-rude.service delete mode 100644 mp-list.txt create mode 100644 mp-rude/DEBIAN/control create mode 100755 mp-rude/DEBIAN/postinst create mode 100644 mp-rude/etc/cron.d/mp-rude rename {etc => mp-rude/etc}/init.d/mp-rude (94%) create mode 100644 mp-rude/etc/mp-rude/rude-list.conf create mode 100644 mp-rude/etc/mp-rude/rude.conf rename {etc => mp-rude/etc}/mp-rude/start.conf (61%) create mode 100644 mp-rude/etc/mp-rude/trace.conf rename {tools => mp-rude/usr/bin}/mp-cmd (100%) rename tools/mp-hent.sh => mp-rude/usr/bin/mp-hent (77%) rename {tools => mp-rude/usr/bin}/rude-config-maker (100%) rename {tools => mp-rude/usr/bin}/udp-buf-check (100%) create mode 100644 mp-rude/usr/share/mp-rude/make-rude.sh create mode 100644 mp-rude/usr/share/mp-rude/make-start.sh create mode 100755 mp-rude/usr/share/mp-rude/mp-rude-zip rename {etc => mp-rude/usr/share}/mp-rude/start.sh (77%) rename {etc => mp-rude/usr/share}/mp-rude/stop.sh (99%) rename {etc => mp-rude/usr/share}/mp-rude/trace.sh (100%) create mode 100644 mp-rude/var/lib/mp-rude/crude.pipe delete mode 100644 rude-list.conf delete mode 100755 tools/mp-cmd~ delete mode 100755 tools/mp-ut.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c70ce77 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/*_amd64 +/*.deb diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..3856abf --- /dev/null +++ b/Dockerfile @@ -0,0 +1,6 @@ +FROM debian:wheezy +WORKDIR /root/ +COPY mp-rude mp-rude +COPY build.sh build.sh +RUN ./build.sh +CMD tar c *.deb diff --git a/README.md b/README.md index 39a6729..da6093d 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,31 @@ -**Running rude/crude on measurement beacons** +# Running rude/crude and traceroute on measurement beacons -Filer -etc/init.d/mp-rude - start/stop rude crude -etc/cron.d/mp-rude - cron to start/stop every day a noon +This package installs an init-script for managing rude/crude, and +scripts for starting and stopping traceroute-measurements. -tools/rude-config-maker - make rude configs from rude-list.conf -tools/mp-ut.sh - script to roll out files -tools/mp-cmd - script to run commands on mp's -tools/udp-buf-check - sjekk udp drops per prosess +Configuration files are managed in /etc/mp-rude, where rude-list.conf +must be managed by an administrator or a configuration utility. -rude-list.conf lists of rude/traceroute destinations -mp-list.txt list of nodes +## The following files are of interest: +* /etc/init.d/mp-rude - start/stop rude crude +* /etc/cron.d/mp-rude - cron to start/stop every day a noon -roll out rude/crude to /usr/local/bin with debian packages. +* /usr/bin/rude-config-maker - make rude configs from rude-list.conf +* /usr/bin/mp-cmd - script to run commands on mp's +* /usr/bin/udp-buf-check - sjekk udp drops per prosess + +* /etc/mp-rude/rude-list.conf lists of rude/traceroute destinations + + +## Building + +### Using Docker + +``` +docker build -t mp-rude-debian . +docker run mp-rude-debian | tar x +``` + +### Manually + +See build.sh. \ No newline at end of file diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..686d70c --- /dev/null +++ b/build.sh @@ -0,0 +1,7 @@ +#!/bin/sh +package="$(sed -n 's/^Package: //p' mp-rude/DEBIAN/control)" +version="$(sed -n 's/^Version: //p' mp-rude/DEBIAN/control)" +echo "package: $package" +echo "version: $version" +cp -a mp-rude "${package}_${version}_amd64" +dpkg-deb -b "${package}_${version}_amd64" \ No newline at end of file diff --git a/etc/cron.d/mp-rude b/etc/cron.d/mp-rude deleted file mode 100644 index a5a8fca..0000000 --- a/etc/cron.d/mp-rude +++ /dev/null @@ -1,4 +0,0 @@ -MAILTO=oak@uninett.no -0 0 * * * root /usr/sbin/service mp-rude restart -59 23 * * * root /etc/mp-rude/stop.sh 50 -0 0 * * * root /etc/mp-rude/start.sh diff --git a/etc/mp-rude/mp-rude-zip b/etc/mp-rude/mp-rude-zip deleted file mode 100755 index 71d5741..0000000 --- a/etc/mp-rude/mp-rude-zip +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -cat $1 | /bin/gzip > $2 - diff --git a/lib/systemd/system/mp-rude.service b/lib/systemd/system/mp-rude.service deleted file mode 100644 index 029fa03..0000000 --- a/lib/systemd/system/mp-rude.service +++ /dev/null @@ -1,16 +0,0 @@ -[Unit] -Description=Mp-rude init script wrapper -After=network.target - -[Service] -ExecStart=/etc/init.d/mp-rude start -ExecStop=/etc/init.d/mp-rude stop -ExecReload=/etc/init.d/mp-rude reload -PIDFile=/var/run/mp-rude.pid -RemainAfterExit=no -Restart=always -Type=forking - -[Install] -WantedBy=multiuser.target - diff --git a/mp-list.txt b/mp-list.txt deleted file mode 100644 index 494aded..0000000 --- a/mp-list.txt +++ /dev/null @@ -1,31 +0,0 @@ -alesund-mp.hials.no -alta-mp.hifm.no -bergen-mp.uib.no -drammen-mp.hibu.no -forde-mp.hisf.no -fredrikstad-mp.hiof.no -gjovik-mp.hig.no -grimstad-mp.uia.no -halden-mp.hiof.no -hamar-mp.hihm.no -harstad-mp.hih.no -haugesund-mp.hsh.no -kalvskinnet-mp.hist.no -kristiansand-mp.uia.no -kunnskapsv-mp.hioa.no -lillehammer-mp.hil.no -molde-mp.himolde.no -narvik-mp.hin.no -nesna-mp.hinesna.no -ntnu-mp.ntnu.no -nyalesund-mp.uninett.no -oslo-mp.uio.no -pil32-mp.hioa.no -porsgrunn-mp.hit.no -sogndal-mp.hisf.no -stavanger-mp.uis.no -steinkjer-mp.hint.no -stord-mp.hsh.no -svalbard-mp.unis.no -tromso-mp.uit.no -volda-mp.hivolda.no diff --git a/mp-rude/DEBIAN/control b/mp-rude/DEBIAN/control new file mode 100644 index 0000000..5d5a908 --- /dev/null +++ b/mp-rude/DEBIAN/control @@ -0,0 +1,11 @@ +Package: mp-rude +Priority: extra +Section: uninett +Architecture: all +Depends: rude, crude, traceroute, perl-base, cron +Maintainer: jorn.dejong@uninett.no +Version: 1.0 +Provides: mp-rude +Replaces: mp-rude +Description: Software for measuring network using rude/crude and traceroute. + diff --git a/mp-rude/DEBIAN/postinst b/mp-rude/DEBIAN/postinst new file mode 100755 index 0000000..a1ec543 --- /dev/null +++ b/mp-rude/DEBIAN/postinst @@ -0,0 +1,6 @@ +#!/bin/sh + +systemctl enable mp-rude.service + +[ -s /var/lib/mp-rude/crude.pipe ] || rm -f /var/lib/mp-rude/crude.pipe +mkfifo /var/lib/mp-rude/crude.pipe diff --git a/mp-rude/etc/cron.d/mp-rude b/mp-rude/etc/cron.d/mp-rude new file mode 100644 index 0000000..1979acb --- /dev/null +++ b/mp-rude/etc/cron.d/mp-rude @@ -0,0 +1,8 @@ +MAILTO=root + +# rude/crude +0 0 * * * root /usr/sbin/service mp-rude restart + +# traceroute +23 59 * * * root /usr/share/mp-rude/stop.sh 50 +0 0 * * * root /usr/share/mp-rude/make-start.sh diff --git a/etc/init.d/mp-rude b/mp-rude/etc/init.d/mp-rude similarity index 94% rename from etc/init.d/mp-rude rename to mp-rude/etc/init.d/mp-rude index 76f2a52..01c7c49 100755 --- a/etc/init.d/mp-rude +++ b/mp-rude/etc/init.d/mp-rude @@ -14,13 +14,13 @@ PATH=/sbin:/bin:/usr/sbin:/usr/bin . /lib/lsb/init-functions RUDE=/usr/local/bin/rude CRUDE=/usr/local/bin/crude -PIPE=/tmp/mp-rude/crude.pipe +PIPE=/var/lib/mp-rude/crude.pipe do_start() { log_begin_msg "Starting rude/crude..." HOST=$(hostname) DATE=$(date +%Y-%m-%d) - LOG=/tmp/mp-rude/$HOST-$DATE.crude + LOG=/var/lib/mp-rude/$HOST-$DATE.crude if test ! -p $PIPE ; then mkfifo $PIPE @@ -39,6 +39,7 @@ do_stop() { sleep 1 fuser -k $PIPE # kill all processes using pipe log_end_msg $? + sleep 3 } case "$1" in diff --git a/mp-rude/etc/mp-rude/rude-list.conf b/mp-rude/etc/mp-rude/rude-list.conf new file mode 100644 index 0000000..e69de29 diff --git a/mp-rude/etc/mp-rude/rude.conf b/mp-rude/etc/mp-rude/rude.conf new file mode 100644 index 0000000..e69de29 diff --git a/etc/mp-rude/start.conf b/mp-rude/etc/mp-rude/start.conf similarity index 61% rename from etc/mp-rude/start.conf rename to mp-rude/etc/mp-rude/start.conf index 8d56e4a..753a1ff 100644 --- a/etc/mp-rude/start.conf +++ b/mp-rude/etc/mp-rude/start.conf @@ -1,5 +1,5 @@ date=`date +%Y-%m-%d` -bin=/etc/mp-rude -logpath=/tmp/mp-rude +bin=/usr/share/mp-rude +logpath=/var/lib/mp-rude trace=$bin/trace.sh traceconf=/etc/mp-rude/trace.conf diff --git a/mp-rude/etc/mp-rude/trace.conf b/mp-rude/etc/mp-rude/trace.conf new file mode 100644 index 0000000..e69de29 diff --git a/tools/mp-cmd b/mp-rude/usr/bin/mp-cmd similarity index 100% rename from tools/mp-cmd rename to mp-rude/usr/bin/mp-cmd diff --git a/tools/mp-hent.sh b/mp-rude/usr/bin/mp-hent similarity index 77% rename from tools/mp-hent.sh rename to mp-rude/usr/bin/mp-hent index 947c4a3..0a300f3 100644 --- a/tools/mp-hent.sh +++ b/mp-rude/usr/bin/mp-hent @@ -4,5 +4,5 @@ mp-list=$1 today=`date +%Y-d-d` for mp in `cat $mp-list`; do echo $mp - echo rsync -rv --bwlimit=20MB --exclude "*$today*" root@$mp:/tmp/mp-rude/ /dragonlab/mp-rude/data/$mp + echo rsync -rv --bwlimit=20MB --exclude "*$today*" root@$mp:/var/lib/mp-rude/ /dragonlab/mp-rude/data/$mp done diff --git a/tools/rude-config-maker b/mp-rude/usr/bin/rude-config-maker similarity index 100% rename from tools/rude-config-maker rename to mp-rude/usr/bin/rude-config-maker diff --git a/tools/udp-buf-check b/mp-rude/usr/bin/udp-buf-check similarity index 100% rename from tools/udp-buf-check rename to mp-rude/usr/bin/udp-buf-check diff --git a/mp-rude/usr/share/mp-rude/make-rude.sh b/mp-rude/usr/share/mp-rude/make-rude.sh new file mode 100644 index 0000000..58f5a5e --- /dev/null +++ b/mp-rude/usr/share/mp-rude/make-rude.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +source /etc/mp-rude/start.conf + +cd /etc/mp-rude +rude-config-maker -target $(hostname -f) rude-list.conf > rude.conf diff --git a/mp-rude/usr/share/mp-rude/make-start.sh b/mp-rude/usr/share/mp-rude/make-start.sh new file mode 100644 index 0000000..07ffa4f --- /dev/null +++ b/mp-rude/usr/share/mp-rude/make-start.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +source /etc/mp-rude/start.conf + +. "$bin/make-rude.sh" +. "$bin/start.sh" diff --git a/mp-rude/usr/share/mp-rude/mp-rude-zip b/mp-rude/usr/share/mp-rude/mp-rude-zip new file mode 100755 index 0000000..bd2c1d8 --- /dev/null +++ b/mp-rude/usr/share/mp-rude/mp-rude-zip @@ -0,0 +1,3 @@ +#!/bin/sh + +/bin/gzip -c $1 > $2 diff --git a/etc/mp-rude/start.sh b/mp-rude/usr/share/mp-rude/start.sh similarity index 77% rename from etc/mp-rude/start.sh rename to mp-rude/usr/share/mp-rude/start.sh index e6fa04d..cef488b 100755 --- a/etc/mp-rude/start.sh +++ b/mp-rude/usr/share/mp-rude/start.sh @@ -6,7 +6,7 @@ log=$logpath/$date/traceroute_$1 #Start traceroute for i in `cat $traceconf` ; do - $trace $i 23:59 2> /dev/null > /dev/null & + $trace $i 23:59 > /dev/null 2>&1 & echo "$!" >> $logpath/pids done diff --git a/etc/mp-rude/stop.sh b/mp-rude/usr/share/mp-rude/stop.sh similarity index 99% rename from etc/mp-rude/stop.sh rename to mp-rude/usr/share/mp-rude/stop.sh index 0d1f661..5f475bd 100755 --- a/etc/mp-rude/stop.sh +++ b/mp-rude/usr/share/mp-rude/stop.sh @@ -15,4 +15,3 @@ fi for i in $(cat $logpath/pids); do kill $i; done rm $logpath/pids - diff --git a/etc/mp-rude/trace.sh b/mp-rude/usr/share/mp-rude/trace.sh similarity index 100% rename from etc/mp-rude/trace.sh rename to mp-rude/usr/share/mp-rude/trace.sh diff --git a/mp-rude/var/lib/mp-rude/crude.pipe b/mp-rude/var/lib/mp-rude/crude.pipe new file mode 100644 index 0000000..e69de29 diff --git a/rude-list.conf b/rude-list.conf deleted file mode 100644 index db8c881..0000000 --- a/rude-list.conf +++ /dev/null @@ -1,33 +0,0 @@ -alesund-mp.hials.no bergen-mp.uib.no ntnu-mp.ntnu.no -alta-mp.hifm.no tromso-mp.uit.no ntnu-mp.ntnu.no -bergen-mp.uib.no ntnu-mp.ntnu.no oslo-mp.uio.no tromso-mp.uit.no -bo-mp.hit.no oslo-mp.uio.no bergen-mp.uib.no -drammen-mp.hibu.no oslo-mp.uio.no bergen-mp.uib.no -forde-mp.hisf.no bergen-mp.uib.no ntnu-mp.ntnu.no -fredrikstad-mp.hiof.no oslo-mp.uio.no bergen-mp.uib.no -gjovik-mp.hig.no oslo-mp.uio.no bergen-mp.uib.no -grimstad-mp.uia.no oslo-mp.uio.no bergen-mp.uib.no -halden-mp.hiof.no oslo-mp.uio.no bergen-mp.uib.no -hamar-mp.hihm.no oslo-mp.uio.no ntnu-mp.ntnu.no -harstad-mp.hih.no tromso-mp.uit.no ntnu-mp.ntnu.no -haugesund-mp.hsh.no bergen-mp.uib.no stavanger-mp.uis.no -kalvskinnet-mp.hist.no ntnu-mp.ntnu.no bergen-mp.uib.no -kristiansand-mp.uia.no oslo-mp.uio.no bergen-mp.uib.no -kunnskapsv-mp.hioa.no oslo-mp.uio.no bergen-mp.uib.no -lillehammer-mp.hil.no oslo-mp.uio.no ntnu-mp.ntnu.no -molde-mp.himolde.no bergen-mp.uib.no ntnu-mp.ntnu.no -narvik-mp.hin.no tromso-mp.uit.no ntnu-mp.ntnu.no -nesna-mp.hinesna.no tromso-mp.uit.no ntnu-mp.ntnu.no -ntnu-mp.ntnu.no oslo-mp.uio.no bergen-mp.uib.no tromso-mp.uit.no -nyalesund-mp.uninett.no tromso-mp.uit.no ntnu-mp.ntnu.no -oslo-mp.uio.no bergen-mp.uib.no tromso-mp.uit.no ntnu-mp.ntnu.no -pil32-mp.hioa.no oslo-mp.uio.no bergen-mp.uib.no -porsgrunn-mp.hit.no oslo-mp.uio.no bergen-mp.uib.no -sogndal-mp.hisf.no oslo-mp.uio.no bergen-mp.uib.no -stavanger-mp.uis.no bergen-mp.uib.no oslo-mp.uio.no -steinkjer-mp.hint.no ntnu-mp.ntnu.no bergen-mp.uib.no -stord-mp.hsh.no bergen-mp.uib.no stavanger-mp.uis.no -svalbard-mp.unis.no tromso-mp.uit.no ntnu-mp.ntnu.no -teknobyen-mp.uninett.no ntnu-mp.ntnu.no bergen-mp.uib.no -tromso-mp.uit.no oslo-mp.uio.no bergen-mp.uib.no ntnu-mp.ntnu.no -# volda-mp.hivolda.no ntnu-mp.ntnu.no bergen-mp.uib.no diff --git a/tools/mp-cmd~ b/tools/mp-cmd~ deleted file mode 100755 index 2f7826d..0000000 --- a/tools/mp-cmd~ +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -cmd="$1" - -for mp in bo-mp.hit.no stord-mp.hsh.no forde-mp.hisf.no harstad-mp.hih.no volda-mp.hivolda.no haugesund-mp.hsh.no tromso-mp.uit.no molde-mp.himolde.no alesund-mp.hials.no fredrikstad-mp.hiof.no svalbard-mp.unis.no porsgrunn-mp.hit.no alta-mp.hifm.no hamar-mp.hihm.no narvik-mp.hin.no pil32-mp.hioa.no ntnu-mp.ntnu.no kristiansand-mp.uia.no sogndal-mp.hisf.no stavanger-mp.uis.no bergen-mp.uib.no grimstad-mp.uia.no lillehammer-mp.hil.no oslo-mp.uio.no halden-mp.hiof.no nesna-mp.hinesna.no nyalesund-mp.uninett.no kunnskapsv-mp.hioa.no drammen-mp.hibu.no steinkjer-mp.hint.no gjovik-mp.hig.no ; do - echo henter $mp -# ssh -q root@$mp sysctl net.core.rmem_default - ssh -q root@$mp "$cmd" -done diff --git a/tools/mp-ut.sh b/tools/mp-ut.sh deleted file mode 100755 index 0a78f01..0000000 --- a/tools/mp-ut.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash -hlist=$1 -cmd="$2" - -for mp in `cat mp-list.txt`; do - echo $mp - eval $cmd -# start-stop-daemon --start --background --pidfile /var/run/mp-crude.pid -m --exec /usr/local/bin/crude -- -P 50 -k -l - | gzip >/tmp/mp-rude/$HOST-$DATE.crude.gz -# rsync -prv etc/ root@$mp:/etc/ -# rsync -prv tmp/$mp/ root@$mp:/etc/mp-rude/ -# rsync -prv etc/init.d/mp-rude root@$mp:/etc/init.d/ -# rsync -prv etc/cron.d/mp-rude root@$mp:/etc/cron.d/ -# rsync -prv ~/sw/rude/crude/crude root@$mp:/usr/local/bin -# rsync -prv ~/sw/rude/rude/rude root@$mp:/usr/local/bin -# scp ~/sw/rude/bin/* root@$mp:/usr/local/bin/ -done -- GitLab From 94d5a2b8269fd54a1f55c2a3bb4c42e19ad9cbe4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Thu, 9 Jun 2016 09:26:49 +0200 Subject: [PATCH 02/68] =?UTF-8?q?V=C3=A6re=20helt=20sikre=20p=C3=A5=20at?= =?UTF-8?q?=20filene=20som=20kommer=20ut=20er=20kj=C3=B8rbare=20:)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mp-rude/DEBIAN/postinst | 8 +++++++- mp-rude/usr/bin/mp-hent | 0 mp-rude/usr/bin/rude-config-maker | 0 3 files changed, 7 insertions(+), 1 deletion(-) mode change 100644 => 100755 mp-rude/usr/bin/mp-hent mode change 100644 => 100755 mp-rude/usr/bin/rude-config-maker diff --git a/mp-rude/DEBIAN/postinst b/mp-rude/DEBIAN/postinst index a1ec543..8786cb8 100755 --- a/mp-rude/DEBIAN/postinst +++ b/mp-rude/DEBIAN/postinst @@ -1,4 +1,10 @@ -#!/bin/sh +#! /bin/sh + +chmod 755 \ + /usr/bin/mp-cmd \ + /usr/bin/mp-hent \ + /usr/bin/rude-config-maker \ + /usr/bin/udp-buf-check systemctl enable mp-rude.service diff --git a/mp-rude/usr/bin/mp-hent b/mp-rude/usr/bin/mp-hent old mode 100644 new mode 100755 diff --git a/mp-rude/usr/bin/rude-config-maker b/mp-rude/usr/bin/rude-config-maker old mode 100644 new mode 100755 -- GitLab From 736e28a01bd9e36d34f8b898c520a2bb74f297be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Thu, 9 Jun 2016 09:27:16 +0200 Subject: [PATCH 03/68] =?UTF-8?q?Bruk=20"#!=20/"=20som=20god=20gammel=20va?= =?UTF-8?q?ne=20:p=20Bruk=20env=20for=20=C3=A5=20kj=C3=B8re=20perl=20i=20s?= =?UTF-8?q?tedet=20for=20hardcodet=20/usr/bin/perl?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mp-rude/usr/bin/mp-cmd | 2 +- mp-rude/usr/bin/mp-hent | 2 +- mp-rude/usr/bin/rude-config-maker | 2 +- mp-rude/usr/bin/udp-buf-check | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mp-rude/usr/bin/mp-cmd b/mp-rude/usr/bin/mp-cmd index 27c7c64..11bd93e 100755 --- a/mp-rude/usr/bin/mp-cmd +++ b/mp-rude/usr/bin/mp-cmd @@ -1,4 +1,4 @@ -#!/bin/bash +#! /bin/bash mps="$1" cmd="$2" diff --git a/mp-rude/usr/bin/mp-hent b/mp-rude/usr/bin/mp-hent index 0a300f3..61bc532 100755 --- a/mp-rude/usr/bin/mp-hent +++ b/mp-rude/usr/bin/mp-hent @@ -1,4 +1,4 @@ -#!/bin/bash +#! /bin/bash mp-list=$1 today=`date +%Y-d-d` diff --git a/mp-rude/usr/bin/rude-config-maker b/mp-rude/usr/bin/rude-config-maker index c4414fc..f0556d4 100755 --- a/mp-rude/usr/bin/rude-config-maker +++ b/mp-rude/usr/bin/rude-config-maker @@ -1,4 +1,4 @@ -#!/usr/bin/perl +#! /usr/bin/env perl # make rude config files from host lists # format : src dst1 dst2 ... diff --git a/mp-rude/usr/bin/udp-buf-check b/mp-rude/usr/bin/udp-buf-check index 433273e..dc3cb89 100755 --- a/mp-rude/usr/bin/udp-buf-check +++ b/mp-rude/usr/bin/udp-buf-check @@ -1,4 +1,4 @@ -#!/usr/bin/perl +#! /usr/bin/env perl $sov = shift || 1; while(1){ open UDP, " Date: Thu, 9 Jun 2016 09:28:07 +0200 Subject: [PATCH 04/68] Bump revisjon til 1.1 --- mp-rude/DEBIAN/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mp-rude/DEBIAN/control b/mp-rude/DEBIAN/control index 5d5a908..3d82ee2 100644 --- a/mp-rude/DEBIAN/control +++ b/mp-rude/DEBIAN/control @@ -4,7 +4,7 @@ Section: uninett Architecture: all Depends: rude, crude, traceroute, perl-base, cron Maintainer: jorn.dejong@uninett.no -Version: 1.0 +Version: 1.1 Provides: mp-rude Replaces: mp-rude Description: Software for measuring network using rude/crude and traceroute. -- GitLab From 41ca4529c8ae9e54316a67a442e0dd49888b6faf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Thu, 9 Jun 2016 12:53:49 +0200 Subject: [PATCH 05/68] /var/run er legacy - alt nytt skal bruke /run --- mp-rude/etc/init.d/mp-rude | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/mp-rude/etc/init.d/mp-rude b/mp-rude/etc/init.d/mp-rude index 01c7c49..1e54189 100755 --- a/mp-rude/etc/init.d/mp-rude +++ b/mp-rude/etc/init.d/mp-rude @@ -25,17 +25,17 @@ do_start() { if test ! -p $PIPE ; then mkfifo $PIPE fi - start-stop-daemon --start --background --pidfile /var/run/mp-rude.pid -m --exec $RUDE -- -P 50 -s /etc/mp-rude/rude.conf - start-stop-daemon --start --background --pidfile /var/run/mp-crude.pid -m --exec $CRUDE -- -P 50 -k -l $PIPE - start-stop-daemon --start --background --pidfile /var/run/mp-crude-zip.pid -m --exec /etc/mp-rude/mp-rude-zip -- $PIPE $LOG.gz + start-stop-daemon --start --background --pidfile /run/mp-rude.pid -m --exec $RUDE -- -P 50 -s /etc/mp-rude/rude.conf + start-stop-daemon --start --background --pidfile /run/mp-crude.pid -m --exec $CRUDE -- -P 50 -k -l $PIPE + start-stop-daemon --start --background --pidfile /run/mp-crude-zip.pid -m --exec /usr/share/mp-rude/mp-rude-zip -- $PIPE $LOG.gz log_end_msg $? } do_stop() { log_begin_msg "Stopping rude/crude..." - start-stop-daemon --stop --pidfile /var/run/mp-rude.pid - start-stop-daemon --stop --pidfile /var/run/mp-crude.pid --signal INT - start-stop-daemon --stop --pidfile /var/run/mp-crude-zip.pid --signal INT + start-stop-daemon --stop --pidfile /run/mp-rude.pid + start-stop-daemon --stop --pidfile /run/mp-crude.pid --signal INT + start-stop-daemon --stop --pidfile /run/mp-crude-zip.pid --signal INT sleep 1 fuser -k $PIPE # kill all processes using pipe log_end_msg $? -- GitLab From e39a73326b2b5aed95a6968260d5f0919a8befa8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Thu, 9 Jun 2016 12:54:40 +0200 Subject: [PATCH 06/68] =?UTF-8?q?Bump,=20tidligere=20submitt=20endret=20og?= =?UTF-8?q?s=C3=A5=20lokasjon=20for=20mp-rude-zip?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mp-rude/DEBIAN/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mp-rude/DEBIAN/control b/mp-rude/DEBIAN/control index 3d82ee2..d5fa367 100644 --- a/mp-rude/DEBIAN/control +++ b/mp-rude/DEBIAN/control @@ -4,7 +4,7 @@ Section: uninett Architecture: all Depends: rude, crude, traceroute, perl-base, cron Maintainer: jorn.dejong@uninett.no -Version: 1.1 +Version: 1.2 Provides: mp-rude Replaces: mp-rude Description: Software for measuring network using rude/crude and traceroute. -- GitLab From ff1d592ccd32c3ee8c376c87b2e8279b661889aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Thu, 9 Jun 2016 13:14:54 +0200 Subject: [PATCH 07/68] =?UTF-8?q?Stadig=20vekk=20sm=C3=A5plukk=20for=20?= =?UTF-8?q?=C3=A5=20f=C3=A5=20noe=20til=20=C3=A5=20virke...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mp-rude/DEBIAN/control | 2 +- mp-rude/usr/share/mp-rude/mp-rude-zip | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mp-rude/DEBIAN/control b/mp-rude/DEBIAN/control index d5fa367..d87d05f 100644 --- a/mp-rude/DEBIAN/control +++ b/mp-rude/DEBIAN/control @@ -4,7 +4,7 @@ Section: uninett Architecture: all Depends: rude, crude, traceroute, perl-base, cron Maintainer: jorn.dejong@uninett.no -Version: 1.2 +Version: 1.2.1 Provides: mp-rude Replaces: mp-rude Description: Software for measuring network using rude/crude and traceroute. diff --git a/mp-rude/usr/share/mp-rude/mp-rude-zip b/mp-rude/usr/share/mp-rude/mp-rude-zip index bd2c1d8..5eb9015 100755 --- a/mp-rude/usr/share/mp-rude/mp-rude-zip +++ b/mp-rude/usr/share/mp-rude/mp-rude-zip @@ -1,3 +1,3 @@ #!/bin/sh -/bin/gzip -c $1 > $2 +/bin/gzip < $1 > $2 -- GitLab From d9f11780b7dac1b8a01eb439f20c6afac958d3cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Thu, 9 Jun 2016 16:05:16 +0200 Subject: [PATCH 08/68] =?UTF-8?q?S=C3=A5nn=20skal=20det=20visst=20virke?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mp-rude/usr/share/mp-rude/mp-rude-zip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mp-rude/usr/share/mp-rude/mp-rude-zip b/mp-rude/usr/share/mp-rude/mp-rude-zip index 5eb9015..5e51c95 100755 --- a/mp-rude/usr/share/mp-rude/mp-rude-zip +++ b/mp-rude/usr/share/mp-rude/mp-rude-zip @@ -1,3 +1,3 @@ #!/bin/sh -/bin/gzip < $1 > $2 +cat $1 | /bin/gzip > $2 -- GitLab From 893d9953179e690e965e1a31b1f7a5d27d1a83a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Thu, 9 Jun 2016 16:16:22 +0200 Subject: [PATCH 09/68] Bump :p --- mp-rude/DEBIAN/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mp-rude/DEBIAN/control b/mp-rude/DEBIAN/control index d87d05f..85483a8 100644 --- a/mp-rude/DEBIAN/control +++ b/mp-rude/DEBIAN/control @@ -4,7 +4,7 @@ Section: uninett Architecture: all Depends: rude, crude, traceroute, perl-base, cron Maintainer: jorn.dejong@uninett.no -Version: 1.2.1 +Version: 1.2.2 Provides: mp-rude Replaces: mp-rude Description: Software for measuring network using rude/crude and traceroute. -- GitLab From f299805a07963d45c301757cf57f56fcffd3ffa5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Thu, 25 Aug 2016 12:51:49 +0200 Subject: [PATCH 10/68] =?UTF-8?q?Flyttet=20p=C3=A5=20rude=20og=20crude?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mp-rude/DEBIAN/control | 2 +- mp-rude/etc/init.d/mp-rude | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mp-rude/DEBIAN/control b/mp-rude/DEBIAN/control index 85483a8..ebde7be 100644 --- a/mp-rude/DEBIAN/control +++ b/mp-rude/DEBIAN/control @@ -4,7 +4,7 @@ Section: uninett Architecture: all Depends: rude, crude, traceroute, perl-base, cron Maintainer: jorn.dejong@uninett.no -Version: 1.2.2 +Version: 1.2.3 Provides: mp-rude Replaces: mp-rude Description: Software for measuring network using rude/crude and traceroute. diff --git a/mp-rude/etc/init.d/mp-rude b/mp-rude/etc/init.d/mp-rude index 1e54189..77c9cb9 100755 --- a/mp-rude/etc/init.d/mp-rude +++ b/mp-rude/etc/init.d/mp-rude @@ -12,8 +12,8 @@ PATH=/sbin:/bin:/usr/sbin:/usr/bin [ -f /etc/default/rcS ] && . /etc/default/rcS . /lib/lsb/init-functions -RUDE=/usr/local/bin/rude -CRUDE=/usr/local/bin/crude +RUDE=/usr/bin/rude +CRUDE=/usr/bin/crude PIPE=/var/lib/mp-rude/crude.pipe do_start() { -- GitLab From 57af66b131b66e7a6da527f3f56876a15a7556df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Thu, 25 Aug 2016 12:52:37 +0200 Subject: [PATCH 11/68] --no-cache er fint :p --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index da6093d..747ae02 100644 --- a/README.md +++ b/README.md @@ -22,10 +22,10 @@ must be managed by an administrator or a configuration utility. ### Using Docker ``` -docker build -t mp-rude-debian . +docker build --no-cache -t mp-rude-debian . docker run mp-rude-debian | tar x ``` ### Manually -See build.sh. \ No newline at end of file +See build.sh. -- GitLab From 11c7ed7df4761a9945e8cb2e229c42e80a28533e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Mon, 5 Sep 2016 10:28:11 +0200 Subject: [PATCH 12/68] Script "portet" til sh og gjort mer trygt --- mp-rude/usr/share/mp-rude/make-rude.sh | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/mp-rude/usr/share/mp-rude/make-rude.sh b/mp-rude/usr/share/mp-rude/make-rude.sh index 58f5a5e..ea6e350 100644 --- a/mp-rude/usr/share/mp-rude/make-rude.sh +++ b/mp-rude/usr/share/mp-rude/make-rude.sh @@ -1,6 +1,14 @@ -#!/bin/bash +#! /bin/sh -source /etc/mp-rude/start.conf +set -e -cd /etc/mp-rude -rude-config-maker -target $(hostname -f) rude-list.conf > rude.conf +TMPFILE="/tmp/mp-rude.$$" +RUDEDIR="/etc/mp-rude" + +. "${RUDEDIR}"/start.conf + +if /usr/bin/rude-config-maker -target $(hostname -f) "${RUDEDIR}"/rude-list.conf > "${TMPFILE}" ; then + mv -f "${TMPFILE}" "${RUDEDIR}"/rude.conf +fi + +rm -f "${TMPFILE}" -- GitLab From 05e4c2cc65362f4f4866e6dfe24d7de707d9a0fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Mon, 5 Sep 2016 10:37:44 +0200 Subject: [PATCH 13/68] "Portet" alt til /bin/sh --- mp-rude/usr/share/mp-rude/make-rude.sh | 4 ++-- mp-rude/usr/share/mp-rude/make-start.sh | 7 +++++-- mp-rude/usr/share/mp-rude/start.sh | 15 +++++++++------ mp-rude/usr/share/mp-rude/stop.sh | 7 +++++-- mp-rude/usr/share/mp-rude/trace.sh | 19 +++++++++++-------- 5 files changed, 32 insertions(+), 20 deletions(-) diff --git a/mp-rude/usr/share/mp-rude/make-rude.sh b/mp-rude/usr/share/mp-rude/make-rude.sh index ea6e350..6be6442 100644 --- a/mp-rude/usr/share/mp-rude/make-rude.sh +++ b/mp-rude/usr/share/mp-rude/make-rude.sh @@ -2,11 +2,11 @@ set -e -TMPFILE="/tmp/mp-rude.$$" RUDEDIR="/etc/mp-rude" - . "${RUDEDIR}"/start.conf +TMPFILE="/tmp/mp-rude.$$" + if /usr/bin/rude-config-maker -target $(hostname -f) "${RUDEDIR}"/rude-list.conf > "${TMPFILE}" ; then mv -f "${TMPFILE}" "${RUDEDIR}"/rude.conf fi diff --git a/mp-rude/usr/share/mp-rude/make-start.sh b/mp-rude/usr/share/mp-rude/make-start.sh index 07ffa4f..a4f56d4 100644 --- a/mp-rude/usr/share/mp-rude/make-start.sh +++ b/mp-rude/usr/share/mp-rude/make-start.sh @@ -1,6 +1,9 @@ -#!/bin/sh +#! /bin/sh -source /etc/mp-rude/start.conf +set -e + +RUDEDIR="/etc/mp-rude" +. "${RUDEDIR}"/start.conf . "$bin/make-rude.sh" . "$bin/start.sh" diff --git a/mp-rude/usr/share/mp-rude/start.sh b/mp-rude/usr/share/mp-rude/start.sh index cef488b..4663f9d 100755 --- a/mp-rude/usr/share/mp-rude/start.sh +++ b/mp-rude/usr/share/mp-rude/start.sh @@ -1,12 +1,15 @@ -#!/bin/bash +#! /bin/sh -source /etc/mp-rude/start.conf +set -e -log=$logpath/$date/traceroute_$1 +RUDEDIR="/etc/mp-rude" +. "${RUDEDIR}"/start.conf + +log="${logpath}"/"${date}"/"traceroute_${1}" #Start traceroute -for i in `cat $traceconf` ; do - $trace $i 23:59 > /dev/null 2>&1 & - echo "$!" >> $logpath/pids +for i in $(cat ${traceconf}) ; do + ${trace} ${i} 23:59 > /dev/null 2>&1 & + echo "$!" >> "${logpath}"/pids done diff --git a/mp-rude/usr/share/mp-rude/stop.sh b/mp-rude/usr/share/mp-rude/stop.sh index 5f475bd..7f7b812 100755 --- a/mp-rude/usr/share/mp-rude/stop.sh +++ b/mp-rude/usr/share/mp-rude/stop.sh @@ -1,6 +1,9 @@ -#!/bin/bash +#! /bin/sh -source /etc/mp-rude/start.conf +set -e + +RUDEDIR="/etc/mp-rude" +. "${RUDEDIR}"/start.conf if [ ! -e $logpath/pids ] then diff --git a/mp-rude/usr/share/mp-rude/trace.sh b/mp-rude/usr/share/mp-rude/trace.sh index ae7a259..324d010 100755 --- a/mp-rude/usr/share/mp-rude/trace.sh +++ b/mp-rude/usr/share/mp-rude/trace.sh @@ -1,11 +1,14 @@ -#!/bin/bash +#! /bin/sh -source /etc/mp-rude/start.conf +set -e -mkdir -p $logpath/$date -log=$logpath/$date/traceroute_$1 +RUDEDIR="/etc/mp-rude" +. "${RUDEDIR}"/start.conf -if test $2. -ne . ; then +mkdir -p "${logpath}"/"${date}" +log="${logpath}"/"${date}"/"traceroute_${1}" + +if test ${2}. -ne . ; then end=$(date --date "$2" +%s) else end=$(date --date "2099-12-31" +%s) @@ -14,9 +17,9 @@ fi # ( flock -n 9 || ( echo "=== could not start traceroute - locked $log.lock ===" ; exit 1 ) # > $log.log - while test $(date +%s) -lt $end ; do - date "+%s starttime %T" | gzip -c >> $log.gz - traceroute -q 6 -n $1 2> /dev/null | gzip -c >> $log.gz + while test $(date +%s) -lt ${end} ; do + date "+%s starttime %T" | gzip -c >> ${log}.gz + traceroute -q 6 -n ${1} 2> /dev/null | gzip -c >> ${log}.gz sleep 60 done #) 9> $log.lock & -- GitLab From 4baaadb9c139a86ed6313a009fbb77fab9121092 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Mon, 5 Sep 2016 10:40:02 +0200 Subject: [PATCH 14/68] =?UTF-8?q?Gjort=20script=20kj=C3=B8rbare,=20ryddet?= =?UTF-8?q?=20litt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mp-rude/usr/share/mp-rude/make-rude.sh | 0 mp-rude/usr/share/mp-rude/make-start.sh | 0 mp-rude/usr/share/mp-rude/mp-rude-zip | 8 +++++--- 3 files changed, 5 insertions(+), 3 deletions(-) mode change 100644 => 100755 mp-rude/usr/share/mp-rude/make-rude.sh mode change 100644 => 100755 mp-rude/usr/share/mp-rude/make-start.sh diff --git a/mp-rude/usr/share/mp-rude/make-rude.sh b/mp-rude/usr/share/mp-rude/make-rude.sh old mode 100644 new mode 100755 diff --git a/mp-rude/usr/share/mp-rude/make-start.sh b/mp-rude/usr/share/mp-rude/make-start.sh old mode 100644 new mode 100755 diff --git a/mp-rude/usr/share/mp-rude/mp-rude-zip b/mp-rude/usr/share/mp-rude/mp-rude-zip index 5e51c95..20ed18b 100755 --- a/mp-rude/usr/share/mp-rude/mp-rude-zip +++ b/mp-rude/usr/share/mp-rude/mp-rude-zip @@ -1,3 +1,5 @@ -#!/bin/sh - -cat $1 | /bin/gzip > $2 +#! /bin/sh + +set -e + +cat "${1}" | gzip > "${2}" -- GitLab From b7c2d40086de51d21a90f3a415b15ffb2a43efe8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Mon, 5 Sep 2016 10:44:27 +0200 Subject: [PATCH 15/68] "portet" til sh --- mp-rude/usr/bin/mp-cmd | 14 ++++++++------ mp-rude/usr/bin/mp-hent | 14 ++++++++------ 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/mp-rude/usr/bin/mp-cmd b/mp-rude/usr/bin/mp-cmd index 11bd93e..936fb16 100755 --- a/mp-rude/usr/bin/mp-cmd +++ b/mp-rude/usr/bin/mp-cmd @@ -1,10 +1,12 @@ -#! /bin/bash +#! /bin/sh -mps="$1" -cmd="$2" +set -e -for mp in `cat $mps` ; do - echo henter $mp +mps="${1}" +cmd="${2}" + +for mp in $(cat ${mps}) ; do + echo henter ${mp} # ssh -q root@$mp sysctl net.core.rmem_default - ssh -q root@$mp "$cmd" + ssh -q root@${mp} "${cmd}" done diff --git a/mp-rude/usr/bin/mp-hent b/mp-rude/usr/bin/mp-hent index 61bc532..fa55281 100755 --- a/mp-rude/usr/bin/mp-hent +++ b/mp-rude/usr/bin/mp-hent @@ -1,8 +1,10 @@ -#! /bin/bash +#! /bin/sh -mp-list=$1 -today=`date +%Y-d-d` -for mp in `cat $mp-list`; do - echo $mp - echo rsync -rv --bwlimit=20MB --exclude "*$today*" root@$mp:/var/lib/mp-rude/ /dragonlab/mp-rude/data/$mp +set -e + +mp-list=${1} +today=$(date +%Y-d-d) +for mp in $(cat $mp-list); do + echo ${mp} + echo rsync -rv --bwlimit=20MB --exclude "*${today}*" root@${mp}:/var/lib/mp-rude/ /dragonlab/mp-rude/data/"${mp}" || true done -- GitLab From 5e4340ddaea0fe9ee034bfa9546937e8d82e2d3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Mon, 5 Sep 2016 10:48:01 +0200 Subject: [PATCH 16/68] Ny versjon, bump --- mp-rude/DEBIAN/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mp-rude/DEBIAN/control b/mp-rude/DEBIAN/control index ebde7be..df4ba78 100644 --- a/mp-rude/DEBIAN/control +++ b/mp-rude/DEBIAN/control @@ -4,7 +4,7 @@ Section: uninett Architecture: all Depends: rude, crude, traceroute, perl-base, cron Maintainer: jorn.dejong@uninett.no -Version: 1.2.3 +Version: 1.2.4 Provides: mp-rude Replaces: mp-rude Description: Software for measuring network using rude/crude and traceroute. -- GitLab From 0f92891e8faa3e69bc27ff91dc83d878b4d4c704 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Mon, 5 Sep 2016 11:26:59 +0200 Subject: [PATCH 17/68] Tja, mest kosmetikk --- mp-rude/usr/bin/mp-cmd | 4 ++-- mp-rude/usr/bin/mp-hent | 2 +- mp-rude/usr/share/mp-rude/make-start.sh | 4 ++-- mp-rude/usr/share/mp-rude/start.sh | 2 +- mp-rude/usr/share/mp-rude/stop.sh | 6 +++--- mp-rude/usr/share/mp-rude/trace.sh | 6 +++--- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/mp-rude/usr/bin/mp-cmd b/mp-rude/usr/bin/mp-cmd index 936fb16..7360c1d 100755 --- a/mp-rude/usr/bin/mp-cmd +++ b/mp-rude/usr/bin/mp-cmd @@ -2,8 +2,8 @@ set -e -mps="${1}" -cmd="${2}" +mps="$1" +cmd="$2" for mp in $(cat ${mps}) ; do echo henter ${mp} diff --git a/mp-rude/usr/bin/mp-hent b/mp-rude/usr/bin/mp-hent index fa55281..69d41d8 100755 --- a/mp-rude/usr/bin/mp-hent +++ b/mp-rude/usr/bin/mp-hent @@ -2,7 +2,7 @@ set -e -mp-list=${1} +mp-list=$1 today=$(date +%Y-d-d) for mp in $(cat $mp-list); do echo ${mp} diff --git a/mp-rude/usr/share/mp-rude/make-start.sh b/mp-rude/usr/share/mp-rude/make-start.sh index a4f56d4..1b6a92c 100755 --- a/mp-rude/usr/share/mp-rude/make-start.sh +++ b/mp-rude/usr/share/mp-rude/make-start.sh @@ -5,5 +5,5 @@ set -e RUDEDIR="/etc/mp-rude" . "${RUDEDIR}"/start.conf -. "$bin/make-rude.sh" -. "$bin/start.sh" +. "${bin}"/make-rude.sh +. "${bin}"/start.sh diff --git a/mp-rude/usr/share/mp-rude/start.sh b/mp-rude/usr/share/mp-rude/start.sh index 4663f9d..8a66977 100755 --- a/mp-rude/usr/share/mp-rude/start.sh +++ b/mp-rude/usr/share/mp-rude/start.sh @@ -5,7 +5,7 @@ set -e RUDEDIR="/etc/mp-rude" . "${RUDEDIR}"/start.conf -log="${logpath}"/"${date}"/"traceroute_${1}" +log="${logpath}"/"${date}"/"traceroute_$1" #Start traceroute for i in $(cat ${traceconf}) ; do diff --git a/mp-rude/usr/share/mp-rude/stop.sh b/mp-rude/usr/share/mp-rude/stop.sh index 7f7b812..a411438 100755 --- a/mp-rude/usr/share/mp-rude/stop.sh +++ b/mp-rude/usr/share/mp-rude/stop.sh @@ -5,9 +5,9 @@ set -e RUDEDIR="/etc/mp-rude" . "${RUDEDIR}"/start.conf -if [ ! -e $logpath/pids ] +if [ ! -e "${logpath}"/pids ] then - echo "Pid file does not exist: $logpath/pids" + echo "Pid file does not exist: ${logpath}/pids" exit fi @@ -15,6 +15,6 @@ if test $1. != . ; then sleep $1 # wait a few seconds closer to midnight fi -for i in $(cat $logpath/pids); do kill $i; done +for i in $(cat $logpath/pids); do kill ${i}; done rm $logpath/pids diff --git a/mp-rude/usr/share/mp-rude/trace.sh b/mp-rude/usr/share/mp-rude/trace.sh index 324d010..2660e86 100755 --- a/mp-rude/usr/share/mp-rude/trace.sh +++ b/mp-rude/usr/share/mp-rude/trace.sh @@ -6,9 +6,9 @@ RUDEDIR="/etc/mp-rude" . "${RUDEDIR}"/start.conf mkdir -p "${logpath}"/"${date}" -log="${logpath}"/"${date}"/"traceroute_${1}" +log="${logpath}"/"${date}"/"traceroute_$1" -if test ${2}. -ne . ; then +if test $2. -ne . ; then end=$(date --date "$2" +%s) else end=$(date --date "2099-12-31" +%s) @@ -19,7 +19,7 @@ fi while test $(date +%s) -lt ${end} ; do date "+%s starttime %T" | gzip -c >> ${log}.gz - traceroute -q 6 -n ${1} 2> /dev/null | gzip -c >> ${log}.gz + traceroute -q 6 -n $1 2> /dev/null | gzip -c >> ${log}.gz sleep 60 done #) 9> $log.lock & -- GitLab From 6e7f35c837e8c592d864590f9cd821392445b11d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Mon, 5 Sep 2016 11:27:33 +0200 Subject: [PATCH 18/68] Dette scriptet fungerer helt annerledes enn man trodde --- mp-rude/usr/share/mp-rude/make-rude.sh | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/mp-rude/usr/share/mp-rude/make-rude.sh b/mp-rude/usr/share/mp-rude/make-rude.sh index 6be6442..aca7f91 100755 --- a/mp-rude/usr/share/mp-rude/make-rude.sh +++ b/mp-rude/usr/share/mp-rude/make-rude.sh @@ -2,13 +2,5 @@ set -e -RUDEDIR="/etc/mp-rude" -. "${RUDEDIR}"/start.conf - -TMPFILE="/tmp/mp-rude.$$" - -if /usr/bin/rude-config-maker -target $(hostname -f) "${RUDEDIR}"/rude-list.conf > "${TMPFILE}" ; then - mv -f "${TMPFILE}" "${RUDEDIR}"/rude.conf -fi - -rm -f "${TMPFILE}" +cd "/etc/mp-rude" +/usr/bin/rude-config-maker -target $(hostname -f) rude-list.conf -- GitLab From 18a7ac411a4f21fe30b436c1fa542b38d3081a8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Mon, 5 Sep 2016 11:38:10 +0200 Subject: [PATCH 19/68] Tja, en newline? --- README.md | 2 +- build.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 747ae02..1390708 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ must be managed by an administrator or a configuration utility. ``` docker build --no-cache -t mp-rude-debian . -docker run mp-rude-debian | tar x +docker run -i mp-rude-debian | tar x ``` ### Manually diff --git a/build.sh b/build.sh index 686d70c..f286bb4 100755 --- a/build.sh +++ b/build.sh @@ -4,4 +4,4 @@ version="$(sed -n 's/^Version: //p' mp-rude/DEBIAN/control)" echo "package: $package" echo "version: $version" cp -a mp-rude "${package}_${version}_amd64" -dpkg-deb -b "${package}_${version}_amd64" \ No newline at end of file +dpkg-deb -b "${package}_${version}_amd64" -- GitLab From c34ea72b4156afbf6a185be49e732af25aa3499c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Wed, 7 Sep 2016 11:28:52 +0200 Subject: [PATCH 20/68] Bort med --- etc/mp-rude/make-rude.sh | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 etc/mp-rude/make-rude.sh diff --git a/etc/mp-rude/make-rude.sh b/etc/mp-rude/make-rude.sh deleted file mode 100644 index 6f2822d..0000000 --- a/etc/mp-rude/make-rude.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -mp-rude=/usr/local/mp-rude -cd $mp-rude/etc -$mp-rude/tools/rude-config-maker -target $(hostname -f) rude-list.conf > rude.conf - - - -- GitLab From 8316b2462c6a84428d6ee1ef6d4cf3b6a9189427 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Wed, 7 Sep 2016 11:31:59 +0200 Subject: [PATCH 21/68] Service-fil for systemd --- mp-rude/lib/systemd/system/mp-rude.service | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 mp-rude/lib/systemd/system/mp-rude.service diff --git a/mp-rude/lib/systemd/system/mp-rude.service b/mp-rude/lib/systemd/system/mp-rude.service new file mode 100644 index 0000000..029fa03 --- /dev/null +++ b/mp-rude/lib/systemd/system/mp-rude.service @@ -0,0 +1,16 @@ +[Unit] +Description=Mp-rude init script wrapper +After=network.target + +[Service] +ExecStart=/etc/init.d/mp-rude start +ExecStop=/etc/init.d/mp-rude stop +ExecReload=/etc/init.d/mp-rude reload +PIDFile=/var/run/mp-rude.pid +RemainAfterExit=no +Restart=always +Type=forking + +[Install] +WantedBy=multiuser.target + -- GitLab From 5ac5906872cbffdd03d17b0852b65b6ae93b852a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Wed, 7 Sep 2016 11:40:37 +0200 Subject: [PATCH 22/68] Bort med filer som likevel ikke brukes --- mp-rude/DEBIAN/control | 4 ++-- mp-rude/DEBIAN/postinst | 2 -- mp-rude/usr/bin/mp-cmd | 12 ------------ mp-rude/usr/bin/mp-hent | 10 ---------- 4 files changed, 2 insertions(+), 26 deletions(-) delete mode 100755 mp-rude/usr/bin/mp-cmd delete mode 100755 mp-rude/usr/bin/mp-hent diff --git a/mp-rude/DEBIAN/control b/mp-rude/DEBIAN/control index df4ba78..7e67c34 100644 --- a/mp-rude/DEBIAN/control +++ b/mp-rude/DEBIAN/control @@ -3,8 +3,8 @@ Priority: extra Section: uninett Architecture: all Depends: rude, crude, traceroute, perl-base, cron -Maintainer: jorn.dejong@uninett.no -Version: 1.2.4 +Maintainer: kolbjorn.barmen@uninett.no +Version: 1.2.5 Provides: mp-rude Replaces: mp-rude Description: Software for measuring network using rude/crude and traceroute. diff --git a/mp-rude/DEBIAN/postinst b/mp-rude/DEBIAN/postinst index 8786cb8..f994189 100755 --- a/mp-rude/DEBIAN/postinst +++ b/mp-rude/DEBIAN/postinst @@ -1,8 +1,6 @@ #! /bin/sh chmod 755 \ - /usr/bin/mp-cmd \ - /usr/bin/mp-hent \ /usr/bin/rude-config-maker \ /usr/bin/udp-buf-check diff --git a/mp-rude/usr/bin/mp-cmd b/mp-rude/usr/bin/mp-cmd deleted file mode 100755 index 7360c1d..0000000 --- a/mp-rude/usr/bin/mp-cmd +++ /dev/null @@ -1,12 +0,0 @@ -#! /bin/sh - -set -e - -mps="$1" -cmd="$2" - -for mp in $(cat ${mps}) ; do - echo henter ${mp} -# ssh -q root@$mp sysctl net.core.rmem_default - ssh -q root@${mp} "${cmd}" -done diff --git a/mp-rude/usr/bin/mp-hent b/mp-rude/usr/bin/mp-hent deleted file mode 100755 index 69d41d8..0000000 --- a/mp-rude/usr/bin/mp-hent +++ /dev/null @@ -1,10 +0,0 @@ -#! /bin/sh - -set -e - -mp-list=$1 -today=$(date +%Y-d-d) -for mp in $(cat $mp-list); do - echo ${mp} - echo rsync -rv --bwlimit=20MB --exclude "*${today}*" root@${mp}:/var/lib/mp-rude/ /dragonlab/mp-rude/data/"${mp}" || true -done -- GitLab From 6f42b7b3577aa7c76287dab271911059f0754b2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Wed, 7 Sep 2016 11:53:41 +0200 Subject: [PATCH 23/68] Ryddet bort tomme config-filer, lar dem heller bli "touched" fra postinst --- mp-rude/DEBIAN/control | 2 +- mp-rude/DEBIAN/postinst | 4 ++++ mp-rude/etc/mp-rude/rude-list.conf | 0 mp-rude/etc/mp-rude/rude.conf | 0 mp-rude/etc/mp-rude/start.conf | 10 +++++----- mp-rude/etc/mp-rude/trace.conf | 0 6 files changed, 10 insertions(+), 6 deletions(-) delete mode 100644 mp-rude/etc/mp-rude/rude-list.conf delete mode 100644 mp-rude/etc/mp-rude/rude.conf delete mode 100644 mp-rude/etc/mp-rude/trace.conf diff --git a/mp-rude/DEBIAN/control b/mp-rude/DEBIAN/control index 7e67c34..660fa2d 100644 --- a/mp-rude/DEBIAN/control +++ b/mp-rude/DEBIAN/control @@ -4,7 +4,7 @@ Section: uninett Architecture: all Depends: rude, crude, traceroute, perl-base, cron Maintainer: kolbjorn.barmen@uninett.no -Version: 1.2.5 +Version: 1.2.6 Provides: mp-rude Replaces: mp-rude Description: Software for measuring network using rude/crude and traceroute. diff --git a/mp-rude/DEBIAN/postinst b/mp-rude/DEBIAN/postinst index f994189..7a35170 100755 --- a/mp-rude/DEBIAN/postinst +++ b/mp-rude/DEBIAN/postinst @@ -4,6 +4,10 @@ chmod 755 \ /usr/bin/rude-config-maker \ /usr/bin/udp-buf-check +for conf in rude-list rude trace ; do + touch /etc/mp-rude/${file}.conf +done + systemctl enable mp-rude.service [ -s /var/lib/mp-rude/crude.pipe ] || rm -f /var/lib/mp-rude/crude.pipe diff --git a/mp-rude/etc/mp-rude/rude-list.conf b/mp-rude/etc/mp-rude/rude-list.conf deleted file mode 100644 index e69de29..0000000 diff --git a/mp-rude/etc/mp-rude/rude.conf b/mp-rude/etc/mp-rude/rude.conf deleted file mode 100644 index e69de29..0000000 diff --git a/mp-rude/etc/mp-rude/start.conf b/mp-rude/etc/mp-rude/start.conf index 753a1ff..4c7b5ab 100644 --- a/mp-rude/etc/mp-rude/start.conf +++ b/mp-rude/etc/mp-rude/start.conf @@ -1,5 +1,5 @@ -date=`date +%Y-%m-%d` -bin=/usr/share/mp-rude -logpath=/var/lib/mp-rude -trace=$bin/trace.sh -traceconf=/etc/mp-rude/trace.conf +date="$(date +%Y-%m-%d)" +bin="/usr/share/mp-rude" +logpath="/var/lib/mp-rude" +trace="${bin}"/trace.sh +traceconf="/etc/mp-rude/trace.conf" diff --git a/mp-rude/etc/mp-rude/trace.conf b/mp-rude/etc/mp-rude/trace.conf deleted file mode 100644 index e69de29..0000000 -- GitLab From 03808c6a0ab26b6757f7bd6f69042f807672ccee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Wed, 7 Sep 2016 11:56:33 +0200 Subject: [PATCH 24/68] Wops --- mp-rude/DEBIAN/postinst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mp-rude/DEBIAN/postinst b/mp-rude/DEBIAN/postinst index 7a35170..cb11d5b 100755 --- a/mp-rude/DEBIAN/postinst +++ b/mp-rude/DEBIAN/postinst @@ -5,7 +5,7 @@ chmod 755 \ /usr/bin/udp-buf-check for conf in rude-list rude trace ; do - touch /etc/mp-rude/${file}.conf + touch /etc/mp-rude/${conf}.conf done systemctl enable mp-rude.service -- GitLab From 2dd05cc260b6e51c06d45570ee8b9c431fcb91f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Wed, 7 Sep 2016 11:56:58 +0200 Subject: [PATCH 25/68] Bump! --- mp-rude/DEBIAN/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mp-rude/DEBIAN/control b/mp-rude/DEBIAN/control index 660fa2d..e3c256e 100644 --- a/mp-rude/DEBIAN/control +++ b/mp-rude/DEBIAN/control @@ -4,7 +4,7 @@ Section: uninett Architecture: all Depends: rude, crude, traceroute, perl-base, cron Maintainer: kolbjorn.barmen@uninett.no -Version: 1.2.6 +Version: 1.2.7 Provides: mp-rude Replaces: mp-rude Description: Software for measuring network using rude/crude and traceroute. -- GitLab From 69746f743ea39a4079fa1d44d48189b991dfbe9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Fri, 28 Oct 2016 14:08:56 +0200 Subject: [PATCH 26/68] Legg til, ikke overskriv --- mp-rude/usr/share/mp-rude/mp-rude-zip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mp-rude/usr/share/mp-rude/mp-rude-zip b/mp-rude/usr/share/mp-rude/mp-rude-zip index 20ed18b..7ce6492 100755 --- a/mp-rude/usr/share/mp-rude/mp-rude-zip +++ b/mp-rude/usr/share/mp-rude/mp-rude-zip @@ -2,4 +2,4 @@ set -e -cat "${1}" | gzip > "${2}" +cat "${1}" | gzip >> "${2}" -- GitLab From 788f67fc236a5d337d326783481c79c21e4402c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Fri, 28 Oct 2016 14:10:17 +0200 Subject: [PATCH 27/68] Bump --- mp-rude/DEBIAN/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mp-rude/DEBIAN/control b/mp-rude/DEBIAN/control index e3c256e..b66e3ab 100644 --- a/mp-rude/DEBIAN/control +++ b/mp-rude/DEBIAN/control @@ -4,7 +4,7 @@ Section: uninett Architecture: all Depends: rude, crude, traceroute, perl-base, cron Maintainer: kolbjorn.barmen@uninett.no -Version: 1.2.7 +Version: 1.2.8 Provides: mp-rude Replaces: mp-rude Description: Software for measuring network using rude/crude and traceroute. -- GitLab From be5fd9e269cf0e537f8892eb1917e42b903ec0d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Thu, 10 Nov 2016 15:08:08 +0100 Subject: [PATCH 28/68] =?UTF-8?q?Datostempel=20for=20filnavn,=20n=C3=A5=20?= =?UTF-8?q?ogs=C3=A5=20med=20sekund?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mp-rude/etc/init.d/mp-rude | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mp-rude/etc/init.d/mp-rude b/mp-rude/etc/init.d/mp-rude index 77c9cb9..5cee866 100755 --- a/mp-rude/etc/init.d/mp-rude +++ b/mp-rude/etc/init.d/mp-rude @@ -19,7 +19,7 @@ PIPE=/var/lib/mp-rude/crude.pipe do_start() { log_begin_msg "Starting rude/crude..." HOST=$(hostname) - DATE=$(date +%Y-%m-%d) + DATE=$(date +%Y-%m-%d-%T) LOG=/var/lib/mp-rude/$HOST-$DATE.crude if test ! -p $PIPE ; then -- GitLab From b6363335dafafe04afb7da2d89836c6c7094694b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Thu, 10 Nov 2016 15:12:32 +0100 Subject: [PATCH 29/68] Bump --- mp-rude/DEBIAN/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mp-rude/DEBIAN/control b/mp-rude/DEBIAN/control index b66e3ab..396989e 100644 --- a/mp-rude/DEBIAN/control +++ b/mp-rude/DEBIAN/control @@ -4,7 +4,7 @@ Section: uninett Architecture: all Depends: rude, crude, traceroute, perl-base, cron Maintainer: kolbjorn.barmen@uninett.no -Version: 1.2.8 +Version: 1.2.9 Provides: mp-rude Replaces: mp-rude Description: Software for measuring network using rude/crude and traceroute. -- GitLab From 7bd3d33835da927d04135d942ea77cbb69aa22f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Thu, 17 Nov 2016 14:47:45 +0100 Subject: [PATCH 30/68] =?UTF-8?q?Flikke=20p=C3=A5=20timing=20av=20cronjobb?= =?UTF-8?q?er?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mp-rude/etc/cron.d/mp-rude | 5 +++-- mp-rude/usr/bin/rude-config-maker | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/mp-rude/etc/cron.d/mp-rude b/mp-rude/etc/cron.d/mp-rude index 1979acb..0f911ea 100644 --- a/mp-rude/etc/cron.d/mp-rude +++ b/mp-rude/etc/cron.d/mp-rude @@ -4,5 +4,6 @@ MAILTO=root 0 0 * * * root /usr/sbin/service mp-rude restart # traceroute -23 59 * * * root /usr/share/mp-rude/stop.sh 50 -0 0 * * * root /usr/share/mp-rude/make-start.sh +50 23 * * * root /usr/share/mp-rude/make-rude.sh +59 23 * * * root /usr/share/mp-rude/stop.sh 50 +0 0 * * * root /usr/share/mp-rude/start.sh diff --git a/mp-rude/usr/bin/rude-config-maker b/mp-rude/usr/bin/rude-config-maker index f0556d4..622b5fc 100755 --- a/mp-rude/usr/bin/rude-config-maker +++ b/mp-rude/usr/bin/rude-config-maker @@ -52,7 +52,7 @@ foreach $peer ( sort(keys %peers)){ $ip=gethostbyname($dst); if ($ip && $gotit ){ printf $out "0 %d ON 300%d %s:10001 CONSTANT 100 64\n", $flow_no, $flow_no, inet_ntoa($ip); - printf $out "86390000 %d OFF\n", $flow_no; # varer en dag -10 sek + printf $out "86410000 %d OFF\n", $flow_no; # varer en dag -10 sek @$tracetarget{$src} = () if ! $tracetarget{$src}; push (@{$tracetarget{$src}}, inet_ntoa($ip) ); } -- GitLab From 02b79a65ccf8691b57b006e5f40aa7f65eb93f38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Thu, 17 Nov 2016 14:48:28 +0100 Subject: [PATCH 31/68] Bump, ny versjon --- mp-rude/DEBIAN/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mp-rude/DEBIAN/control b/mp-rude/DEBIAN/control index 396989e..81cdf82 100644 --- a/mp-rude/DEBIAN/control +++ b/mp-rude/DEBIAN/control @@ -4,7 +4,7 @@ Section: uninett Architecture: all Depends: rude, crude, traceroute, perl-base, cron Maintainer: kolbjorn.barmen@uninett.no -Version: 1.2.9 +Version: 1.2.10 Provides: mp-rude Replaces: mp-rude Description: Software for measuring network using rude/crude and traceroute. -- GitLab From 10dd8b7ea31662160c3e271c5d8f9b6d5bce08aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Thu, 1 Dec 2016 11:12:07 +0100 Subject: [PATCH 32/68] Huh, har jeg bygget med wheezy? --- Dockerfile | 2 +- mp-rude/DEBIAN/control | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 3856abf..4ae8dfb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM debian:wheezy +FROM debian:jessie WORKDIR /root/ COPY mp-rude mp-rude COPY build.sh build.sh diff --git a/mp-rude/DEBIAN/control b/mp-rude/DEBIAN/control index 81cdf82..4c02f5c 100644 --- a/mp-rude/DEBIAN/control +++ b/mp-rude/DEBIAN/control @@ -4,7 +4,7 @@ Section: uninett Architecture: all Depends: rude, crude, traceroute, perl-base, cron Maintainer: kolbjorn.barmen@uninett.no -Version: 1.2.10 +Version: 1.2.11 Provides: mp-rude Replaces: mp-rude Description: Software for measuring network using rude/crude and traceroute. -- GitLab From c6892abb76b7b00978488b941119022c9c78f240 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Mon, 5 Dec 2016 01:48:21 +0100 Subject: [PATCH 33/68] source fila med sti direkte, ser ryddigere ut --- mp-rude/usr/share/mp-rude/make-start.sh | 3 +-- mp-rude/usr/share/mp-rude/stop.sh | 3 +-- mp-rude/usr/share/mp-rude/trace.sh | 3 +-- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/mp-rude/usr/share/mp-rude/make-start.sh b/mp-rude/usr/share/mp-rude/make-start.sh index 1b6a92c..0feb89b 100755 --- a/mp-rude/usr/share/mp-rude/make-start.sh +++ b/mp-rude/usr/share/mp-rude/make-start.sh @@ -2,8 +2,7 @@ set -e -RUDEDIR="/etc/mp-rude" -. "${RUDEDIR}"/start.conf +. /etc/mp-rude/start.conf . "${bin}"/make-rude.sh . "${bin}"/start.sh diff --git a/mp-rude/usr/share/mp-rude/stop.sh b/mp-rude/usr/share/mp-rude/stop.sh index a411438..ad6843d 100755 --- a/mp-rude/usr/share/mp-rude/stop.sh +++ b/mp-rude/usr/share/mp-rude/stop.sh @@ -2,8 +2,7 @@ set -e -RUDEDIR="/etc/mp-rude" -. "${RUDEDIR}"/start.conf +. /etc/mp-rude/start.conf if [ ! -e "${logpath}"/pids ] then diff --git a/mp-rude/usr/share/mp-rude/trace.sh b/mp-rude/usr/share/mp-rude/trace.sh index 2660e86..26a4083 100755 --- a/mp-rude/usr/share/mp-rude/trace.sh +++ b/mp-rude/usr/share/mp-rude/trace.sh @@ -2,8 +2,7 @@ set -e -RUDEDIR="/etc/mp-rude" -. "${RUDEDIR}"/start.conf +. /etc/mp-rude/start.conf mkdir -p "${logpath}"/"${date}" log="${logpath}"/"${date}"/"traceroute_$1" -- GitLab From 3e3c5a4bc6e855afee01bf505cfb0ab424029c7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Mon, 5 Dec 2016 01:49:04 +0100 Subject: [PATCH 34/68] Feilmelding dersom pid-fila allerede finnes --- mp-rude/usr/share/mp-rude/start.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/mp-rude/usr/share/mp-rude/start.sh b/mp-rude/usr/share/mp-rude/start.sh index 8a66977..860d005 100755 --- a/mp-rude/usr/share/mp-rude/start.sh +++ b/mp-rude/usr/share/mp-rude/start.sh @@ -2,11 +2,15 @@ set -e -RUDEDIR="/etc/mp-rude" -. "${RUDEDIR}"/start.conf +. /etc/mp-rude/start.conf log="${logpath}"/"${date}"/"traceroute_$1" +if [ -f "${logpath}"/pids ] ; then + echo "ERROR: ${logpath}/pids already exists!" + exit 1 +fi + #Start traceroute for i in $(cat ${traceconf}) ; do ${trace} ${i} 23:59 > /dev/null 2>&1 & -- GitLab From 0f89eb27ac97f008b2c5ec651a0c49679824b0a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Mon, 5 Dec 2016 01:49:25 +0100 Subject: [PATCH 35/68] =?UTF-8?q?Flikke=20p=C3=A5=20variabler=20s=C3=A5=20?= =?UTF-8?q?de=20blir=20litt=20tryggere?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mp-rude/usr/share/mp-rude/stop.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mp-rude/usr/share/mp-rude/stop.sh b/mp-rude/usr/share/mp-rude/stop.sh index ad6843d..9703601 100755 --- a/mp-rude/usr/share/mp-rude/stop.sh +++ b/mp-rude/usr/share/mp-rude/stop.sh @@ -14,6 +14,6 @@ if test $1. != . ; then sleep $1 # wait a few seconds closer to midnight fi -for i in $(cat $logpath/pids); do kill ${i}; done +for i in $(cat $logpath/pids); do kill $i; done -rm $logpath/pids +rm -f "${logpath}"/pids -- GitLab From 953fdf89492bf234e4c25a996254aea0c2a9b40f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Mon, 5 Dec 2016 01:50:14 +0100 Subject: [PATCH 36/68] Bump til ny versjon --- mp-rude/DEBIAN/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mp-rude/DEBIAN/control b/mp-rude/DEBIAN/control index 4c02f5c..ec30ccf 100644 --- a/mp-rude/DEBIAN/control +++ b/mp-rude/DEBIAN/control @@ -4,7 +4,7 @@ Section: uninett Architecture: all Depends: rude, crude, traceroute, perl-base, cron Maintainer: kolbjorn.barmen@uninett.no -Version: 1.2.11 +Version: 1.2.12 Provides: mp-rude Replaces: mp-rude Description: Software for measuring network using rude/crude and traceroute. -- GitLab From 85f4f664c15c11e2251b01fbba11f2fd1da27f7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Mon, 5 Dec 2016 02:00:46 +0100 Subject: [PATCH 37/68] =?UTF-8?q?Sjekk=20at=20pidene=20faktisk=20er=20det?= =?UTF-8?q?=20de=20skal=20v=C3=A6re=20:p?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mp-rude/usr/share/mp-rude/stop.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mp-rude/usr/share/mp-rude/stop.sh b/mp-rude/usr/share/mp-rude/stop.sh index 9703601..a9bda43 100755 --- a/mp-rude/usr/share/mp-rude/stop.sh +++ b/mp-rude/usr/share/mp-rude/stop.sh @@ -14,6 +14,10 @@ if test $1. != . ; then sleep $1 # wait a few seconds closer to midnight fi -for i in $(cat $logpath/pids); do kill $i; done +for pid in $(cat "${logpath}"/pids); do + if [ -f /proc/"${pid}"/cmdline] ; then + grep -q trace.sh /proc/"${pid}" 24184cmdline && kill ${pid} + fi +done rm -f "${logpath}"/pids -- GitLab From 3c432d375dce53481f7fed8a6667dbc34f8c03f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Mon, 5 Dec 2016 02:01:29 +0100 Subject: [PATCH 38/68] Bump igjen --- mp-rude/DEBIAN/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mp-rude/DEBIAN/control b/mp-rude/DEBIAN/control index ec30ccf..efeb70e 100644 --- a/mp-rude/DEBIAN/control +++ b/mp-rude/DEBIAN/control @@ -4,7 +4,7 @@ Section: uninett Architecture: all Depends: rude, crude, traceroute, perl-base, cron Maintainer: kolbjorn.barmen@uninett.no -Version: 1.2.12 +Version: 1.2.13 Provides: mp-rude Replaces: mp-rude Description: Software for measuring network using rude/crude and traceroute. -- GitLab From e173345ec950527c9188f625068d8f69bfddf50a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Mon, 5 Dec 2016 02:03:24 +0100 Subject: [PATCH 39/68] =?UTF-8?q?Urk,=20typo,=20]=20m=C3=A5=20v=C3=A6re=20?= =?UTF-8?q?adskilt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mp-rude/usr/share/mp-rude/stop.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mp-rude/usr/share/mp-rude/stop.sh b/mp-rude/usr/share/mp-rude/stop.sh index a9bda43..5660d8b 100755 --- a/mp-rude/usr/share/mp-rude/stop.sh +++ b/mp-rude/usr/share/mp-rude/stop.sh @@ -15,7 +15,7 @@ if test $1. != . ; then fi for pid in $(cat "${logpath}"/pids); do - if [ -f /proc/"${pid}"/cmdline] ; then + if [ -f /proc/"${pid}"/cmdline ] ; then grep -q trace.sh /proc/"${pid}" 24184cmdline && kill ${pid} fi done -- GitLab From e983590da3f26b41c52dacaac8a71d15db7d36ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Mon, 5 Dec 2016 02:03:52 +0100 Subject: [PATCH 40/68] Bump --- mp-rude/DEBIAN/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mp-rude/DEBIAN/control b/mp-rude/DEBIAN/control index efeb70e..fc6a803 100644 --- a/mp-rude/DEBIAN/control +++ b/mp-rude/DEBIAN/control @@ -4,7 +4,7 @@ Section: uninett Architecture: all Depends: rude, crude, traceroute, perl-base, cron Maintainer: kolbjorn.barmen@uninett.no -Version: 1.2.13 +Version: 1.2.14 Provides: mp-rude Replaces: mp-rude Description: Software for measuring network using rude/crude and traceroute. -- GitLab From 34692acb139767cb1d839154845406e160369bc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Mon, 5 Dec 2016 02:09:07 +0100 Subject: [PATCH 41/68] Hm, kom visst inn noe cut-paste ulykke her Sjekk for pid-katalog, i stedet for cmdline --- mp-rude/usr/share/mp-rude/stop.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mp-rude/usr/share/mp-rude/stop.sh b/mp-rude/usr/share/mp-rude/stop.sh index 5660d8b..24bcd2f 100755 --- a/mp-rude/usr/share/mp-rude/stop.sh +++ b/mp-rude/usr/share/mp-rude/stop.sh @@ -15,8 +15,8 @@ if test $1. != . ; then fi for pid in $(cat "${logpath}"/pids); do - if [ -f /proc/"${pid}"/cmdline ] ; then - grep -q trace.sh /proc/"${pid}" 24184cmdline && kill ${pid} + if [ -d /proc/"${pid}" ] ; then + grep -q trace.sh /proc/"${pid}"/cmdline && kill ${pid} fi done -- GitLab From 2aed1f3b108b2cb47694c833eb1144c38f84b505 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Mon, 5 Dec 2016 02:09:55 +0100 Subject: [PATCH 42/68] Bump :p --- mp-rude/DEBIAN/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mp-rude/DEBIAN/control b/mp-rude/DEBIAN/control index fc6a803..3b9da68 100644 --- a/mp-rude/DEBIAN/control +++ b/mp-rude/DEBIAN/control @@ -4,7 +4,7 @@ Section: uninett Architecture: all Depends: rude, crude, traceroute, perl-base, cron Maintainer: kolbjorn.barmen@uninett.no -Version: 1.2.14 +Version: 1.2.15 Provides: mp-rude Replaces: mp-rude Description: Software for measuring network using rude/crude and traceroute. -- GitLab From af76e7f6aa477605791ab1a7f9d9b60c77533948 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Mon, 5 Dec 2016 02:10:32 +0100 Subject: [PATCH 43/68] =?UTF-8?q?Bump=20p=C3=A5=20nytt,=20hersens=20cache?= =?UTF-8?q?=20p=C3=A5=20apt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mp-rude/DEBIAN/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mp-rude/DEBIAN/control b/mp-rude/DEBIAN/control index 3b9da68..00ebfef 100644 --- a/mp-rude/DEBIAN/control +++ b/mp-rude/DEBIAN/control @@ -4,7 +4,7 @@ Section: uninett Architecture: all Depends: rude, crude, traceroute, perl-base, cron Maintainer: kolbjorn.barmen@uninett.no -Version: 1.2.15 +Version: 1.2.16 Provides: mp-rude Replaces: mp-rude Description: Software for measuring network using rude/crude and traceroute. -- GitLab From 289accf1774edb80795ea144f74e12b9a1684206 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Wed, 31 May 2017 10:18:57 +0200 Subject: [PATCH 44/68] Bump --- mp-rude/DEBIAN/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mp-rude/DEBIAN/control b/mp-rude/DEBIAN/control index 00ebfef..ef879dc 100644 --- a/mp-rude/DEBIAN/control +++ b/mp-rude/DEBIAN/control @@ -4,7 +4,7 @@ Section: uninett Architecture: all Depends: rude, crude, traceroute, perl-base, cron Maintainer: kolbjorn.barmen@uninett.no -Version: 1.2.16 +Version: 1.2.17 Provides: mp-rude Replaces: mp-rude Description: Software for measuring network using rude/crude and traceroute. -- GitLab From 033aaecf4716be9659c25463b19c967b94b9b652 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Thu, 10 Aug 2017 09:51:57 +0200 Subject: [PATCH 45/68] Message-ID: <2ab5c199-77c5-12d1-4ea5-8c0f121314ed@uninett.no> To: From: Olav Kvittem Subject: mp-rude trace.sh oppdatering Date: Wed, 9 Aug 2017 13:41:34 +0200 --- mp-rude/usr/share/mp-rude/trace.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/mp-rude/usr/share/mp-rude/trace.sh b/mp-rude/usr/share/mp-rude/trace.sh index 26a4083..025e73f 100755 --- a/mp-rude/usr/share/mp-rude/trace.sh +++ b/mp-rude/usr/share/mp-rude/trace.sh @@ -5,6 +5,7 @@ set -e . /etc/mp-rude/start.conf mkdir -p "${logpath}"/"${date}" +chmod g+w "${logpath}"/"${date}" log="${logpath}"/"${date}"/"traceroute_$1" if test $2. -ne . ; then -- GitLab From a605187c55d47ed62c14a91cecd27ce330deea08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Thu, 10 Aug 2017 09:53:55 +0200 Subject: [PATCH 46/68] Bump --- mp-rude/DEBIAN/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mp-rude/DEBIAN/control b/mp-rude/DEBIAN/control index ef879dc..d4deca4 100644 --- a/mp-rude/DEBIAN/control +++ b/mp-rude/DEBIAN/control @@ -4,7 +4,7 @@ Section: uninett Architecture: all Depends: rude, crude, traceroute, perl-base, cron Maintainer: kolbjorn.barmen@uninett.no -Version: 1.2.17 +Version: 1.2.18 Provides: mp-rude Replaces: mp-rude Description: Software for measuring network using rude/crude and traceroute. -- GitLab From bbce32faac96cc50ab48beb9c689803be903b4a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Tue, 15 Aug 2017 10:22:39 +0200 Subject: [PATCH 47/68] rude og crude for stretch --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 4ae8dfb..1a48379 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM debian:jessie +FROM debian:stretch WORKDIR /root/ COPY mp-rude mp-rude COPY build.sh build.sh -- GitLab From 12017564c6e74c2bad50470cc744b2a75c241906 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Tue, 15 Aug 2017 10:28:58 +0200 Subject: [PATCH 48/68] Hm (bare leker med git annotate) --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 1a48379..4ae8dfb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM debian:stretch +FROM debian:jessie WORKDIR /root/ COPY mp-rude mp-rude COPY build.sh build.sh -- GitLab From d996725fe0448aa56a5ebb24eb4cd45d36ddd83f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Tue, 15 Aug 2017 10:31:33 +0200 Subject: [PATCH 49/68] =?UTF-8?q?Hopper=20p=C3=A5=20stretch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 4ae8dfb..1a48379 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM debian:jessie +FROM debian:stretch WORKDIR /root/ COPY mp-rude mp-rude COPY build.sh build.sh -- GitLab From 01f36e7f21b354bd246e3ad1864bead6b1ffdf60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Tue, 15 Aug 2017 10:49:15 +0200 Subject: [PATCH 50/68] =?UTF-8?q?Sm=C3=A5plukk?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * La oss bruke umask, så blir rettigheter rett for gruppe uansett * Fjern tomme log-kataloger --- mp-rude/usr/share/mp-rude/trace.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mp-rude/usr/share/mp-rude/trace.sh b/mp-rude/usr/share/mp-rude/trace.sh index 025e73f..3007ccd 100755 --- a/mp-rude/usr/share/mp-rude/trace.sh +++ b/mp-rude/usr/share/mp-rude/trace.sh @@ -1,11 +1,11 @@ #! /bin/sh set -e +umask 0002 . /etc/mp-rude/start.conf mkdir -p "${logpath}"/"${date}" -chmod g+w "${logpath}"/"${date}" log="${logpath}"/"${date}"/"traceroute_$1" if test $2. -ne . ; then @@ -25,3 +25,4 @@ fi #) 9> $log.lock & #echo "$!" >> $logpath/pids +rmdir --ignore-fail-on-non-empty "${logpath}"/[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] -- GitLab From 72a6bee4f6887d136090c10d473e3a6baa62aa53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Tue, 23 Jan 2018 13:49:03 +0100 Subject: [PATCH 51/68] =?UTF-8?q?Oppdatert=20jamf=C3=B8r=20epost=20oak?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-ID: <04ae6335-de16-a674-735c-b0dfd8fb6fcc@uninett.no> --- mp-rude/etc/init.d/mp-rude | 6 +- mp-rude/usr/bin/qstream-gap-ana | 674 ++++++++++++++++++++++++++++++++ 2 files changed, 678 insertions(+), 2 deletions(-) create mode 100755 mp-rude/usr/bin/qstream-gap-ana diff --git a/mp-rude/etc/init.d/mp-rude b/mp-rude/etc/init.d/mp-rude index 5cee866..a69cb8b 100755 --- a/mp-rude/etc/init.d/mp-rude +++ b/mp-rude/etc/init.d/mp-rude @@ -20,14 +20,15 @@ do_start() { log_begin_msg "Starting rude/crude..." HOST=$(hostname) DATE=$(date +%Y-%m-%d-%T) - LOG=/var/lib/mp-rude/$HOST-$DATE.crude + LOG=/var/lib/mp-rude/$HOST-$DATE if test ! -p $PIPE ; then mkfifo $PIPE fi start-stop-daemon --start --background --pidfile /run/mp-rude.pid -m --exec $RUDE -- -P 50 -s /etc/mp-rude/rude.conf start-stop-daemon --start --background --pidfile /run/mp-crude.pid -m --exec $CRUDE -- -P 50 -k -l $PIPE - start-stop-daemon --start --background --pidfile /run/mp-crude-zip.pid -m --exec /usr/share/mp-rude/mp-rude-zip -- $PIPE $LOG.gz + start-stop-daemon --start --background --pidfile /run/mp-crude-zip.pid -m --exec /usr/share/mp-rude/mp-rude-zip -- $PIPE $LOG.crude.gz + start-stop-daemon --start --background --pidfile /run/mp-crude-ana.pid -m --exec /usr/share/mp-rude/qstream-gap-ana -- -index logs-uninett-mp-rude -json /var/log/mp-rude/mp-rude-events.json -minloss 5 -head -win 50 $PIPE log_end_msg $? } @@ -36,6 +37,7 @@ do_stop() { start-stop-daemon --stop --pidfile /run/mp-rude.pid start-stop-daemon --stop --pidfile /run/mp-crude.pid --signal INT start-stop-daemon --stop --pidfile /run/mp-crude-zip.pid --signal INT + start-stop-daemon --stop --pidfile /run/mp-crude-ana.pid --signal INT sleep 1 fuser -k $PIPE # kill all processes using pipe log_end_msg $? diff --git a/mp-rude/usr/bin/qstream-gap-ana b/mp-rude/usr/bin/qstream-gap-ana new file mode 100755 index 0000000..1f61680 --- /dev/null +++ b/mp-rude/usr/bin/qstream-gap-ana @@ -0,0 +1,674 @@ +#!/usr/bin/perl + +# use PDL; +# use PDL::Ops; +# use PDL::Fit::Polynomial; +use Socket; +use Statistics::LineFit; +use Date::Format; + +# date --date 'jan 1 2000' +%s +$min_tx=946681200; +$max_tx=1893452400; # 2030-01-01 +$maxseqreorder=1000; # +$max_small_gap=10; # the max size of a small graph +$max_small_graphs=20; +$max_big_graphs=20; +$late_delay=3; # seconds to doom a packet late + +require "newgetopt.pl"; +$usage="$0 '[-title text] [-minloss n] [-win n] [-graph file] [max-small-graphs n] [-outdir dir] [-head|-rhead] [-id id] [-names file] [-json file] [-v] [file]... +Analyse gaps in a crude packet log + - output a list of statistical qos parameters as text or json + - make linear regression to see the delay trend around a gap + - make curves to show the delay change before and after a gap +Parameters + -rhead n - output headers so that R can make the headings in the text tables + -max-small-graphs n - limit number(20) of graphs to output from small few packet losses + -slep n - number(1000) of crude lines in the circular buffer + -index Elastic Search index name to use + -json file - filename to store json event documents (intended for logstash ?) +"; +&NGetOpt( 'h', 'help', 'id=s', 'slep=s', 'minloss=s', 'win=s', 'max-small-graphs=s', 'head', 'rhead', 'graph=s', 'outdir=s', 'title=s', 'names=s', 'json=s', 'index=s', 'v') || die "$!" . $usage ."\n"; + +if ( $opt_h || $opt_help) { + printf "$usage\n"; + exit(0); +} + +my @heads= qw/id date time tunix x1 nloss tloss seqloss x2 seqtail overlap x3 h_n h_jit h_ddelay h_delay h_min_d h_slope_10 h_slope_20 h_slope_30 h_slope_40 h_slope_50 x4 t_n t_jit t_ddelay t_delay t_min_d t_slope_10 t_slope_20 t_slope_30 t_slope_40 t_slope_50/; + +if ($opt_rhead){ + my @a=split(" ", $head); + my $h=""; + foreach $a (@heads ){ + $h.='"'.$a.'", ' } + chop($h); chop($h); # remove ', ' + + printf 'head<-c(' . $h . ")\n"; +#id", "date", "time", "tunix", "x1", "nloss", "tloss", "seqloss", "x2", "seqtail", "overlap", "x3", "head_n", "head_jit", "head_ddelay", "head_delay", "head_slope", "x4", "tail_n", "tail_jit", "tail_ddelay", "tail_delay", "tail_slope_10", "tail_slope_20")'; printf "\n"; + exit 0; +} + +my %hix=(); # hash on name to index in @heads +foreach $i(0..$#heads){ + $hix{$heads[$i]}=$i; +} +my $coder; # json coder + +if ( $opt_json){ + require JSON::XS; + my $json=$opt_json; + open JSON, ">$json" || die "Could not open $json ; $!"; + # $coder = JSON::XS->new->ascii->pretty->allow_nonref; + $coder = JSON::XS->new->ascii->allow_nonref; + $encoder=$coder->canonical([1]); +} + + +if ($opt_graph){ + require Chart::Clicker; + require Chart::Clicker::Data::Series; + require Chart::Clicker::Data::DataSet; + require Chart::Clicker::Renderer::Point; +} + +if ( $opt_names){ + get_names($opt_names); +} + +$maxslep=$opt_slep || 1000 ; +$maxhead=$opt_win || 10; # packets to keep before +$maxtail=$opt_win || 10; # packets to keep after +$min_slopes=5; # slopes to report on text report +$minloss= $opt_minloss || 1; +$minrecover = $opt_recover || 5; +$outdir=$opt_outdir || "."; +$title=$opt_title || 'Delay'; +$bv_fmt='^([\d]+)\s+([\d\.\:]+)\s+([\d\.]+)\s+([\d\.]+)'; # BV's condensed format for crude +$id= $opt_id || "ukjent" ; +my %npackets=(); # keep track of all ids +my $print_line; +my %duration; # seconds per id + + +read_crude(); + +if ( $opt_v ){ +# foreach $id ( sort keys %dupl){ +# printf STDERR "%-30s %d duplicates\n", $id, $dupl{$id}; +# } + +# foreach $id ( sort keys %reorder){ +# printf STDERR "%-30s %d reordered (%d ppm)\n", $id, $reorder{$id}, $reorder{$id}*10^6/$npackets{$id}; +# } + + foreach $id ( sort keys %npackets){ + + printf STDERR "%-30s lasted %02d:%02d:%02d ( %d seconds ) and has %d small and %d big gaps and lost %.3f small and %.3f big seconds %d resets %d late %d duplicates %d reordered and down %d ppm.\n", $id, + $duration{$id}/3600, $duration{$id}%3600/60, $duration{$id}%60, $duration{$id}, + $nsmall_gaps{$id}, $nbig_gaps{$id}, + $small_time{$id}, $big_time{$id}, $resets{$id}, $late_n{$id}, + $dupl{$id}, $reorder{$id}, + 10**6 * ($small_time{$id} + $big_time{$id}) / $duration{$id}; # ppm + } + printf STDERR "Big gap limit %d packets.\n", $minloss; + +# if (!%nbreak){ +# print STDERR "No big gaps($minloss) found in $npackets packets."; +# } +} + +foreach $id (keys %small_tx){ + print STDERR "ID $id has Tx to small in $small_tx{$id} packets\n"; +} + +close JSON if $opt_json; + +exit(0); + + +################################################################################ +#name id dns ip + +sub get_names { + $file=shift; + if ( open NAMES, "<$file"){ + while(){ + next if /\s*#/; + ($name, $user, $dns, $ip)=split; + $hostname{$ip}=$name; + } + } +} + +################################################################################ + +sub read_crude { + my $tx; # current transmit time + + while(<>){ + + if ( /crude version 0.9.0/){ + # die "### Versjon med feil i Rx : $_"; + } + my $seq; + + if ( /crude version/){ # new file restart sequence control + undef %pseq, %selp, %gap_slep; + } elsif ( ( ($rudeid,$seq, $src, $tx, $rx, $size) = /^ID=(\d+) SEQ=(\d+) SRC=([\w\:\.]+):\d+ .*Tx=([\d\.]+) .*Rx=([\d\.]+) .*SIZE=(\d+)/ ) + || ( ($seq, $src, $tx, $rx) = /$bv_fmt/ ) ){ + + next if $size < 50; # just a sanity filter for the packets i harstad-mp that has SIZE=4 + + if ( $opt_id){ + # use that + } elsif ($hostname{$src}){ + $id=$hostname{$src}; + } else { + if ( $hostname = gethostbyaddr(inet_aton($src), AF_INET) ){ + $id=$hostname{$src}=$hostname; + } else { + $id=$hostname{$src}=$src; + } + } + + if ($tx < $min_tx || $tx > $max_tx){ + $small_tx{$id}++; + next; ######################### + } + + $npackets{$id}++; + my $dt=0; + + if (defined($pseq{$id})){ + my $dseq=$seq - $pseq{$id}; + $dt=$rx-$tx; + $ids{$id}++; + + if ( $dseq == 1 ){ # normal packet + if ( $ntail_seq{$id} > 0 ){ # is recovering + $ntail_seq{$id}++; + if ( $ntail_seq{$id} > $minrecover && $in_gap{$id} ){ + + $emit_graph{$id}=1; + + my $missing= $gap_end_seq{$id} - $head_seq{$id}; + if ( $missing <= $max_small_gap ){ + if ($n_small_graphs{$id} > $max_small_graphs){ + $emit_graph{$id}=0; + } else { + $n_small_graphs{$id}++; + } + } else { + if ( $n_big_graphs{$id} > $max_big_graphs){ + $emit_graph{$id}=0; + } else { + $n_big_graphs{$id}++; + } + } + + emit_break_head($id, $missing ); + $ntail_seq{$id}=0; # + # add the ok part of the postgap tail + # my $bad=$#{$gap_slep{$id}} - $ntail_seq{$id}; + # $bad = 0 if $bad < 0 ; + + for ($lno=0; $lno <= $#{$gap_slep{$id}}; $lno++){ + push( @{$slep{$id}}, $gap_slep{$id}[$lno] ); + $nslep{$id}++; + } + $gap_slep{$id}=[]; # copied - blank it. + + } + } + $pseq{$id}= $seq; + $ptx{$id}=$tx; + + } elsif ($dseq == 0 ){ # + $dupl{$id}++; + } elsif ($dseq < 0 ) { # reordered + if ( $dseq > (-$maxseqreorder) ){ # reordered + $reorder{$id}++; + undef $lost{$id}{$seq}; + if ( $dt > $late_delay ){ # late packet + $late_n{$id}++; + $late_sum{$id}+=$dt; + $late_ss{$id}+=$dt*$dt; + } + } else { # reset + $resets{$id}++; + $seq0{$id}=$seq; + # $pseq{$id}= $seq; + undef $pseq{$id}; + $ptx{$id}=$tx; + } + } elsif ( ( $dseq > 1 ) && ( $nslep{$id} > 0 ) ){ # some packets lost and we got started + + if ( $in_gap{$id} ){ + $ntail_seq{$id} = 1; + } elsif ( $dseq > $minloss ){ # is a new big gap + if ( $ntail_seq{$id} < 1 ){ # start of new gap + my $start=$#{$slep{$id}} - $maxhead; + $start=0 if $start < 0 ; # has to few packets in buffer + $head_start{$id} = $slep{$id}[$start]; + $head_end{$id} = $slep{$id}[$#{$slep{$id}}] ; # last valid record before outage + $head_seq{$id} = $pseq{$id}; + $in_gap{$id}=1; + $ntail_seq{$id} = 1; # restart this if there are more holes + } + $gap_slep{$id}=[]; + $nbig_gaps{$id}++; + $big_gaps{$id}+=$dseq-1; + $big_time{$id}+=$tx-$ptx{$id}; + } else { + $nsmall_gaps{$id}++; + $small_gaps{$id}+=$dseq-1; + $small_time{$id}+=$tx-$ptx{$id}; + } + # note which packets are lost + foreach $lost ( $pseq{$id}+1 .. $seq-1 ){ + $lost{$id}{$lost}=1; + } + $gap_end{$id}=$_; + $gap_end_seq{$id}=$seq; + $ptx{$id}=$tx; + $pseq{$id}= $seq; + } + } else { + $seq0{$id}=$seq; + $pseq{$id}=$seq; + $ptx{$id}=$tx; + $t0{$id}=$tx if !$t0{$id}; + } + + if ( $dt == 0 || $dt <= $late_delay ){ # buffer lines + if ( $in_gap{$id} > 0 ){ # during gap + push(@{$gap_slep{$id}}, $_); + } else { + push(@{$slep{$id}},$_); + $nslep{$id}++; + while ( $nslep{$id} > $maxslep){ + shift @{$slep{$id}}; + $nslep{$id}--; + } + } + } + $in_gap{$id}=0 if $ntail_seq{$id} < 1; + +# handle tail +# count up multiple possibly overlapping tails +# if ($dseq > $minloss && $nslep{$id} > 0 ){ +# if ( $ntail_seq{$id} > 0 ){ + foreach $i (0 .. $#{$ntail{$id}}){ + if ($ntail{$id}[$i] < $maxtail){ + $ntail{$id}[$i]++; + } + } +# } +# +# foreach $i (0 .. $#{$ntail{$id}}){ + if ($nbreak{$id} > 0 && ($ntail{$id}[0] >= $maxtail)){ + my $head=shift(@{$head1{$id}}); + + push(@{$tail{$id}}, report_delay( $id, 'tail', @slep{$id}), 0, 0); + $print_line.= sprintf "%s overlap %8d %2d ", $head, $head_seq{$id}, $#{$ntail{$id}}+1; + shift(@{$ntail{$id}}); + &emit_stats($id); + $nbreak{$id}--; + } +# } +# } +# } + } + + } # while read + foreach $id ( keys %t0 ) { + $duration{$id}=$tx-$t0{$id}; + } + +} + + + +################################################################################## + +sub emit_break_head { + my ($id, $dseq) = @_; + $nbreak{$id}++; +# $tx1=&tx($slep{$id}[$#{$slep{$id}}]); + my $tx1=&tx($head_end{$id}); + my $rx1=&rx($head_end{$id}); +# my $tx2=&tx( $slep{$id}[$#{$slep{$id}} - $ntail_seq{$id} + 2] ); + my $tx2=&tx( $gap_end{$id} ); + my $rx2=&rx( $gap_end{$id} ); + +# my $dt= $rx2 - $tx1 - $min_delay; + my $dt= $tx2 - $tx1 - &p_interval($slep{$id}); # clock from same side more accurate diff + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = + localtime($tx1); + push( @{$head1{$id}}, sprintf "%-25s %4d-%02d-%02d %02d:%02d:%02d %s gap %5d %5.1f %6d ", + $id, $year+1900,$mon+1,$mday, $hour, $min, $sec, $tx1, + $dseq-1, $dt*1000, $head_seq{$id}-$seq0{$id} ); + + push(@{$ntail{$id}}, 0); # remember this break + push(@{$head{$id}}, report_delay($id, 'head', @slep{$id}, $tx1, $dt)); +# @slep{$id}=(); +# $nslep{$id}=0; +} + +################################################################################ +# guess packet interval by meadian transmit interval +sub p_interval{ + my $lines=shift; + my $ptx; + my @tx; + foreach $l(@$lines){ + my $tx=&tx($l); + if ( $ptx){ + push(@tx, $tx-$ptx); + } + $ptx=$tx; + } + my @txs=sort {$a <=> $b} @tx; + my $median=$txs[ int( ($#txs + 1) / 2) ]; + return $median; +} + +sub tx{ + my $l=shift; + my $seq; + if ( $l =~ /Tx=(\d+\.\d+)/ ){ + return $1 ; + } elsif (($seq, $src, $tx, $rx) = $l=~/$bv_fmt/ ){ + return $tx; + } + return -1; +} +sub rx{ + my $l=shift; + my $seq; + if ( $l =~ /Rx=(\d+\.\d+)/ ){ + return $1 ; + } elsif (($seq, $src, $tx, $rx) = $l=~/$bv_fmt/ ){ + return $rx; + } + return -1; +} + +sub emit_stats{ + my $id=shift; + + my @lostseq= (); + @lostseq= keys %{$lost{$id}}; # if %lost{$id}; + +# print "head###########\n",@{$head{$id}}, "tail ####\n",@{$tail{$id}}; +# printf "head %3d %s tail %3d %s\n", $#{$head{$id}}+1, &report_delay($head{$id}), + + if ( $#lostseq >= 0 ){ # still lost packets later (reorder) + $print_line .= sprintf "head %s tail %s\n", shift(@{$head{$id}}), shift(@{$tail{$id}}); + print_line(\$print_line); + } else { + $print_line=''; + # print stderr "reordering fixed : $print_line\n"; + } + + +# $get_tail{$id}=0; +# $ntail{$id}=0; + $tail{$id}=(); + $lost{$id}=(); + +} + +sub report_delay{ # jitter for one delay + my $id=shift; + my $type=shift; # head, tail + my $refl=shift; # array of lines + my $txgap=shift; + my $dt=shift; + + # my @l=@$refl; + my $ptx=0, $prx=0, $sumjit=0, $njit=0, $ndelay=0, $sumdd=0, $sumdelay=0; + my $start=$#$refl-$maxhead; + my $mindelay, $tail_delay; + my @rdelay=(), @rtx=(), $tx0=0; + my @rrx=(), $rx0=0; + my $rudeid, $seq, $src, $dst, $tx, $rx, $size, $pseq; + foreach $i( 0 .. ($#$refl - 0) ){ # skip the last one which might be after the gap + my $rline=\@$refl[$i]; + if ( ( ($rudeid, $seq, $src, $dst, $tx, $rx, $size)= + $$rline =~ /ID=(\d+)\s+SEQ=(\d+)\s+SRC=([\d.:]+)\s+DST=([\d.:]+)\s+Tx=([\d.,]+)\s+Rx=([\d.,]+).+SIZE=(\d+)/) + || ( ($seq, $src, $tx, $rx) = $$rline =~ /$bv_fmt/ ) + ){ + $delay=$rx-$tx; + + if ( $i < $start ) { + if ( !$mindelay || $delay < $mindelay){ + $mindelay = $delay; + } + } else { + if ( !$taildelay || $delay < $taildelay){ + $taildelay = $delay; + } + if ( $tx0 == 0 ) { + $tx0=$tx; + $rx0=$rx; + if ( $type eq "head" ){ # use start of head for tail also + push(@{$txgap{$id}}, $txgap); # stack head if nested gaps + } elsif ( $type eq "tail"){ # pull from stacked head + $txgap=shift( @{$txgap{$id}} ); + } + } + $sumdelay+=$delay; + $ndelay++; + + if ($ptx && ($seq - $pseq) == 1){ + $dtx=$tx-$ptx; + $drx=$rx-$prx; + $jit=$drx-$dtx; + $sumjit+=$jit; + $njit++; + $sumdd+=$delay; + push(@rtx, ($tx-$tx0)*1000); #ms + push(@rrx, ($rx-$rx0)*1000); #ms + push(@rdelay, $delay); + } + $ptx=$tx; + $prx=$rx; + $pdelay=$delay; + $pseq=$seq; + } + } + } + + for ($i=0; $i<=$#rdelay; $i++){ # relative delay in ms + $rdelay[$i]=($rdelay[$i]-$mindelay)*1000; + } + + $sumdd=$sumdd-$njit*$mindelay; # sum differences from minimum + + if($njit> 0 && $ndelay > 0){ + $lineFit = Statistics::LineFit->new(); + my @slope=(), $slopes=""; my $lr_start; my $lr_a; my $lr_b; + + my $cc; # chart object + my $ctx; # chart context + my $ctx_lr; + + if ( $opt_graph && $emit_graph{$id}){ + $cc = Chart::Clicker->new( width=>800, height=>600); + if ( $dt > 0) { + $cc->title->text(sprintf "$title $type $id %.3fs", $dt); + } else { + $cc->title->text("$title $type $id"); + } + $ctx = $cc->get_context('default'); + $ctx->renderer(Chart::Clicker::Renderer::Point->new); +# $ctx->renderer(Chart::Clicker::Renderer::Line->new); + $ctx->domain_axis->label('Time(ms)'); + $ctx->range_axis->label('d-delay(ms)'); + + my $series = Chart::Clicker::Data::Series->new( name => 'delay', + keys => \@rtx, values => \@rdelay); + my $ds = Chart::Clicker::Data::DataSet->new(series => [ $series ]); + $cc->add_to_datasets($ds); + + $ctx_lr=Chart::Clicker::Context->new( name => 'LR' ); + $ctx_lr->renderer(Chart::Clicker::Renderer::Line->new); + $ctx_lr->share_axes_with($ctx); + $cc->add_to_contexts($ctx_lr); + } + + foreach ( $i=0; $i < $#rtx-4; $i+=10){ + my $lr_start, $lr_end; + if ( $type eq "head"){ # analyze head from end and tail from start + $lr_start=$i; $lr_end=$#rtx; + } else { + $lr_start=0; $lr_end=min($i+10,$#rtx); + } + + my @drtx=@rtx[$lr_start..$lr_end]; + my @drdelay=@rdelay[$lr_start..$lr_end]; + +# virker ikke +# ($yfit, $coeffs) = fitpoly1d \@drtx, \@drdelay, 4; # Fit a cubi + + $lineFit->setData ( \@drtx, \@drdelay ); + if (! ( ($intercept, $slope) = $lineFit->coefficients() ) ){ + warn "File $ARGV : $!"; + } + push(@slope, sprintf("%9.3f ", $slope) ); + # $slopes.=sprintf("%9.3f ", $slope); + $lr_a=$slope; $lr_b=$intercept; + + if ( $opt_graph && $emit_graph{$id}){ + my $x1=$rtx[$lr_start], $x2=$rtx[$lr_end]; +# for ( $x=$x1; $x<=$x2; $x+=($x2-$x1)/50){ +# for ( $x=$x1; $x<=$x2; $x++){ +# $cc->add_data('LR-'.$i, {$x => $lr_a*$x+$lr_b}); +# } + + my $series=Chart::Clicker::Data::Series->new( name => 'LR-'.$i, + keys=> [$x1, $x2], values=> [$lr_a*$x1+$lr_b, $lr_a*$x2+$lr_b] ); + my $ds = Chart::Clicker::Data::DataSet->new(series => [ $series ]); + $ds->context('LR'); + $cc->add_to_datasets($ds); + } + + # $cc->add_data('LR', {$x1 => $lr_a*$x+$lr_b, $lr_a*$x2+$lr_b}); + } + if ( $opt_graph && $emit_graph{$id}){ +# $ctx->domain_axis->range->max( $rtx[$#rtx]*1.05); +# $ctx->range_axis->range->max( $rdelay[$#rdelay]*1.05); + + $cc->write_output( sprintf("%s/%s-%.3f-loss-%s%s",$outdir,$id,$txgap,$type,$opt_graph)) + || warn "Chart error : $!"; + undef $cc; # try to free the space used by the graph + } + + # make sure all columns are filled in + while ($#slope < ($min_slopes-1)){ push(@slope, "-"); } + $slopes=join(' ', @slope); + + return sprintf "%3d %9.3f %9.3f %9.3f %9.3f %s", $njit, $sumjit/$njit*1000, $sumdd/$njit*1000, $sumdelay/$ndelay*1000, $taildelay*1000, $slopes; + } else { + return sprintf "%3d %5.3f %5.3f", 0, 0, 0; + } + + +} + +sub min{ + return $_[0] if $_[0] <= $_[1] ; + return $_[1]; +} + +sub max{ + my $ref=shift; + my $max; + foreach $v( @$ref){ + $max = $v if !$max || $max < $v; + } + return max; +} + +sub headmaker{ + my $line=shift; + my @l=split //, $line; + $p=0; + for ($i=0;$i<$#l;$i++){ + if ( $l[$i] eq " " && $l[$i-1] ne " "){ + $form.=sprintf "%%%ds ", $i-$p-1; + $p=$i; + } + } + return $form; +} + +sub print_line{ + my $line=shift; + if ( ! $head_done ){ + if($opt_head && $opt_v){ + printf headmaker($$line)."\n", @heads; + } + $head_done=1; + } + if ( $opt_json){ + emit_json($line); + } else { + print $$line; + } + $$line=''; +} + +sub emit_json{ + my $line=shift; + if ( $$line =~ /\d\d\d\d-\d\d-\d\d\s+\d\d:/){ #looks like report line : yyy-mm-dd hh: + my @f=split(/\s+/, $$line); + my $from=$f[$hix{id}]; + my $to=`hostname`; chomp($to); + + my ($date, $t)=split(/ /, $json->{datetime}); + my @gt=gmtime $json->{timestamp}; + my $datems= sprintf "%s.%03d", strftime("%Y-%m-%dT%T", @gt), int($json->{timestamp}*1000)%1000 ; + + my $json= { + "@date" => $datems, + "from" => $from, "to" => $to, + "from_raw" => from, "to_raw" => $to, + "timestamp"=> $f[$hix{tunix}], + "timestamp_zone" => "GMT", + "datetime"=> $f[$hix{date}] ." ". $f[$hix{time}], + "tloss"=>$f[$hix{tloss}] , + "h_n" => $f[$hix{h_n}], + "h_jit" => $f[$hix{h_jit}], + "h_ddelay" => $f[$hix{h_ddelay}], + "h_delay" => $f[$hix{h_delay}], + "h_min_d" => $f[$hix{h_min_d}], + "h_slope_10" => $f[$hix{h_slope_10}], + "h_slope_20" => $f[$hix{h_slope_20}], + "h_slope_30" => $f[$hix{h_slope_30}], + "h_slope_40" => $f[$hix{h_slope_40}], + "h_slope_50" => $f[$hix{h_slope_50}], + "t_n" => $f[$hix{t_n}], + "t_jit" => $f[$hix{t_jit}], + "t_ddelay" => $f[$hix{t_ddelay}], + "t_delay" => $f[$hix{t_delay}], + "t_min_d" => $f[$hix{t_min_d}], + "t_slope_10" => $f[$hix{t_slope_10}], + "t_slope_20" => $f[$hix{t_slope_20}], + "t_slope_30" => $f[$hix{t_slope_30}], + "t_slope_40" => $f[$hix{t_slope_40}], + "t_slope_50" => $f[$hix{t_slope_50}], + "overlap" => $f[$hix{overlap}] + # "" => $f[$hix{}], + }; + + print JSON $coder->encode( $json) ."\n"; + + } else { + warn "Could not parse line : $$line"; + } +} + -- GitLab From 8363b9d30b0e0447738fde65620a643e7d838716 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Tue, 23 Jan 2018 13:51:13 +0100 Subject: [PATCH 52/68] =?UTF-8?q?Oppdatert=20jamf=C3=B8r=20epost=20oak:?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-ID: <04ae6335-de16-a674-735c-b0dfd8fb6fcc@uninett.no> --- mp-rude/DEBIAN/control | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mp-rude/DEBIAN/control b/mp-rude/DEBIAN/control index d4deca4..d5f8745 100644 --- a/mp-rude/DEBIAN/control +++ b/mp-rude/DEBIAN/control @@ -2,9 +2,9 @@ Package: mp-rude Priority: extra Section: uninett Architecture: all -Depends: rude, crude, traceroute, perl-base, cron +Depends: rude, crude, traceroute, perl-base, cron, libstatistics-linefit-perl, libjson-xs-perl Maintainer: kolbjorn.barmen@uninett.no -Version: 1.2.18 +Version: 1.2.19 Provides: mp-rude Replaces: mp-rude Description: Software for measuring network using rude/crude and traceroute. -- GitLab From 3dda79decae39def8460dd3d688cd3859dde5d4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Tue, 23 Jan 2018 13:55:05 +0100 Subject: [PATCH 53/68] =?UTF-8?q?Ingen=20grunn=20til=20at=20pakken=20skal?= =?UTF-8?q?=20v=C3=A6re=20amd64?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sh b/build.sh index f286bb4..9170a47 100755 --- a/build.sh +++ b/build.sh @@ -1,7 +1,7 @@ -#!/bin/sh +#! /bin/bash package="$(sed -n 's/^Package: //p' mp-rude/DEBIAN/control)" version="$(sed -n 's/^Version: //p' mp-rude/DEBIAN/control)" echo "package: $package" echo "version: $version" -cp -a mp-rude "${package}_${version}_amd64" -dpkg-deb -b "${package}_${version}_amd64" +cp -a mp-rude "${package}_${version}_all" +dpkg-deb -b "${package}_${version}_all" -- GitLab From 76bbf48fbc7ce44cbf5f7ded460265c19d82ec4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Tue, 23 Jan 2018 13:56:02 +0100 Subject: [PATCH 54/68] La bygge-scriptet fikse version --- mp-rude/DEBIAN/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mp-rude/DEBIAN/control b/mp-rude/DEBIAN/control index d5f8745..362b2ac 100644 --- a/mp-rude/DEBIAN/control +++ b/mp-rude/DEBIAN/control @@ -4,7 +4,7 @@ Section: uninett Architecture: all Depends: rude, crude, traceroute, perl-base, cron, libstatistics-linefit-perl, libjson-xs-perl Maintainer: kolbjorn.barmen@uninett.no -Version: 1.2.19 +Version: {VERSION} Provides: mp-rude Replaces: mp-rude Description: Software for measuring network using rude/crude and traceroute. -- GitLab From bb26e40bb2c71e64ebf79cef383fd85b177fd1cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Tue, 23 Jan 2018 14:16:19 +0100 Subject: [PATCH 55/68] Oppdatert build.sh litt --- build.sh | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/build.sh b/build.sh index 9170a47..f849db9 100755 --- a/build.sh +++ b/build.sh @@ -1,7 +1,21 @@ #! /bin/bash -package="$(sed -n 's/^Package: //p' mp-rude/DEBIAN/control)" -version="$(sed -n 's/^Version: //p' mp-rude/DEBIAN/control)" -echo "package: $package" -echo "version: $version" -cp -a mp-rude "${package}_${version}_all" -dpkg-deb -b "${package}_${version}_all" + +set -e + +rm -f *.deb + +apt-get update +apt-get -y upgrade + +package="mp-rude" +version="1.2.19" +#version=$(git describe|perl -p -e 'chomp;s/v([^-]+)(-(\d+)-g.+)?$/\1+\3/;s/\+$//') + + +target="${package}_${version}_all" + +rm -rf "$target" +cp -dR --preserve=mode "${package}" "$target" +sed -i -e "s/{VERSION}/${version}/" "${target}/DEBIAN/control" +dpkg -b "$target" + -- GitLab From 81aa4b5947599daf946d6504a6e5c7d5eb8bed91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Tue, 23 Jan 2018 15:00:09 +0100 Subject: [PATCH 56/68] =?UTF-8?q?Wops,=20fil=20p=C3=A5=20feil=20plass?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.sh | 2 +- mp-rude/usr/{bin => share/mp-rude}/qstream-gap-ana | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename mp-rude/usr/{bin => share/mp-rude}/qstream-gap-ana (100%) diff --git a/build.sh b/build.sh index f849db9..d40c8d3 100755 --- a/build.sh +++ b/build.sh @@ -8,7 +8,7 @@ apt-get update apt-get -y upgrade package="mp-rude" -version="1.2.19" +version="1.2.20" #version=$(git describe|perl -p -e 'chomp;s/v([^-]+)(-(\d+)-g.+)?$/\1+\3/;s/\+$//') diff --git a/mp-rude/usr/bin/qstream-gap-ana b/mp-rude/usr/share/mp-rude/qstream-gap-ana similarity index 100% rename from mp-rude/usr/bin/qstream-gap-ana rename to mp-rude/usr/share/mp-rude/qstream-gap-ana -- GitLab From d9bdb178c139acb88f71f3b975a0bb3c58631d90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Tue, 23 Jan 2018 15:05:27 +0100 Subject: [PATCH 57/68] Lag log-katalogen dersom den mangler --- build.sh | 2 +- mp-rude/etc/init.d/mp-rude | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/build.sh b/build.sh index d40c8d3..3b3ea42 100755 --- a/build.sh +++ b/build.sh @@ -8,7 +8,7 @@ apt-get update apt-get -y upgrade package="mp-rude" -version="1.2.20" +version="1.2.21" #version=$(git describe|perl -p -e 'chomp;s/v([^-]+)(-(\d+)-g.+)?$/\1+\3/;s/\+$//') diff --git a/mp-rude/etc/init.d/mp-rude b/mp-rude/etc/init.d/mp-rude index a69cb8b..a3dfc44 100755 --- a/mp-rude/etc/init.d/mp-rude +++ b/mp-rude/etc/init.d/mp-rude @@ -1,4 +1,4 @@ -#!/usr/bin/env sh +#! /usr/bin/env sh ### BEGIN INIT INFO # Provides: mp-rude # Required-Start: $network @@ -22,6 +22,8 @@ do_start() { DATE=$(date +%Y-%m-%d-%T) LOG=/var/lib/mp-rude/$HOST-$DATE + mkdir -p "${LOG%/*}" + if test ! -p $PIPE ; then mkfifo $PIPE fi -- GitLab From c89ec6722322c6af882c58d2ff000469e3aac041 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Tue, 23 Jan 2018 15:10:28 +0100 Subject: [PATCH 58/68] Urk... flere log-steder --- build.sh | 2 +- mp-rude/etc/init.d/mp-rude | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sh b/build.sh index 3b3ea42..8a934a7 100755 --- a/build.sh +++ b/build.sh @@ -8,7 +8,7 @@ apt-get update apt-get -y upgrade package="mp-rude" -version="1.2.21" +version="1.2.22" #version=$(git describe|perl -p -e 'chomp;s/v([^-]+)(-(\d+)-g.+)?$/\1+\3/;s/\+$//') diff --git a/mp-rude/etc/init.d/mp-rude b/mp-rude/etc/init.d/mp-rude index a3dfc44..a00bdce 100755 --- a/mp-rude/etc/init.d/mp-rude +++ b/mp-rude/etc/init.d/mp-rude @@ -22,7 +22,7 @@ do_start() { DATE=$(date +%Y-%m-%d-%T) LOG=/var/lib/mp-rude/$HOST-$DATE - mkdir -p "${LOG%/*}" + mkdir -p "/var/log/mp-rude" if test ! -p $PIPE ; then mkfifo $PIPE -- GitLab From e6f56fa89a18b97d026eee036a8bdc6338096869 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Tue, 23 Jan 2018 15:23:33 +0100 Subject: [PATCH 59/68] La logfila hete .log --- build.sh | 2 +- mp-rude/etc/init.d/mp-rude | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sh b/build.sh index 8a934a7..586377e 100755 --- a/build.sh +++ b/build.sh @@ -8,7 +8,7 @@ apt-get update apt-get -y upgrade package="mp-rude" -version="1.2.22" +version="1.2.23" #version=$(git describe|perl -p -e 'chomp;s/v([^-]+)(-(\d+)-g.+)?$/\1+\3/;s/\+$//') diff --git a/mp-rude/etc/init.d/mp-rude b/mp-rude/etc/init.d/mp-rude index a00bdce..80f4d1c 100755 --- a/mp-rude/etc/init.d/mp-rude +++ b/mp-rude/etc/init.d/mp-rude @@ -30,7 +30,7 @@ do_start() { start-stop-daemon --start --background --pidfile /run/mp-rude.pid -m --exec $RUDE -- -P 50 -s /etc/mp-rude/rude.conf start-stop-daemon --start --background --pidfile /run/mp-crude.pid -m --exec $CRUDE -- -P 50 -k -l $PIPE start-stop-daemon --start --background --pidfile /run/mp-crude-zip.pid -m --exec /usr/share/mp-rude/mp-rude-zip -- $PIPE $LOG.crude.gz - start-stop-daemon --start --background --pidfile /run/mp-crude-ana.pid -m --exec /usr/share/mp-rude/qstream-gap-ana -- -index logs-uninett-mp-rude -json /var/log/mp-rude/mp-rude-events.json -minloss 5 -head -win 50 $PIPE + start-stop-daemon --start --background --pidfile /run/mp-crude-ana.pid -m --exec /usr/share/mp-rude/qstream-gap-ana -- -index logs-uninett-mp-rude -json /var/log/mp-rude/mp-rude-events.log -minloss 5 -head -win 50 $PIPE log_end_msg $? } -- GitLab From c9ddd3ae0c1708b4dd5fe107aba9aaefd8e237e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Tue, 23 Jan 2018 21:18:29 +0100 Subject: [PATCH 60/68] Bump Message-ID: --- build.sh | 2 +- mp-rude/etc/init.d/mp-rude | 2 +- mp-rude/usr/share/mp-rude/mp-rude-ana | 12 ++++++++++++ 3 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 mp-rude/usr/share/mp-rude/mp-rude-ana diff --git a/build.sh b/build.sh index 586377e..68450ea 100755 --- a/build.sh +++ b/build.sh @@ -8,7 +8,7 @@ apt-get update apt-get -y upgrade package="mp-rude" -version="1.2.23" +version="1.2.24" #version=$(git describe|perl -p -e 'chomp;s/v([^-]+)(-(\d+)-g.+)?$/\1+\3/;s/\+$//') diff --git a/mp-rude/etc/init.d/mp-rude b/mp-rude/etc/init.d/mp-rude index 80f4d1c..88c4ea2 100755 --- a/mp-rude/etc/init.d/mp-rude +++ b/mp-rude/etc/init.d/mp-rude @@ -30,7 +30,7 @@ do_start() { start-stop-daemon --start --background --pidfile /run/mp-rude.pid -m --exec $RUDE -- -P 50 -s /etc/mp-rude/rude.conf start-stop-daemon --start --background --pidfile /run/mp-crude.pid -m --exec $CRUDE -- -P 50 -k -l $PIPE start-stop-daemon --start --background --pidfile /run/mp-crude-zip.pid -m --exec /usr/share/mp-rude/mp-rude-zip -- $PIPE $LOG.crude.gz - start-stop-daemon --start --background --pidfile /run/mp-crude-ana.pid -m --exec /usr/share/mp-rude/qstream-gap-ana -- -index logs-uninett-mp-rude -json /var/log/mp-rude/mp-rude-events.log -minloss 5 -head -win 50 $PIPE + start-stop-daemon --start --background --pidfile /run/mp-crude-ana.pid -m --exec /usr/share/mp-rude/mp-rude-ana -- logs-uninett-mp-rude $PIPE /var/log/mp-rude/mp-rude-events.log log_end_msg $? } diff --git a/mp-rude/usr/share/mp-rude/mp-rude-ana b/mp-rude/usr/share/mp-rude/mp-rude-ana new file mode 100644 index 0000000..309ce54 --- /dev/null +++ b/mp-rude/usr/share/mp-rude/mp-rude-ana @@ -0,0 +1,12 @@ +#! /bin/sh + +set -e + +INDEX=$1 +PIPE=$2 +LOG=$3 + +crude -d $PIPE | /usr/share/mp-rude/qstream-gap-ana -index $INDEX -json +$LOG  -minloss 5 -head -win 50 - + +exit 0 -- GitLab From 35b8433148bb337b1b69b1b3f5a2cb1a65e385d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Tue, 23 Jan 2018 21:27:32 +0100 Subject: [PATCH 61/68] =?UTF-8?q?Bump,=20fikset=20litt=20p=C3=A5=20init-sc?= =?UTF-8?q?ript?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.sh | 2 +- mp-rude/etc/init.d/mp-rude | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/build.sh b/build.sh index 68450ea..84c9345 100755 --- a/build.sh +++ b/build.sh @@ -8,7 +8,7 @@ apt-get update apt-get -y upgrade package="mp-rude" -version="1.2.24" +version="1.2.25" #version=$(git describe|perl -p -e 'chomp;s/v([^-]+)(-(\d+)-g.+)?$/\1+\3/;s/\+$//') diff --git a/mp-rude/etc/init.d/mp-rude b/mp-rude/etc/init.d/mp-rude index 88c4ea2..72bff78 100755 --- a/mp-rude/etc/init.d/mp-rude +++ b/mp-rude/etc/init.d/mp-rude @@ -27,10 +27,10 @@ do_start() { if test ! -p $PIPE ; then mkfifo $PIPE fi - start-stop-daemon --start --background --pidfile /run/mp-rude.pid -m --exec $RUDE -- -P 50 -s /etc/mp-rude/rude.conf - start-stop-daemon --start --background --pidfile /run/mp-crude.pid -m --exec $CRUDE -- -P 50 -k -l $PIPE - start-stop-daemon --start --background --pidfile /run/mp-crude-zip.pid -m --exec /usr/share/mp-rude/mp-rude-zip -- $PIPE $LOG.crude.gz - start-stop-daemon --start --background --pidfile /run/mp-crude-ana.pid -m --exec /usr/share/mp-rude/mp-rude-ana -- logs-uninett-mp-rude $PIPE /var/log/mp-rude/mp-rude-events.log + start-stop-daemon --start --background --pidfile /run/mp-rude.pid -m --exec $RUDE -- -P 50 -s /etc/mp-rude/rude.conf + start-stop-daemon --start --background --pidfile /run/mp-crude.pid -m --exec $CRUDE -- -P 50 -k -l $PIPE + start-stop-daemon --start --background --pidfile /run/mp-crude-zip.pid -m --exec /usr/share/mp-rude/mp-rude-zip -- $PIPE $LOG.crude.gz + start-stop-daemon --start --background --pidfile /run/mp-crude-ana.pid -m --exec /usr/share/mp-rude/mp-rude-ana -- logs-uninett-mp-rude $PIPE /var/log/mp-rude/mp-rude-events.log log_end_msg $? } -- GitLab From c81bb1d0820c866d04a60b908a235e4de51ce545 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Tue, 23 Jan 2018 21:36:09 +0100 Subject: [PATCH 62/68] Fikset rettigheter --- build.sh | 2 +- mp-rude/usr/share/mp-rude/mp-rude-ana | 0 2 files changed, 1 insertion(+), 1 deletion(-) mode change 100644 => 100755 mp-rude/usr/share/mp-rude/mp-rude-ana diff --git a/build.sh b/build.sh index 84c9345..2c57008 100755 --- a/build.sh +++ b/build.sh @@ -8,7 +8,7 @@ apt-get update apt-get -y upgrade package="mp-rude" -version="1.2.25" +version="1.2.26" #version=$(git describe|perl -p -e 'chomp;s/v([^-]+)(-(\d+)-g.+)?$/\1+\3/;s/\+$//') diff --git a/mp-rude/usr/share/mp-rude/mp-rude-ana b/mp-rude/usr/share/mp-rude/mp-rude-ana old mode 100644 new mode 100755 -- GitLab From d860c398369a1c91602219c837180125d2e8e661 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Wed, 24 Jan 2018 10:05:22 +0100 Subject: [PATCH 63/68] Linjeskiftproblem --- build.sh | 2 +- mp-rude/usr/share/mp-rude/mp-rude-ana | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/build.sh b/build.sh index 2c57008..b6e5f5c 100755 --- a/build.sh +++ b/build.sh @@ -8,7 +8,7 @@ apt-get update apt-get -y upgrade package="mp-rude" -version="1.2.26" +version="1.2.27" #version=$(git describe|perl -p -e 'chomp;s/v([^-]+)(-(\d+)-g.+)?$/\1+\3/;s/\+$//') diff --git a/mp-rude/usr/share/mp-rude/mp-rude-ana b/mp-rude/usr/share/mp-rude/mp-rude-ana index 309ce54..b33b3a1 100755 --- a/mp-rude/usr/share/mp-rude/mp-rude-ana +++ b/mp-rude/usr/share/mp-rude/mp-rude-ana @@ -6,7 +6,8 @@ INDEX=$1 PIPE=$2 LOG=$3 -crude -d $PIPE | /usr/share/mp-rude/qstream-gap-ana -index $INDEX -json -$LOG  -minloss 5 -head -win 50 - +crude -d $PIPE | + /usr/share/mp-rude/qstream-gap-ana \ + -index $INDEX -json $LOG  -minloss 5 -head -win 50 - exit 0 -- GitLab From 9f985ce6d094d237ba3a38d1828443cb2dc3444a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Wed, 24 Jan 2018 10:13:21 +0100 Subject: [PATCH 64/68] =?UTF-8?q?Linjeskift=20som=20lagde=20kr=C3=B8ll=20i?= =?UTF-8?q?=20filnavn=20p=C3=A5=20log=20(!)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mp-rude/usr/share/mp-rude/mp-rude-ana | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mp-rude/usr/share/mp-rude/mp-rude-ana b/mp-rude/usr/share/mp-rude/mp-rude-ana index b33b3a1..b9fbce6 100755 --- a/mp-rude/usr/share/mp-rude/mp-rude-ana +++ b/mp-rude/usr/share/mp-rude/mp-rude-ana @@ -8,6 +8,6 @@ LOG=$3 crude -d $PIPE | /usr/share/mp-rude/qstream-gap-ana \ - -index $INDEX -json $LOG  -minloss 5 -head -win 50 - + -index $INDEX -json $LOG -minloss 5 -head -win 50 - exit 0 -- GitLab From efd3ab3156fb017080ac74a460d0071ccd2c8e4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Wed, 24 Jan 2018 10:13:59 +0100 Subject: [PATCH 65/68] Bump --- build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sh b/build.sh index b6e5f5c..d4b2972 100755 --- a/build.sh +++ b/build.sh @@ -8,7 +8,7 @@ apt-get update apt-get -y upgrade package="mp-rude" -version="1.2.27" +version="1.2.28" #version=$(git describe|perl -p -e 'chomp;s/v([^-]+)(-(\d+)-g.+)?$/\1+\3/;s/\+$//') -- GitLab From 2ac9930417bda0c2699ef2a34af0db4e0483c117 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Wed, 24 Jan 2018 11:02:25 +0100 Subject: [PATCH 66/68] Enda mer knot fra Olav Message-ID: <9f6610c1-4fee-02e5-60ea-003f07b4ca23@uninett.no> --- build.sh | 2 +- mp-rude/etc/init.d/mp-rude | 12 ++++++++---- mp-rude/usr/share/mp-rude/mp-rude-zip | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/build.sh b/build.sh index d4b2972..8b5cc08 100755 --- a/build.sh +++ b/build.sh @@ -8,7 +8,7 @@ apt-get update apt-get -y upgrade package="mp-rude" -version="1.2.28" +version="1.2.29" #version=$(git describe|perl -p -e 'chomp;s/v([^-]+)(-(\d+)-g.+)?$/\1+\3/;s/\+$//') diff --git a/mp-rude/etc/init.d/mp-rude b/mp-rude/etc/init.d/mp-rude index 72bff78..ff7e50a 100755 --- a/mp-rude/etc/init.d/mp-rude +++ b/mp-rude/etc/init.d/mp-rude @@ -15,6 +15,7 @@ PATH=/sbin:/bin:/usr/sbin:/usr/bin RUDE=/usr/bin/rude CRUDE=/usr/bin/crude PIPE=/var/lib/mp-rude/crude.pipe +PIPE2=/var/lib/mp-rude/crude2.pipe do_start() { log_begin_msg "Starting rude/crude..." @@ -27,10 +28,13 @@ do_start() { if test ! -p $PIPE ; then mkfifo $PIPE fi - start-stop-daemon --start --background --pidfile /run/mp-rude.pid -m --exec $RUDE -- -P 50 -s /etc/mp-rude/rude.conf - start-stop-daemon --start --background --pidfile /run/mp-crude.pid -m --exec $CRUDE -- -P 50 -k -l $PIPE - start-stop-daemon --start --background --pidfile /run/mp-crude-zip.pid -m --exec /usr/share/mp-rude/mp-rude-zip -- $PIPE $LOG.crude.gz - start-stop-daemon --start --background --pidfile /run/mp-crude-ana.pid -m --exec /usr/share/mp-rude/mp-rude-ana -- logs-uninett-mp-rude $PIPE /var/log/mp-rude/mp-rude-events.log + if test ! -p $PIPE2 ; then + mkfifo $PIPE2 + fi + start-stop-daemon --start --background --pidfile /run/mp-rude.pid -m --exec $RUDE -- -P 50 -s /etc/mp-rude/rude.conf + start-stop-daemon --start --background --pidfile /run/mp-crude.pid -m --exec $CRUDE -- -P 50 -k -l $PIPE + start-stop-daemon --start --background --pidfile /run/mp-crude-zip.pid -m --exec /usr/share/mp-rude/mp-rude-zip -- $PIPE $LOG.crude.gz $PIPE2 + start-stop-daemon --start --background --pidfile /run/mp-crude-ana.pid -m --exec /usr/share/mp-rude/mp-rude-ana -- logs-uninett-mp-rude $PIPE2 /var/log/mp-rude/mp-rude-events.log log_end_msg $? } diff --git a/mp-rude/usr/share/mp-rude/mp-rude-zip b/mp-rude/usr/share/mp-rude/mp-rude-zip index 7ce6492..35dc911 100755 --- a/mp-rude/usr/share/mp-rude/mp-rude-zip +++ b/mp-rude/usr/share/mp-rude/mp-rude-zip @@ -2,4 +2,4 @@ set -e -cat "${1}" | gzip >> "${2}" +cat "${1}" | tee "${3}" | gzip >> "${2}" -- GitLab From c35ccecd0dbb53741b4cc851d5b65574acae598d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kolbj=C3=B8rn=20Barmen?= Date: Fri, 26 Jan 2018 16:04:59 +0100 Subject: [PATCH 67/68] Update, ny qstream-gap-ana --- build.sh | 2 +- mp-rude/usr/share/mp-rude/qstream-gap-ana | 19 +++++++++++++------ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/build.sh b/build.sh index 8b5cc08..f85afb3 100755 --- a/build.sh +++ b/build.sh @@ -8,7 +8,7 @@ apt-get update apt-get -y upgrade package="mp-rude" -version="1.2.29" +version="1.2.30" #version=$(git describe|perl -p -e 'chomp;s/v([^-]+)(-(\d+)-g.+)?$/\1+\3/;s/\+$//') diff --git a/mp-rude/usr/share/mp-rude/qstream-gap-ana b/mp-rude/usr/share/mp-rude/qstream-gap-ana index 1f61680..b1880a2 100755 --- a/mp-rude/usr/share/mp-rude/qstream-gap-ana +++ b/mp-rude/usr/share/mp-rude/qstream-gap-ana @@ -15,6 +15,7 @@ $max_small_gap=10; # the max size of a small graph $max_small_graphs=20; $max_big_graphs=20; $late_delay=3; # seconds to doom a packet late +my %src_adr=(), %dst_adr=(); require "newgetopt.pl"; $usage="$0 '[-title text] [-minloss n] [-win n] [-graph file] [max-small-graphs n] [-outdir dir] [-head|-rhead] [-id id] [-names file] [-json file] [-v] [file]... @@ -156,7 +157,7 @@ sub read_crude { if ( /crude version/){ # new file restart sequence control undef %pseq, %selp, %gap_slep; - } elsif ( ( ($rudeid,$seq, $src, $tx, $rx, $size) = /^ID=(\d+) SEQ=(\d+) SRC=([\w\:\.]+):\d+ .*Tx=([\d\.]+) .*Rx=([\d\.]+) .*SIZE=(\d+)/ ) + } elsif ( ( ($rudeid,$seq, $src, $dst, $tx, $rx, $size) = /^ID=(\d+) SEQ=(\d+) SRC=([\w\:\.]+):\d+ DST=([\w\:\.]+):\d+.*Tx=([\d\.]+) .*Rx=([\d\.]+) .*SIZE=(\d+)/ ) || ( ($seq, $src, $tx, $rx) = /$bv_fmt/ ) ){ next if $size < 50; # just a sanity filter for the packets i harstad-mp that has SIZE=4 @@ -172,6 +173,8 @@ sub read_crude { $id=$hostname{$src}=$src; } } + $src_adr{$id}=$src if ! $src_adr{$id} ; + $dst_adr{$id}=$dst if ! $dst_adr{$id} ; if ($tx < $min_tx || $tx > $max_tx){ $small_tx{$id}++; @@ -180,6 +183,7 @@ sub read_crude { $npackets{$id}++; my $dt=0; + my $bufferit=1; if (defined($pseq{$id})){ my $dseq=$seq - $pseq{$id}; @@ -227,6 +231,7 @@ sub read_crude { } elsif ($dseq == 0 ){ # $dupl{$id}++; + $bufferit=0; } elsif ($dseq < 0 ) { # reordered if ( $dseq > (-$maxseqreorder) ){ # reordered $reorder{$id}++; @@ -236,6 +241,7 @@ sub read_crude { $late_sum{$id}+=$dt; $late_ss{$id}+=$dt*$dt; } + $bufferit=0; } else { # reset $resets{$id}++; $seq0{$id}=$seq; @@ -282,7 +288,8 @@ sub read_crude { $t0{$id}=$tx if !$t0{$id}; } - if ( $dt == 0 || $dt <= $late_delay ){ # buffer lines + # if ( $dt == 0 || $dt <= $late_delay ){ # buffer lines + if ( $bufferit){ if ( $in_gap{$id} > 0 ){ # during gap push(@{$gap_slep{$id}}, $_); } else { @@ -629,14 +636,14 @@ sub emit_json{ my $from=$f[$hix{id}]; my $to=`hostname`; chomp($to); - my ($date, $t)=split(/ /, $json->{datetime}); - my @gt=gmtime $json->{timestamp}; + my ($date, $t)= ( $f[$hix{date}], $f[$hix{time}] ); + my @gt=gmtime $f[$hix{tunix}]; my $datems= sprintf "%s.%03d", strftime("%Y-%m-%dT%T", @gt), int($json->{timestamp}*1000)%1000 ; my $json= { - "@date" => $datems, + "\@date" => $datems, "from" => $from, "to" => $to, - "from_raw" => from, "to_raw" => $to, + "from_raw" => $src_adr{$f[$hix{id}]}, "to_raw" => $dst_adr{$f[$hix{id}]}, "timestamp"=> $f[$hix{tunix}], "timestamp_zone" => "GMT", "datetime"=> $f[$hix{date}] ." ". $f[$hix{time}], -- GitLab From 9dcf91a3582e36424228778987275d54c946e95c Mon Sep 17 00:00:00 2001 From: Olav Kvittem Date: Thu, 1 Feb 2018 15:51:29 +0100 Subject: [PATCH 68/68] endret type=json; summary json and ttl statistics --- mp-rude/usr/share/mp-rude/qstream-gap-ana | 137 +++++++++++++++++----- 1 file changed, 105 insertions(+), 32 deletions(-) diff --git a/mp-rude/usr/share/mp-rude/qstream-gap-ana b/mp-rude/usr/share/mp-rude/qstream-gap-ana index b1880a2..a4af57b 100755 --- a/mp-rude/usr/share/mp-rude/qstream-gap-ana +++ b/mp-rude/usr/share/mp-rude/qstream-gap-ana @@ -14,7 +14,7 @@ $maxseqreorder=1000; # $max_small_gap=10; # the max size of a small graph $max_small_graphs=20; $max_big_graphs=20; -$late_delay=3; # seconds to doom a packet late +$late_delay=3000; # ms to doom a packet late my %src_adr=(), %dst_adr=(); require "newgetopt.pl"; @@ -37,7 +37,7 @@ if ( $opt_h || $opt_help) { exit(0); } -my @heads= qw/id date time tunix x1 nloss tloss seqloss x2 seqtail overlap x3 h_n h_jit h_ddelay h_delay h_min_d h_slope_10 h_slope_20 h_slope_30 h_slope_40 h_slope_50 x4 t_n t_jit t_ddelay t_delay t_min_d t_slope_10 t_slope_20 t_slope_30 t_slope_40 t_slope_50/; +my @heads= qw/id date time tunix x1 nloss tloss seqloss x2 seqtail overlap x3 h_n h_jit h_ddelay h_delay h_min_d h_slope_10 h_slope_20 h_slope_30 h_slope_40 h_slope_50 x4 t_n t_jit t_ddelay t_delay t_min_d t_slope_10 t_slope_20 t_slope_30 t_slope_40 t_slope_50 dTTL/; if ($opt_rhead){ my @a=split(" ", $head); @@ -60,7 +60,7 @@ my $coder; # json coder if ( $opt_json){ require JSON::XS; my $json=$opt_json; - open JSON, ">$json" || die "Could not open $json ; $!"; + open JSON, ">>$json" || die "Could not open $json ; $!"; # $coder = JSON::XS->new->ascii->pretty->allow_nonref; $coder = JSON::XS->new->ascii->allow_nonref; $encoder=$coder->canonical([1]); @@ -91,6 +91,7 @@ $id= $opt_id || "ukjent" ; my %npackets=(); # keep track of all ids my $print_line; my %duration; # seconds per id +my %late_n=(); read_crude(); @@ -104,13 +105,15 @@ if ( $opt_v ){ # printf STDERR "%-30s %d reordered (%d ppm)\n", $id, $reorder{$id}, $reorder{$id}*10^6/$npackets{$id}; # } - foreach $id ( sort keys %npackets){ + foreach $id ( sort keys %npackets){ + my $lates=0; + $lates=$late_sum{$id}/$late_n{$id}/1000 if $late_n{$id} > 0; - printf STDERR "%-30s lasted %02d:%02d:%02d ( %d seconds ) and has %d small and %d big gaps and lost %.3f small and %.3f big seconds %d resets %d late %d duplicates %d reordered and down %d ppm.\n", $id, + printf STDERR "%-30s lasted %02d:%02d:%02d ( %d seconds ) and has %d small and %d big gaps and lost %.3f small and %.3f big seconds, %d resets, %d late n, %.1fs late, %d duplicates, %d reordered, %d ttl changes and downtime %d ppm.\n", $id, $duration{$id}/3600, $duration{$id}%3600/60, $duration{$id}%60, $duration{$id}, $nsmall_gaps{$id}, $nbig_gaps{$id}, - $small_time{$id}, $big_time{$id}, $resets{$id}, $late_n{$id}, - $dupl{$id}, $reorder{$id}, + $small_time{$id}, $big_time{$id}, $resets{$id}, $late_n{$id},$lates, + $dupl{$id}, $reorder{$id}, $dttl_sum{$id}, 10**6 * ($small_time{$id} + $big_time{$id}) / $duration{$id}; # ppm } printf STDERR "Big gap limit %d packets.\n", $minloss; @@ -124,7 +127,13 @@ foreach $id (keys %small_tx){ print STDERR "ID $id has Tx to small in $small_tx{$id} packets\n"; } -close JSON if $opt_json; + +if ($opt_json){ + emit_summary_json(); + close JSON; + +} + exit(0); @@ -132,6 +141,57 @@ exit(0); ################################################################################ #name id dns ip +sub emit_summary_json{ + + foreach $id ( sort keys %npackets){ + my $latems=0; + $latems=$late_sum{$id}/$late_n{$id} if $late_n{$id} > 0; + + my $json={ + "type" => "gap-sum", + "lasted" => sprintf ( "%02d:%02d:%02d", $duration{$id}/3600, $duration{$id}%3600/60, $duration{$id}%60 ), + "lasted_sec" => sprintf ( "%.3f", $duration{$id} ), + "small_gaps" => $nsmall_gaps{$id}, + "big_gaps" => $nbig_gaps{$id}, + "small_time" => sprintf ( "%.3f", $small_time{$id} ), + "big_time" => sprintf ( "%.3f", $big_time{$id} ), + "resets" => $resets{$id} || 0, + "late" => $late_n{$id} || 0, + "late_sec" => sprintf ( "%.3f", $latems/1000 ), + "duplicates" => $dupl{$id} || 0, + "reordered" => $reorder{$id} || 0, + "dTTL" => $dttl_sum{$id}, + "down_ppm" => sprintf ( "%.3f", 10**6 * ($small_time{$id} + $big_time{$id}) / $duration{$id} ) # ppm + }; + + emit_json( $json, $id, $t0{$id} ); + } +} + +sub emit_json{ + my ($json, $id, $tunix)=@_; + my $to=`hostname`; chomp($to); + my @gt=gmtime $tunix; + my $datems= sprintf "%s.%03d", strftime("%Y-%m-%dT%T", @gt), int( $tunix * 1000 ) % 1000 ; + + my $head= { + "\@date" => $datems, + "timestamp"=> $t0{$id}, + "timestamp_zone" => "GMT", + "datetime"=> $datems, + "from"=> $id, "to"=> $to, + "from_adr" => $src_adr{$id}, + "to_adr" => $dst_adr{$id}}; + # $new{keys %$json} = values %$json; + my $new={ %$head, %$json }; # a reference to hash + + print JSON $coder->encode($new ) ."\n" || warn "JSON print failed : $!"; + +} + +################################################################################ + + sub get_names { $file=shift; if ( open NAMES, "<$file"){ @@ -140,6 +200,7 @@ sub get_names { ($name, $user, $dns, $ip)=split; $hostname{$ip}=$name; } + close NAMES; } } @@ -161,7 +222,7 @@ sub read_crude { || ( ($seq, $src, $tx, $rx) = /$bv_fmt/ ) ){ next if $size < 50; # just a sanity filter for the packets i harstad-mp that has SIZE=4 - + if ( $opt_id){ # use that } elsif ($hostname{$src}){ @@ -180,7 +241,7 @@ sub read_crude { $small_tx{$id}++; next; ######################### } - + $npackets{$id}++; my $dt=0; my $bufferit=1; @@ -190,7 +251,12 @@ sub read_crude { $dt=$rx-$tx; $ids{$id}++; - if ( $dseq == 1 ){ # normal packet + if ( $tx < $t0{$id}) { # packets from the past + $late_n{$id}++; + $late_sum{$id}+=$dt; + $late_ss{$id}+=$dt*$dt; + $bufferit=0; + } elsif ( $dseq == 1 ){ # normal packet if ( $ntail_seq{$id} > 0 ){ # is recovering $ntail_seq{$id}++; if ( $ntail_seq{$id} > $minrecover && $in_gap{$id} ){ @@ -213,17 +279,20 @@ sub read_crude { } emit_break_head($id, $missing ); - $ntail_seq{$id}=0; # + # add the ok part of the postgap tail - # my $bad=$#{$gap_slep{$id}} - $ntail_seq{$id}; - # $bad = 0 if $bad < 0 ; + my $good=$#{$gap_slep{$id}} - $ntail_seq{$id}; + $good = 0 if $bad < 0 ; + my $dttl= get_ttl($gap_slep{$id}[$good])-get_ttl($head_end{$id}); + $dttl_sum{$id}++; + push(@{$dttl{$id}}, $tail_ttl - $head_ttl ); for ($lno=0; $lno <= $#{$gap_slep{$id}}; $lno++){ push( @{$slep{$id}}, $gap_slep{$id}[$lno] ); $nslep{$id}++; } $gap_slep{$id}=[]; # copied - blank it. - + $ntail_seq{$id}=0; # } } $pseq{$id}= $seq; @@ -336,7 +405,13 @@ sub read_crude { } +################################################################################ +sub get_ttl { + my $line=shift; + my ($txt, $ttl)=/(HOPLIMIT|TTL)=(\d+)/; + return $ttl; +} ################################################################################## @@ -413,7 +488,7 @@ sub emit_stats{ # printf "head %3d %s tail %3d %s\n", $#{$head{$id}}+1, &report_delay($head{$id}), if ( $#lostseq >= 0 ){ # still lost packets later (reorder) - $print_line .= sprintf "head %s tail %s\n", shift(@{$head{$id}}), shift(@{$tail{$id}}); + $print_line .= sprintf "head %s tail %s %5d\n", shift(@{$head{$id}}), shift(@{$tail{$id}}), shift(@{$dttl{$id}}); print_line(\$print_line); } else { $print_line=''; @@ -600,12 +675,13 @@ sub max{ return max; } +# generate header form based on first data line sub headmaker{ my $line=shift; my @l=split //, $line; $p=0; - for ($i=0;$i<$#l;$i++){ - if ( $l[$i] eq " " && $l[$i-1] ne " "){ + for ($i=0;$i<=$#l;$i++){ + if ( ( $l[$i] eq " " || $l[$i] eq "\n" ) && $l[$i-1] ne " "){ $form.=sprintf "%%%ds ", $i-$p-1; $p=$i; } @@ -622,31 +698,27 @@ sub print_line{ $head_done=1; } if ( $opt_json){ - emit_json($line); - } else { + emit_event_json($line); + } + if ( $opt_v ){ print $$line; } $$line=''; } -sub emit_json{ +sub emit_event_json{ my $line=shift; if ( $$line =~ /\d\d\d\d-\d\d-\d\d\s+\d\d:/){ #looks like report line : yyy-mm-dd hh: my @f=split(/\s+/, $$line); my $from=$f[$hix{id}]; my $to=`hostname`; chomp($to); - my ($date, $t)= ( $f[$hix{date}], $f[$hix{time}] ); - my @gt=gmtime $f[$hix{tunix}]; - my $datems= sprintf "%s.%03d", strftime("%Y-%m-%dT%T", @gt), int($json->{timestamp}*1000)%1000 ; +# my ($date, $t)= ( $f[$hix{date}], $f[$hix{time}] ); +# my @gt=gmtime $f[$hix{tunix}]; +# my $datems= sprintf "%s.%03d", strftime("%Y-%m-%dT%T", @gt), int($f[$hix{tunix}]*1000)%1000 ; my $json= { - "\@date" => $datems, - "from" => $from, "to" => $to, - "from_raw" => $src_adr{$f[$hix{id}]}, "to_raw" => $dst_adr{$f[$hix{id}]}, - "timestamp"=> $f[$hix{tunix}], - "timestamp_zone" => "GMT", - "datetime"=> $f[$hix{date}] ." ". $f[$hix{time}], + "type" => "gap", "tloss"=>$f[$hix{tloss}] , "h_n" => $f[$hix{h_n}], "h_jit" => $f[$hix{h_jit}], @@ -668,11 +740,12 @@ sub emit_json{ "t_slope_30" => $f[$hix{t_slope_30}], "t_slope_40" => $f[$hix{t_slope_40}], "t_slope_50" => $f[$hix{t_slope_50}], - "overlap" => $f[$hix{overlap}] + "overlap" => $f[$hix{overlap}], + "dTTL" => $f[$hix{dTTL}] # "" => $f[$hix{}], }; - print JSON $coder->encode( $json) ."\n"; + emit_json($json, $from, $f[$hix{tunix}]); } else { warn "Could not parse line : $$line"; -- GitLab