Sisyphus repository
Last update: 1 october 2023 | SRPMs: 18631 | Visits: 37832690
en ru br
ALT Linux repos
S:2.11-alt1
5.0: 1.6-alt1
4.1: 1.6-alt0.M41.1
4.0: 1.6-alt0.M40.1
3.0: 1.4-alt2

Group :: Monitoring
RPM: vnstat

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs and FR  Repocop 

# SPEC file for vnStat package

Name:    vnstat
Version: 1.6
Release: alt0.M40.1

Summary: console-based network traffic monitor
Summary(ru_RU.UTF-8): консольная утилита для подсчёта трафика

License: %gpl2only
Group:   Monitoring
URL:     http://humdi.net/vnstat/

Packager: Nikolay A. Fetisov <naf at altlinux.ru>

Source0: %url/%name-%version.tar.gz
Source1: %name.control
Patch0:  %name-1.6-alt-Makefiles.patch

BuildRequires(pre): rpm-build-licenses
Requires(pre): vixie-cron
Requires(post): control
Requires(post): iproute2 sed

%define cron_freq    5
%define cron_file    %_sysconfdir/cron.d/%name
%define data_dir     %_localstatedir/%name


%description
vnStat  is a console-based network  traffic monitor that keeps a log
of daily network traffic for the selected interface(s). vnStat isn't
a packet sniffer. The traffic information is analyzed from the /proc
filesystem. vnStat runs under unprivileged user account and does not
need any system's tuning, but can account only a total interface's
traffic with some issues on accuracy.

%description -l ru_RU.UTF-8
vnStat собирает и выводит статистику потребления трафика.
Для получения информации он использует файловую систему /proc.

Достоинством такого подхода является возможность собирать информацию
с привилегиями рядового пользователя. С другой стороны, при этом не
учитываются такие подробности, как IP-адреса клиентов, типы соединений
и т.д. Отчёты содержат только общее количество принятых и переданных
байт, упорядоченное по периодам времени и сетевым интерфейсам.

Для накопления статистики vnStat вызывает себя через Cron каждые
%cron_freq минут; для сохранения статистики используется база несложного
собственного формата. При запуске из консоли vnStat читает её и выводит
отчёт по заданным критериям.

%prep
%setup -q
%patch0 -p1
mv -f -- COPYING COPYING.orig
ln -s -- $(relative %_licensedir/GPL-2 %_docdir/%name/COPYING) COPYING

%build
%make_build

%install
%make_install DESTDIR=%buildroot install
/bin/install -pD %SOURCE1              %buildroot%_controldir/%name

cat << __EOF__ > %buildroot%cron_file
MAILTO=
0-59/%cron_freq * * * * %name [ -x %_bindir/%name ] && [ \`/bin/ls %data_dir/ | /bin/wc -l\` -ge 1 ] && %_bindir/%name -u
__EOF__

%pre
%_sbindir/groupadd -r -f %name &>/dev/null
%_sbindir/useradd -r -g %name -d %data_dir -s /dev/null \
-c "vnStat database producer" -M -G proc -n %name &>/dev/null ||:

# For upgrade from 1.4-alt1

/usr/bin/id -Gn %name | /bin/grep -qw proc || %_sbindir/usermod -G proc %name ||:


%post
echo Create %name databases for all found network interfaces...
for iface in $(/sbin/ip link show | /bin/sed -ne '/^[0-9]\+:/ s/^[^:]*: \([^:]\+\):.*$/\1/ p'); do
   %_bindir/%name -u -i "$iface"
done
/bin/chown :%name  %data_dir/*
/bin/chmod 0664    %data_dir/*
/sbin/service crond condreload

%postun
if [ $1 = 0 ]; then
   /sbin/service crond condreload
   echo 'REMEMBER: %name databases still exists in %data_dir directory!'
fi

%files
%doc CHANGES FAQ README pppd
%doc --no-dereference COPYING

%config(noreplace) %cron_file
%config(noreplace) %_sysconfdir/%name.conf

%_bindir/%name
%_man1dir/%{name}*

%_controldir/%name

%attr(1770,root,%name) %data_dir

%changelog

Full changelog you can see here

 
design & coding: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
current maintainer: Michael Shigorin