version 1.4
|
|
@ -0,0 +1,8 @@
|
|||
*~
|
||||
*.py[co]
|
||||
|
||||
# Packages
|
||||
*.egg
|
||||
*.egg-info
|
||||
dist
|
||||
build
|
||||
5
AUTHORS
|
|
@ -1,2 +1,5 @@
|
|||
Nicolas Hennion (aka) Nicolargo
|
||||
http://www.nicolargo.com
|
||||
http://www.nicolargo.com
|
||||
|
||||
Alessio Sergi (aka) Al3hex
|
||||
https://twitter.com/al3hex
|
||||
|
|
|
|||
6
COPYING
|
|
@ -1,4 +1,4 @@
|
|||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
|
|
@ -10,7 +10,7 @@
|
|||
the terms and conditions of version 3 of the GNU General Public
|
||||
License, supplemented by the additional permissions listed below.
|
||||
|
||||
0. Additional Definitions.
|
||||
0. Additional Definitions.
|
||||
|
||||
As used herein, "this License" refers to version 3 of the GNU Lesser
|
||||
General Public License, and the "GNU GPL" refers to version 3 of the GNU
|
||||
|
|
@ -111,7 +111,7 @@ the following:
|
|||
a copy of the Library already present on the user's computer
|
||||
system, and (b) will operate properly with a modified version
|
||||
of the Library that is interface-compatible with the Linked
|
||||
Version.
|
||||
Version.
|
||||
|
||||
e) Provide Installation Information, but only if you would otherwise
|
||||
be required to provide such information under section 6 of the
|
||||
|
|
|
|||
|
|
@ -0,0 +1,11 @@
|
|||
include README
|
||||
include README-fr
|
||||
include COPYING
|
||||
include AUTHORS
|
||||
include ChangeLog
|
||||
include NEWS
|
||||
include screenshot.png
|
||||
recursive-include doc *.png
|
||||
recursive-include man *.1
|
||||
recursive-include i18n *.mo
|
||||
recursive-include src *.html *.css *.png
|
||||
21
Makefile.am
|
|
@ -1,21 +0,0 @@
|
|||
## Process this file with automake to produce Makefile.in
|
||||
## Created by Anjuta
|
||||
|
||||
SUBDIRS = src man
|
||||
|
||||
glancesdocdir = ${datadir}/doc/glances
|
||||
glancesdoc_DATA = \
|
||||
README\
|
||||
COPYING\
|
||||
AUTHORS\
|
||||
ChangeLog\
|
||||
INSTALL\
|
||||
NEWS
|
||||
|
||||
|
||||
EXTRA_DIST = $(glancesdoc_DATA)
|
||||
|
||||
|
||||
# Remove doc directory on uninstall
|
||||
uninstall-local:
|
||||
-rm -r $(glancesdocdir)
|
||||
740
Makefile.in
|
|
@ -1,740 +0,0 @@
|
|||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
subdir = .
|
||||
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
|
||||
$(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
|
||||
TODO install-sh missing py-compile
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||
configure.lineno config.status.lineno
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
AM_V_GEN = $(am__v_GEN_$(V))
|
||||
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_GEN_0 = @echo " GEN " $@;
|
||||
AM_V_at = $(am__v_at_$(V))
|
||||
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_at_0 = @
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||
html-recursive info-recursive install-data-recursive \
|
||||
install-dvi-recursive install-exec-recursive \
|
||||
install-html-recursive install-info-recursive \
|
||||
install-pdf-recursive install-ps-recursive install-recursive \
|
||||
installcheck-recursive installdirs-recursive pdf-recursive \
|
||||
ps-recursive uninstall-recursive
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
|
||||
am__install_max = 40
|
||||
am__nobase_strip_setup = \
|
||||
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
|
||||
am__nobase_strip = \
|
||||
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
|
||||
am__nobase_list = $(am__nobase_strip_setup); \
|
||||
for p in $$list; do echo "$$p $$p"; done | \
|
||||
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
||||
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
||||
if (++n[$$2] == $(am__install_max)) \
|
||||
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
||||
END { for (dir in files) print dir, files[dir] }'
|
||||
am__base_list = \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
||||
am__installdirs = "$(DESTDIR)$(glancesdocdir)"
|
||||
DATA = $(glancesdoc_DATA)
|
||||
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
|
||||
distclean-recursive maintainer-clean-recursive
|
||||
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
|
||||
$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
|
||||
distdir dist dist-all distcheck
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DIST_SUBDIRS = $(SUBDIRS)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
distdir = $(PACKAGE)-$(VERSION)
|
||||
top_distdir = $(distdir)
|
||||
am__remove_distdir = \
|
||||
{ test ! -d "$(distdir)" \
|
||||
|| { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
|
||||
&& rm -fr "$(distdir)"; }; }
|
||||
am__relativize = \
|
||||
dir0=`pwd`; \
|
||||
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
|
||||
sed_rest='s,^[^/]*/*,,'; \
|
||||
sed_last='s,^.*/\([^/]*\)$$,\1,'; \
|
||||
sed_butlast='s,/*[^/]*$$,,'; \
|
||||
while test -n "$$dir1"; do \
|
||||
first=`echo "$$dir1" | sed -e "$$sed_first"`; \
|
||||
if test "$$first" != "."; then \
|
||||
if test "$$first" = ".."; then \
|
||||
dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
|
||||
dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
|
||||
else \
|
||||
first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
|
||||
if test "$$first2" = "$$first"; then \
|
||||
dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
|
||||
else \
|
||||
dir2="../$$dir2"; \
|
||||
fi; \
|
||||
dir0="$$dir0"/"$$first"; \
|
||||
fi; \
|
||||
fi; \
|
||||
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
|
||||
done; \
|
||||
reldir="$$dir2"
|
||||
DIST_ARCHIVES = $(distdir).tar.gz
|
||||
GZIP_ENV = --best
|
||||
distuninstallcheck_listfiles = find . -type f -print
|
||||
distcleancheck_listfiles = find . -type f -print
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PYTHON = @PYTHON@
|
||||
PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
|
||||
PYTHON_PLATFORM = @PYTHON_PLATFORM@
|
||||
PYTHON_PREFIX = @PYTHON_PREFIX@
|
||||
PYTHON_VERSION = @PYTHON_VERSION@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
VERSION = @VERSION@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build_alias = @build_alias@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host_alias = @host_alias@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
pkgpyexecdir = @pkgpyexecdir@
|
||||
pkgpythondir = @pkgpythondir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
pyexecdir = @pyexecdir@
|
||||
pythondir = @pythondir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
SUBDIRS = src man
|
||||
glancesdocdir = ${prefix}/doc/glances
|
||||
glancesdoc_DATA = \
|
||||
README\
|
||||
COPYING\
|
||||
AUTHORS\
|
||||
ChangeLog\
|
||||
INSTALL\
|
||||
NEWS
|
||||
|
||||
EXTRA_DIST = $(glancesdoc_DATA)
|
||||
all: config.h
|
||||
$(MAKE) $(AM_MAKEFLAGS) all-recursive
|
||||
|
||||
.SUFFIXES:
|
||||
am--refresh:
|
||||
@:
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \
|
||||
$(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
echo ' $(SHELL) ./config.status'; \
|
||||
$(SHELL) ./config.status;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
$(SHELL) ./config.status --recheck
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
$(am__cd) $(srcdir) && $(AUTOCONF)
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
|
||||
$(am__aclocal_m4_deps):
|
||||
|
||||
config.h: stamp-h1
|
||||
@if test ! -f $@; then \
|
||||
rm -f stamp-h1; \
|
||||
$(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
|
||||
else :; fi
|
||||
|
||||
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
|
||||
@rm -f stamp-h1
|
||||
cd $(top_builddir) && $(SHELL) ./config.status config.h
|
||||
$(srcdir)/config.h.in: $(am__configure_deps)
|
||||
($(am__cd) $(top_srcdir) && $(AUTOHEADER))
|
||||
rm -f stamp-h1
|
||||
touch $@
|
||||
|
||||
distclean-hdr:
|
||||
-rm -f config.h stamp-h1
|
||||
install-glancesdocDATA: $(glancesdoc_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(glancesdocdir)" || $(MKDIR_P) "$(DESTDIR)$(glancesdocdir)"
|
||||
@list='$(glancesdoc_DATA)'; test -n "$(glancesdocdir)" || list=; \
|
||||
for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
echo "$$d$$p"; \
|
||||
done | $(am__base_list) | \
|
||||
while read files; do \
|
||||
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(glancesdocdir)'"; \
|
||||
$(INSTALL_DATA) $$files "$(DESTDIR)$(glancesdocdir)" || exit $$?; \
|
||||
done
|
||||
|
||||
uninstall-glancesdocDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(glancesdoc_DATA)'; test -n "$(glancesdocdir)" || list=; \
|
||||
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||
test -n "$$files" || exit 0; \
|
||||
echo " ( cd '$(DESTDIR)$(glancesdocdir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(glancesdocdir)" && rm -f $$files
|
||||
|
||||
# This directory's subdirectories are mostly independent; you can cd
|
||||
# into them and run `make' without going through this Makefile.
|
||||
# To change the values of `make' variables: instead of editing Makefiles,
|
||||
# (1) if the variable is set in `config.status', edit `config.status'
|
||||
# (which will cause the Makefiles to be regenerated when you run `make');
|
||||
# (2) otherwise, pass the desired values on the `make' command line.
|
||||
$(RECURSIVE_TARGETS):
|
||||
@fail= failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
*k*) failcom='fail=yes';; \
|
||||
esac; \
|
||||
done; \
|
||||
dot_seen=no; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
dot_seen=yes; \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done; \
|
||||
if test "$$dot_seen" = "no"; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
||||
fi; test -z "$$fail"
|
||||
|
||||
$(RECURSIVE_CLEAN_TARGETS):
|
||||
@fail= failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
*k*) failcom='fail=yes';; \
|
||||
esac; \
|
||||
done; \
|
||||
dot_seen=no; \
|
||||
case "$@" in \
|
||||
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
||||
*) list='$(SUBDIRS)' ;; \
|
||||
esac; \
|
||||
rev=''; for subdir in $$list; do \
|
||||
if test "$$subdir" = "."; then :; else \
|
||||
rev="$$subdir $$rev"; \
|
||||
fi; \
|
||||
done; \
|
||||
rev="$$rev ."; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
for subdir in $$rev; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done && test -z "$$fail"
|
||||
tags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
||||
done
|
||||
ctags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
||||
done
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
set x; \
|
||||
here=`pwd`; \
|
||||
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
|
||||
include_option=--etags-include; \
|
||||
empty_fix=.; \
|
||||
else \
|
||||
include_option=--include; \
|
||||
empty_fix=; \
|
||||
fi; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test ! -f $$subdir/TAGS || \
|
||||
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
|
||||
fi; \
|
||||
done; \
|
||||
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
shift; \
|
||||
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
if test $$# -gt 0; then \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
"$$@" $$unique; \
|
||||
else \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$unique; \
|
||||
fi; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& $(am__cd) $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
$(am__remove_distdir)
|
||||
test -d "$(distdir)" || mkdir "$(distdir)"
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test -d "$(distdir)/$$subdir" \
|
||||
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
|
||||
$(am__relativize); \
|
||||
new_distdir=$$reldir; \
|
||||
dir1=$$subdir; dir2="$(top_distdir)"; \
|
||||
$(am__relativize); \
|
||||
new_top_distdir=$$reldir; \
|
||||
echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
|
||||
echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
|
||||
($(am__cd) $$subdir && \
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="$$new_top_distdir" \
|
||||
distdir="$$new_distdir" \
|
||||
am__remove_distdir=: \
|
||||
am__skip_length_check=: \
|
||||
am__skip_mode_fix=: \
|
||||
distdir) \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
-test -n "$(am__skip_mode_fix)" \
|
||||
|| find "$(distdir)" -type d ! -perm -755 \
|
||||
-exec chmod u+rwx,go+rx {} \; -o \
|
||||
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
|
||||
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
|
||||
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|
||||
|| chmod -R a+r "$(distdir)"
|
||||
dist-gzip: distdir
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-bzip2: distdir
|
||||
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-lzma: distdir
|
||||
tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-xz: distdir
|
||||
tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-tarZ: distdir
|
||||
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-shar: distdir
|
||||
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-zip: distdir
|
||||
-rm -f $(distdir).zip
|
||||
zip -rq $(distdir).zip $(distdir)
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist dist-all: distdir
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
$(am__remove_distdir)
|
||||
|
||||
# This target untars the dist file and tries a VPATH configuration. Then
|
||||
# it guarantees that the distribution is self-contained by making another
|
||||
# tarfile.
|
||||
distcheck: dist
|
||||
case '$(DIST_ARCHIVES)' in \
|
||||
*.tar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
|
||||
*.tar.bz2*) \
|
||||
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
|
||||
*.tar.lzma*) \
|
||||
lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
|
||||
*.tar.xz*) \
|
||||
xz -dc $(distdir).tar.xz | $(am__untar) ;;\
|
||||
*.tar.Z*) \
|
||||
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
|
||||
*.shar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
|
||||
*.zip*) \
|
||||
unzip $(distdir).zip ;;\
|
||||
esac
|
||||
chmod -R a-w $(distdir); chmod a+w $(distdir)
|
||||
mkdir $(distdir)/_build
|
||||
mkdir $(distdir)/_inst
|
||||
chmod a-w $(distdir)
|
||||
test -d $(distdir)/_build || exit 0; \
|
||||
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
|
||||
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
|
||||
&& am__cwd=`pwd` \
|
||||
&& $(am__cd) $(distdir)/_build \
|
||||
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
|
||||
$(DISTCHECK_CONFIGURE_FLAGS) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) check \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) install \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
|
||||
distuninstallcheck \
|
||||
&& chmod -R a-w "$$dc_install_base" \
|
||||
&& ({ \
|
||||
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
|
||||
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
|
||||
} || { rm -rf "$$dc_destdir"; exit 1; }) \
|
||||
&& rm -rf "$$dc_destdir" \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dist \
|
||||
&& rm -rf $(DIST_ARCHIVES) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
|
||||
&& cd "$$am__cwd" \
|
||||
|| exit 1
|
||||
$(am__remove_distdir)
|
||||
@(echo "$(distdir) archives ready for distribution: "; \
|
||||
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
|
||||
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
|
||||
distuninstallcheck:
|
||||
@$(am__cd) '$(distuninstallcheck_dir)' \
|
||||
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|
||||
|| { echo "ERROR: files left after uninstall:" ; \
|
||||
if test -n "$(DESTDIR)"; then \
|
||||
echo " (check DESTDIR support)"; \
|
||||
fi ; \
|
||||
$(distuninstallcheck_listfiles) ; \
|
||||
exit 1; } >&2
|
||||
distcleancheck: distclean
|
||||
@if test '$(srcdir)' = . ; then \
|
||||
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
|
||||
exit 1 ; \
|
||||
fi
|
||||
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|
||||
|| { echo "ERROR: files left in build directory after distclean:" ; \
|
||||
$(distcleancheck_listfiles) ; \
|
||||
exit 1; } >&2
|
||||
check-am: all-am
|
||||
check: check-recursive
|
||||
all-am: Makefile $(DATA) config.h
|
||||
installdirs: installdirs-recursive
|
||||
installdirs-am:
|
||||
for dir in "$(DESTDIR)$(glancesdocdir)"; do \
|
||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||
done
|
||||
install: install-recursive
|
||||
install-exec: install-exec-recursive
|
||||
install-data: install-data-recursive
|
||||
uninstall: uninstall-recursive
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-recursive
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-recursive
|
||||
|
||||
clean-am: clean-generic mostlyclean-am
|
||||
|
||||
distclean: distclean-recursive
|
||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic distclean-hdr distclean-tags
|
||||
|
||||
dvi: dvi-recursive
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-recursive
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-recursive
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-glancesdocDATA
|
||||
|
||||
install-dvi: install-dvi-recursive
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-recursive
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-recursive
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-recursive
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-recursive
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-recursive
|
||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
-rm -rf $(top_srcdir)/autom4te.cache
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-recursive
|
||||
|
||||
mostlyclean-am: mostlyclean-generic
|
||||
|
||||
pdf: pdf-recursive
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-recursive
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-glancesdocDATA uninstall-local
|
||||
|
||||
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \
|
||||
ctags-recursive install-am install-strip tags-recursive
|
||||
|
||||
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
|
||||
all all-am am--refresh check check-am clean clean-generic \
|
||||
ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \
|
||||
dist-lzma dist-shar dist-tarZ dist-xz dist-zip distcheck \
|
||||
distclean distclean-generic distclean-hdr distclean-tags \
|
||||
distcleancheck distdir distuninstallcheck dvi dvi-am html \
|
||||
html-am info info-am install install-am install-data \
|
||||
install-data-am install-dvi install-dvi-am install-exec \
|
||||
install-exec-am install-glancesdocDATA install-html \
|
||||
install-html-am install-info install-info-am install-man \
|
||||
install-pdf install-pdf-am install-ps install-ps-am \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
installdirs-am maintainer-clean maintainer-clean-generic \
|
||||
mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \
|
||||
tags-recursive uninstall uninstall-am uninstall-glancesdocDATA \
|
||||
uninstall-local
|
||||
|
||||
|
||||
# Remove doc directory on uninstall
|
||||
uninstall-local:
|
||||
-rm -r $(glancesdocdir)
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
29
NEWS
|
|
@ -1,3 +1,26 @@
|
|||
Version 1.4
|
||||
===========
|
||||
|
||||
* Goodby StatGrab... Welcome to the PsUtil library !
|
||||
* No more autotools, use setup.py to install (or package)
|
||||
* Only major stats (CPU, Load and memory) use background colors
|
||||
* Improve operating system name detection
|
||||
* New system info: one-line layout and add Arch Linux support
|
||||
* No decimal places for values < GB
|
||||
* New memory and swap layout
|
||||
* Add percentage of usage for both memory and swap
|
||||
* Add MEM% usage, NICE, STATUS, UID, PID and running TIME per process
|
||||
* Add sort by MEM% ('m' key)
|
||||
* Add sort by Process name ('p' key)
|
||||
* Multiple minor fixes, changes and improvements
|
||||
* Disable Disk IO module from the command line (-d)
|
||||
* Disable Mount module from the command line (-m)
|
||||
* Disable Net rate module from the command line (-n)
|
||||
* Improved FreeBSD support
|
||||
* Cleaning code and style
|
||||
* Code is now checked with pep8
|
||||
* CSV and HTML output (experimental functions, no yet documentation)
|
||||
|
||||
Version 1.3.7
|
||||
=============
|
||||
|
||||
|
|
@ -12,7 +35,7 @@ Version 1.3.6
|
|||
* Change static Python path (issue #20)
|
||||
* Correct a bug with a network interface disaippear (issue #27)
|
||||
* Add French and Spanish translation (thx to Jean Bob)
|
||||
|
||||
|
||||
Version 1.3.5
|
||||
=============
|
||||
|
||||
|
|
@ -23,8 +46,8 @@ Version 1.3.4
|
|||
=============
|
||||
|
||||
* New key: 'n' to enable/disable network stats
|
||||
* New key: 'd' to enable/disable disk IO stats
|
||||
* New key: 'f' to enable/disable FS stats
|
||||
* New key: 'd' to enable/disable disk IO stats
|
||||
* New key: 'f' to enable/disable FS stats
|
||||
* Reorganised the screen when stat are not available|disable
|
||||
* Force Glances to use the enmbeded fs stats (issue #16)
|
||||
|
||||
|
|
|
|||
126
README
|
|
@ -6,18 +6,44 @@ Glances -- Eye on your system
|
|||
|
||||
## Description
|
||||
|
||||
Glances is a CLI curses based monitoring tool for GNU/Linux or BSD OS.
|
||||
Glances is a CLI curses based monitoring tool for GNU/Linux and BSD OS.
|
||||
|
||||
Glances uses the libstatgrab library to get information from your system.
|
||||
It is developed in Python and uses the python-statgrab lib.
|
||||
Glances uses the PsUtil library to get information from your system.
|
||||
|
||||
It is developed in Python.
|
||||
|
||||

|
||||
|
||||
## Installation
|
||||
|
||||
### From package manager
|
||||
### From package manager (very easy way)
|
||||
|
||||
Packages exist for Arch, Fedora, Redhat ...
|
||||
Packages exist for Arch, Fedora, Redhat, FreeBSD...
|
||||
|
||||
### From PPA (easy way for Ubuntu/Mint...)
|
||||
|
||||
Arnaud Hartmann (thanks to him !) maintains a PPA with the latest Glances version:
|
||||
|
||||
To install the PPA just enter:
|
||||
|
||||
$ sudo add-apt-repository ppa:arnaud-hartmann/glances-dev
|
||||
$ sudo apt-get update
|
||||
|
||||
Then install Glances:
|
||||
|
||||
$ sudo apt-get install glances
|
||||
|
||||
### From PyPi (easy way)
|
||||
|
||||
PyPi is an official Python package manager.
|
||||
|
||||
You first need to install pypi on your system. For exemple on Debian/Ubuntu:
|
||||
|
||||
$ sudo apt-get install python-pip
|
||||
|
||||
Then install the latest Glances version:
|
||||
|
||||
$ sudo pip install glances
|
||||
|
||||
### From PPA (Ubuntu/Mint)
|
||||
|
||||
|
|
@ -35,39 +61,21 @@ The PPA is available for Ubuntu version 9.10 to 12.04.
|
|||
|
||||
Get the latest version:
|
||||
|
||||
$ wget https://github.com/downloads/nicolargo/glances/glances-1.3.7.tar.gz
|
||||
$ wget https://github.com/downloads/nicolargo/glances/glances-1.4.tar.gz
|
||||
|
||||
Glances use a standard GNU style installer:
|
||||
|
||||
$ tar zxvf glances-1.3.7.tar.gz
|
||||
$ cd glances-1.3.7
|
||||
$ ./configure
|
||||
$ make
|
||||
$ sudo make install
|
||||
$ tar zxvf glances-1.4.tar.gz
|
||||
$ cd glances-1.4
|
||||
$ sudo python setup.py install
|
||||
|
||||
Pre-requisites:
|
||||
|
||||
* Python 2.6+ (not tested with Python 3+)
|
||||
* python-statgrab 0.5+ (did NOT work with python-statgrab 0.4)
|
||||
|
||||
Notes: For Debian.
|
||||
The Debian Squeeze repos only include the python-statgrab 0.4.
|
||||
You had to install the version 0.5 using the following commands:
|
||||
|
||||
$ sudo apt-get install libstatgrab-dev pkg-config python-dev make
|
||||
$ wget http://ftp.uk.i-scream.org/sites/ftp.i-scream.org/pub/i-scream/pystatgrab/pystatgrab-0.5.tar.gz
|
||||
$ tar zxvf pystatgrab-0.5.tar.gz
|
||||
$ cd pystatgrab-0.5/
|
||||
$ ./setup.py build
|
||||
$ sudo ./setup.py install
|
||||
|
||||
Notes: For Ubuntu 10.04 and 10.10.
|
||||
The instruction to install the version 0.5 are here:
|
||||
https://github.com/nicolargo/glances/issues/5#issuecomment-3033194
|
||||
|
||||
## Running
|
||||
|
||||
Easy:
|
||||
Easy way (that's all folks !):
|
||||
|
||||
$ glances.py
|
||||
|
||||
|
|
@ -98,23 +106,23 @@ When Glances is running, you can press:
|
|||
* 'd' Disable or enable the disk IO stats
|
||||
* 'f' Disable or enable the file system stats
|
||||
* 'l' Disable or enable the logs
|
||||
* 'm' to sort the processes list by process size
|
||||
* 'm' to sort the processes list by process MEM
|
||||
* 'n' Disable or enable the network interfaces stats
|
||||
* 'p' to sort by process name
|
||||
* 'q' Exit
|
||||
|
||||
### Header
|
||||
|
||||

|
||||
|
||||
The header shows the Glances version, the host name and the operating
|
||||
system name, version and architecture.
|
||||
The header shows the host name and the operating system name, version and architecture.
|
||||
|
||||
### CPU
|
||||
|
||||

|
||||
|
||||
The CPU states are shown as a percentage and for the configured refresh
|
||||
time.
|
||||
The CPU states are shown as a percentage and for the configured refresh
|
||||
time. The total CPU usage is displayed on the first line.
|
||||
|
||||
If user|kernel|nice CPU is < 50%, then status is set to "OK".
|
||||
|
||||
|
|
@ -128,12 +136,13 @@ If user|kernel|nice CPU is > 90%, then status is set to "CRITICAL".
|
|||
|
||||

|
||||
|
||||
On the Nosheep blog, Zach defines the average load: "In short it is the
|
||||
average sum of the number of processes waiting in the run-queue plus the
|
||||
On the Nosheep blog, Zach defines the average load: "In short it is the
|
||||
average sum of the number of processes waiting in the run-queue plus the
|
||||
number currently executing over 1, 5, and 15 minute time periods."
|
||||
|
||||
Glances gets the number of CPU cores to adapt the alerts. With Glances,
|
||||
alerts on average load are only set on 5 and 15 mins.
|
||||
Glances gets the number of CPU cores to adapt the alerts. With Glances,
|
||||
alerts on average load are only set on 5 and 15 mins. The first line
|
||||
also display the number of CPU core.
|
||||
|
||||
If average load is < O.7*Core, then status is set to "OK".
|
||||
|
||||
|
|
@ -147,7 +156,7 @@ If average load is > 5*Core, then status is set to "CRITICAL".
|
|||
|
||||

|
||||
|
||||
Glances uses tree columns: memory (RAM), swap and "real".
|
||||
Glances uses tree columns: memory (RAM), "real" and swap.
|
||||
|
||||
Real used memory is: used - cache.
|
||||
|
||||
|
|
@ -167,7 +176,7 @@ If memory is > 90%, then status is set to "CRITICAL".
|
|||
|
||||

|
||||
|
||||
Glances display the network interface bit rate. The unit is adapted
|
||||
Glances display the network interface bit rate. The unit is adapted
|
||||
dynamicaly (bits per second, Kbits per second, Mbits per second...).
|
||||
|
||||
Alerts are set only if the network interface maximum speed is available.
|
||||
|
|
@ -180,14 +189,14 @@ If bitrate is > 70%, then status is set to "WARNING".
|
|||
|
||||
If bitrate is > 90%, then status is set to "CRITICAL".
|
||||
|
||||
For exemple, on a 100 Mbps Ethernet interface, the warning status is set
|
||||
For exemple, on a 100 Mbps Ethernet interface, the warning status is set
|
||||
if the bit rate is higher than 70 Mbps.
|
||||
|
||||
### Disk I/O
|
||||
|
||||

|
||||
|
||||
Glances display the disk I/O throughput. The unit is adapted dynamicaly
|
||||
Glances display the disk I/O throughput. The unit is adapted dynamicaly
|
||||
(bytes per second, Kbytes per second, Mbytes per second...).
|
||||
|
||||
There is no alert on this information.
|
||||
|
|
@ -196,8 +205,8 @@ There is no alert on this information.
|
|||
|
||||

|
||||
|
||||
Glances display the total and used filesytem disk space. The unit is
|
||||
adapted dynamicaly (bytes per second, Kbytes per second, Mbytes per
|
||||
Glances display the total and used filesytem disk space. The unit is
|
||||
adapted dynamicaly (bytes per second, Kbytes per second, Mbytes per
|
||||
second...).
|
||||
|
||||
Alerts are set for used disk space:
|
||||
|
|
@ -216,11 +225,30 @@ If disk used is > 90%, then status is set to "CRITICAL".
|
|||
|
||||
Glances displays a summary and a list of processes.
|
||||
|
||||
By default (or if you hit the 'a' key) the process list is automaticaly
|
||||
By default (or if you hit the 'a' key) the process list is automaticaly
|
||||
sorted by CPU of memory consumption.
|
||||
|
||||
The number of processes in the list is adapted to the screen size.
|
||||
|
||||
* VIRT: Virtual memory size (in byte)
|
||||
* REST: Amount of resident memory (in byte)
|
||||
* CPU%: % of CPU used by the process
|
||||
* MEM%: % of MEM used by the process
|
||||
* PID: Process ID
|
||||
* USER: Process user ID
|
||||
* NI: Nice level of the process
|
||||
* S: Process status
|
||||
|
||||
R - Running
|
||||
D - Sleeping (may not be interrupted)
|
||||
S - Sleeping (may be interrupted)
|
||||
T - Traced or stopped
|
||||
Z - Zombie or "hung" process
|
||||
|
||||
* TIME+: Cumulative CPU time used
|
||||
* NAME: Process name or command line
|
||||
|
||||
|
||||
### Logs
|
||||
|
||||

|
||||
|
|
@ -235,13 +263,13 @@ There is one line per alert with the following information:
|
|||
* start date
|
||||
* end date
|
||||
* alert name
|
||||
* (min/avg/max) values
|
||||
* (min/avg/max) values
|
||||
|
||||
### Footer
|
||||
|
||||

|
||||
|
||||
Glances displays a caption and the current time/date.
|
||||
Glances displays the current time/date and access to the embeded help screen.
|
||||
|
||||
## Localisation
|
||||
|
||||
|
|
@ -255,6 +283,6 @@ i18n_espanol_generate.sh
|
|||
|
||||
You are welcome to contribute to this software.
|
||||
|
||||
* Packaging for Debian, Ubuntu, BSD...
|
||||
* Check the needed Python library in the configure.ac
|
||||
* Add file system stats when the python-statgrab is corrected
|
||||
* Code optimization
|
||||
* Port to FreeBSD and Mac OS X
|
||||
* Documentation for HTML and CVS export option
|
||||
|
|
|
|||
88
README-fr
|
|
@ -3,10 +3,10 @@ Glances -- Votre système en un coups d'oeil
|
|||
|
||||
## Description
|
||||
|
||||
Glances est un logiciel libre (licence LGPL) permettant de surveiller votre
|
||||
Glances est un logiciel libre (licence LGPL) permettant de surveiller votre
|
||||
système d'exploitation GNU/Linux ou BSD à partir d'une interface texte.
|
||||
|
||||
Glances utilise la librairie libstatgrab pour récupérer les informations de
|
||||
Glances utilise la librairie PsUtil pour récupérer les informations de
|
||||
votre système. Il est développé en Python.
|
||||
|
||||

|
||||
|
|
@ -17,7 +17,7 @@ votre système. Il est développé en Python.
|
|||
|
||||
Des paquets existent pour plusieurs distributions: Arch, Fedora/Redhat...
|
||||
Le processus de packaging est actuellement en cours sur d'autres distribs, je
|
||||
vous conseille donc de rechercher Glances sur votre gestionnaire de package
|
||||
vous conseille donc de rechercher Glances sur votre gestionnaire de package
|
||||
avant de faire une installation depuis les sources.
|
||||
|
||||
### Depuis le PPA (Ubuntu/Mint)
|
||||
|
|
@ -32,54 +32,40 @@ Pour installer Glances à partir de ce PPA, il suffit de saisir:
|
|||
|
||||
Le PPA propose les paquets pour les versions Ubuntu 9.10 jusqu'à 12.04.
|
||||
|
||||
### Depuis PyPi
|
||||
|
||||
PyPi est un gestionnaire officiel des paquets Python.
|
||||
Il est disponible sous la plupart des distibutions GNU/Linux.
|
||||
|
||||
On commence par installer PyPi sur son système (par exemple Debian/Ubuntu):
|
||||
|
||||
$ sudo apt-get install python-pip
|
||||
|
||||
Puis on installe la dernière version de Glances:
|
||||
|
||||
$ sudo pip install glances
|
||||
|
||||
### Depuis les sources
|
||||
|
||||
Le projet Glances est hébergé sur GitHUB: https://github.com/nicolargo/glances
|
||||
|
||||
Pour l'installer, il suffit de suivre les instructions suivantes depuis un
|
||||
Pour l'installer, il suffit de suivre les instructions suivantes depuis un
|
||||
terminal.
|
||||
|
||||
Récupération de la dernière version (1.3.7):
|
||||
Récupération de la dernière version (1.4):
|
||||
|
||||
$ wget https://github.com/downloads/nicolargo/glances/glances-1.3.7.tar.gz
|
||||
$ wget https://github.com/downloads/nicolargo/glances/glances-1.4.tar.gz
|
||||
|
||||
Procédez ensuite à l'installation:
|
||||
|
||||
$ tar zxvf glances-1.3.7.tar.gz
|
||||
$ cd glances-1.3.7
|
||||
$ ./configure
|
||||
$ make
|
||||
$ sudo make install
|
||||
$ tar zxvf glances-1.4.tar.gz
|
||||
$ cd glances-1.4
|
||||
$ sudo python setup.py install
|
||||
|
||||
|
||||
Glances a besoin des dépendances suivantes:
|
||||
|
||||
* Python 2.6+ (non testé avec Python 3+)
|
||||
* libstatgrab 0.16+
|
||||
* python-statgrab 0.5+ (ne marchera PAS avec python-statgrab 0.4)
|
||||
|
||||
Notes specifiques pour une installation sous Debian 6.
|
||||
Debian Squeeze met à disposition la version 0.4 de python-statgrab.
|
||||
Il faut donc installer la version 0.5 à la main:
|
||||
|
||||
$ sudo apt-get install libstatgrab-dev pkg-config python-dev make
|
||||
$ wget http://ftp.uk.i-scream.org/sites/ftp.i-scream.org/pub/i-scream/pystatgrab/pystatgrab-0.5.tar.gz
|
||||
$ tar zxvf pystatgrab-0.5.tar.gz
|
||||
$ cd pystatgrab-0.5/
|
||||
$ ./setup.py build
|
||||
$ sudo ./setup.py install
|
||||
|
||||
Notes specifiques pour une installation sous Ubuntu 10.04 et 10.10.
|
||||
Ces versions d'Ubuntu mettent à disposition la version 0.4 de python-statgrab.
|
||||
Il faut donc installer la version 0.5 à la main:
|
||||
|
||||
$ sudo apt-get update
|
||||
$ sudo apt-get install pkg-config build-essential autoconf automake python libstatgrab-dev python-all-dev
|
||||
$ sudo apt-get remove python-statgrab
|
||||
$ wget http://ftp.uk.i-scream.org/sites/ftp.i-scream.org/pub/i-scream/pystatgrab/pystatgrab-0.5.tar.gz
|
||||
$ tar zxvf pystatgrab-0.5.tar.gz
|
||||
$ cd pystatgrab-0.5/
|
||||
$ ./setup.py build
|
||||
$ sudo ./setup.py install
|
||||
|
||||
## Lancement de Glances
|
||||
|
||||
|
|
@ -87,7 +73,7 @@ Il suffit de saisir la commande suivante dans une console ou un terminal:
|
|||
|
||||
$ glances.py
|
||||
|
||||
Note: sur certaines distributions, il faut saisir glances en lieu et place
|
||||
Note: sur certaines distributions, il faut saisir glances en lieu et place
|
||||
de glances.py.
|
||||
|
||||
## Guide d'utilisation
|
||||
|
|
@ -127,7 +113,7 @@ Passons ensuite à la description de la fenêtre de Glances:
|
|||
|
||||

|
||||
|
||||
L'en-tête montre la version de Glances, le nom de la machine (FQND) ainsi
|
||||
L'en-tête montre la version de Glances, le nom de la machine (FQND) ainsi
|
||||
qu'une information sur le système d'exploitation (nom, version).
|
||||
|
||||
### CPU
|
||||
|
|
@ -148,14 +134,14 @@ Si user|kernel|nice CPU est > 90%, alors le status est "CRITICAL".
|
|||
|
||||

|
||||
|
||||
Il est assez difficile de donner une définition claire de la charge d'une
|
||||
Il est assez difficile de donner une définition claire de la charge d'une
|
||||
machine (load average). Sur le blog Nosheep, Zach en donne la définition
|
||||
suivante: " C'est la somme moyenne du nombre de processus en attente dans
|
||||
la queue d'execution plus le nombre de processus actuellement en train
|
||||
d'être executés sur une période de temps de 1, 5 et 15 minutes."
|
||||
|
||||
Glances permet d'afficher les alertes en tenant compte du nombre de coeurs de
|
||||
votre processeur. Par exemple, le seuil WARNING sera de 2 pour un processeur
|
||||
votre processeur. Par exemple, le seuil WARNING sera de 2 pour un processeur
|
||||
Bi-Core alors qu'il sera de 4 sur un Quad-Core.
|
||||
|
||||
Si la charge moyenne est < O.7*Core, alors le status est "OK".
|
||||
|
|
@ -190,10 +176,10 @@ Si la mémoire est > 90%, alors le status "CRITICAL".
|
|||
|
||||

|
||||
|
||||
Glances affiche les débits des interfaces réseau en adaptant dynamiquement
|
||||
Glances affiche les débits des interfaces réseau en adaptant dynamiquement
|
||||
l'unité à utiliser (bits par seconde).
|
||||
|
||||
Les alertes ne sont affichées que pour les interfaces dont les informations
|
||||
Les alertes ne sont affichées que pour les interfaces dont les informations
|
||||
sur la vitesse maximale sont disponibles (cela dépend des distributions):
|
||||
|
||||
Si le débit < 50%, alors le status est "OK".
|
||||
|
|
@ -204,14 +190,14 @@ Si le débit > 70%, alors le status est "WARNING".
|
|||
|
||||
Si le débit > 90%, alors le status est "CRITICAL".
|
||||
|
||||
Par exemple, sur une interface Ethernet Fast Ethernet (100 Mbps), le status
|
||||
Par exemple, sur une interface Ethernet Fast Ethernet (100 Mbps), le status
|
||||
passera à WARNING si le débit dépasse les 70 Mbps.
|
||||
|
||||
### Entrées/Sorties disque
|
||||
|
||||

|
||||
|
||||
Glances permet d'afficher les débits en lecture et écriture sur les disques
|
||||
Glances permet d'afficher les débits en lecture et écriture sur les disques
|
||||
en adaptant dynamiquement l'unité à utiliser (octets par seconde).
|
||||
|
||||
Il n'y a pas d'alerte remontée pour ce type d'information.
|
||||
|
|
@ -237,7 +223,7 @@ Si l'espace disque utilisé est > 90%, alors le status est "CRITICAL".
|
|||
|
||||

|
||||
|
||||
Glances affiche un résumé sur l'état des processus ainsi qu'une liste
|
||||
Glances affiche un résumé sur l'état des processus ainsi qu'une liste
|
||||
détaillée.
|
||||
|
||||
Le nombre des processus affichés est adapté à la taille de la fenêtre.
|
||||
|
|
@ -274,13 +260,3 @@ i18n_francais_generate.sh
|
|||
Pour générer et installer la traduction espagnol executer le script suivant
|
||||
sous l'utilisateur root ou sudo
|
||||
i18n_espanol_generate.sh
|
||||
|
||||
## A faire...
|
||||
|
||||
J'ai besoin de contributeurs pour faire évoluer Glances.
|
||||
|
||||
Notamment:
|
||||
|
||||
* Packaging pour Debian, Ubuntu, BSD et toutes autres distributions
|
||||
* Controle de la présence des librairie dans le fichier configure.ac
|
||||
* Optimisation du code
|
||||
|
|
|
|||
|
|
@ -0,0 +1,288 @@
|
|||
[](https://flattr.com/submit/auto?user_id=nicolargo&url=https://github.com/nicolargo/glances&title=Glances&language=&tags=github&category=software)
|
||||
|
||||
=============================
|
||||
Glances -- Eye on your system
|
||||
=============================
|
||||
|
||||
## Description
|
||||
|
||||
Glances is a CLI curses based monitoring tool for GNU/Linux and BSD OS.
|
||||
|
||||
Glances uses the PsUtil library to get information from your system.
|
||||
|
||||
It is developed in Python.
|
||||
|
||||

|
||||
|
||||
## Installation
|
||||
|
||||
### From package manager (very easy way)
|
||||
|
||||
Packages exist for Arch, Fedora, Redhat, FreeBSD...
|
||||
|
||||
### From PPA (easy way for Ubuntu/Mint...)
|
||||
|
||||
Arnaud Hartmann (thanks to him !) maintains a PPA with the latest Glances version:
|
||||
|
||||
To install the PPA just enter:
|
||||
|
||||
$ sudo add-apt-repository ppa:arnaud-hartmann/glances-dev
|
||||
$ sudo apt-get update
|
||||
|
||||
Then install Glances:
|
||||
|
||||
$ sudo apt-get install glances
|
||||
|
||||
### From PyPi (easy way)
|
||||
|
||||
PyPi is an official Python package manager.
|
||||
|
||||
You first need to install pypi on your system. For exemple on Debian/Ubuntu:
|
||||
|
||||
$ sudo apt-get install python-pip
|
||||
|
||||
Then install the latest Glances version:
|
||||
|
||||
$ sudo pip install glances
|
||||
|
||||
### From PPA (Ubuntu/Mint)
|
||||
|
||||
Thanks to Arnaud Hartmann, a PPA is available for the stable branch.
|
||||
|
||||
To install it on your Ubuntu system:
|
||||
|
||||
$ sudo add-apt-repository ppa:arnaud-hartmann/glances-stable
|
||||
$ sudo apt-get update
|
||||
$ sudo apt-get install glances
|
||||
|
||||
The PPA is available for Ubuntu version 9.10 to 12.04.
|
||||
|
||||
### From source
|
||||
|
||||
Get the latest version:
|
||||
|
||||
$ wget https://github.com/downloads/nicolargo/glances/glances-1.4.tar.gz
|
||||
|
||||
Glances use a standard GNU style installer:
|
||||
|
||||
$ tar zxvf glances-1.4.tar.gz
|
||||
$ cd glances-1.4
|
||||
$ sudo python setup.py install
|
||||
|
||||
Pre-requisites:
|
||||
|
||||
* Python 2.6+ (not tested with Python 3+)
|
||||
|
||||
## Running
|
||||
|
||||
Easy way (that's all folks !):
|
||||
|
||||
$ glances.py
|
||||
|
||||
## User guide
|
||||
|
||||
By default, stats are refreshed every second, to change this setting, you can
|
||||
use the -t option. For exemple to set the refrech rate to 5 seconds:
|
||||
|
||||
$ glances.py -t 5
|
||||
|
||||
Importants stats are colored:
|
||||
|
||||
* GREEN: stat counter is "OK"
|
||||
* BLUE: stat counter is "CAREFUL"
|
||||
* MAGENTA: stat counter is "WARNING"
|
||||
* RED: stat counter is "CRITICAL"
|
||||
|
||||
When Glances is running, you can press:
|
||||
|
||||
* 'h' to display an help message whith the keys you can press
|
||||
* 'a' to set the automatic mode. The processes are sorted automatically
|
||||
|
||||
If CPU > 70%, sort by process "CPU consumption"
|
||||
|
||||
If MEM > 70%, sort by process "memory size"
|
||||
|
||||
* 'c' to sort the processes list by CPU consumption
|
||||
* 'd' Disable or enable the disk IO stats
|
||||
* 'f' Disable or enable the file system stats
|
||||
* 'l' Disable or enable the logs
|
||||
* 'm' to sort the processes list by process MEM
|
||||
* 'n' Disable or enable the network interfaces stats
|
||||
* 'p' to sort by process name
|
||||
* 'q' Exit
|
||||
|
||||
### Header
|
||||
|
||||

|
||||
|
||||
The header shows the host name and the operating system name, version and architecture.
|
||||
|
||||
### CPU
|
||||
|
||||

|
||||
|
||||
The CPU states are shown as a percentage and for the configured refresh
|
||||
time. The total CPU usage is displayed on the first line.
|
||||
|
||||
If user|kernel|nice CPU is < 50%, then status is set to "OK".
|
||||
|
||||
If user|kernel|nice CPU is > 50%, then status is set to "CAREFUL".
|
||||
|
||||
If user|kernel|nice CPU is > 70%, then status is set to "WARNING".
|
||||
|
||||
If user|kernel|nice CPU is > 90%, then status is set to "CRITICAL".
|
||||
|
||||
### Load
|
||||
|
||||

|
||||
|
||||
On the Nosheep blog, Zach defines the average load: "In short it is the
|
||||
average sum of the number of processes waiting in the run-queue plus the
|
||||
number currently executing over 1, 5, and 15 minute time periods."
|
||||
|
||||
Glances gets the number of CPU cores to adapt the alerts. With Glances,
|
||||
alerts on average load are only set on 5 and 15 mins. The first line
|
||||
also display the number of CPU core.
|
||||
|
||||
If average load is < O.7*Core, then status is set to "OK".
|
||||
|
||||
If average load is > O.7*Core, then status is set to "CAREFUL".
|
||||
|
||||
If average load is > 1*Core, then status is set to "WARNING".
|
||||
|
||||
If average load is > 5*Core, then status is set to "CRITICAL".
|
||||
|
||||
### Memory
|
||||
|
||||

|
||||
|
||||
Glances uses tree columns: memory (RAM), "real" and swap.
|
||||
|
||||
Real used memory is: used - cache.
|
||||
|
||||
Real free memory is: free + cache.
|
||||
|
||||
With Glances, alerts are only set for on used swap and real memory.
|
||||
|
||||
If memory is < 50%, then status is set to "OK".
|
||||
|
||||
If memory is > 50%, then status is set to "CAREFUL".
|
||||
|
||||
If memory is > 70%, then status is set to "WARNING".
|
||||
|
||||
If memory is > 90%, then status is set to "CRITICAL".
|
||||
|
||||
### Network bit rate
|
||||
|
||||

|
||||
|
||||
Glances display the network interface bit rate. The unit is adapted
|
||||
dynamicaly (bits per second, Kbits per second, Mbits per second...).
|
||||
|
||||
Alerts are set only if the network interface maximum speed is available.
|
||||
|
||||
If bitrate is < 50%, then status is set to "OK".
|
||||
|
||||
If bitrate is > 50%, then status is set to "CAREFUL".
|
||||
|
||||
If bitrate is > 70%, then status is set to "WARNING".
|
||||
|
||||
If bitrate is > 90%, then status is set to "CRITICAL".
|
||||
|
||||
For exemple, on a 100 Mbps Ethernet interface, the warning status is set
|
||||
if the bit rate is higher than 70 Mbps.
|
||||
|
||||
### Disk I/O
|
||||
|
||||

|
||||
|
||||
Glances display the disk I/O throughput. The unit is adapted dynamicaly
|
||||
(bytes per second, Kbytes per second, Mbytes per second...).
|
||||
|
||||
There is no alert on this information.
|
||||
|
||||
### Filesystem
|
||||
|
||||

|
||||
|
||||
Glances display the total and used filesytem disk space. The unit is
|
||||
adapted dynamicaly (bytes per second, Kbytes per second, Mbytes per
|
||||
second...).
|
||||
|
||||
Alerts are set for used disk space:
|
||||
|
||||
If disk used is < 50%, then status is set to "OK".
|
||||
|
||||
If disk used is > 50%, then status is set to "CAREFUL".
|
||||
|
||||
If disk used is > 70%, then status is set to "WARNING".
|
||||
|
||||
If disk used is > 90%, then status is set to "CRITICAL".
|
||||
|
||||
### Processes
|
||||
|
||||

|
||||
|
||||
Glances displays a summary and a list of processes.
|
||||
|
||||
By default (or if you hit the 'a' key) the process list is automaticaly
|
||||
sorted by CPU of memory consumption.
|
||||
|
||||
The number of processes in the list is adapted to the screen size.
|
||||
|
||||
* VIRT: Virtual memory size (in byte)
|
||||
* REST: Amount of resident memory (in byte)
|
||||
* CPU%: % of CPU used by the process
|
||||
* MEM%: % of MEM used by the process
|
||||
* PID: Process ID
|
||||
* USER: Process user ID
|
||||
* NI: Nice level of the process
|
||||
* S: Process status
|
||||
|
||||
R - Running
|
||||
D - Sleeping (may not be interrupted)
|
||||
S - Sleeping (may be interrupted)
|
||||
T - Traced or stopped
|
||||
Z - Zombie or "hung" process
|
||||
|
||||
* TIME+: Cumulative CPU time used
|
||||
* NAME: Process name or command line
|
||||
|
||||
|
||||
### Logs
|
||||
|
||||

|
||||
|
||||
A logs list is displayed in the bottom of the screen if (an only if):
|
||||
|
||||
* at least one WARNING or CRITICAL alert was occured.
|
||||
* space is available in the bottom of the console/terminal
|
||||
|
||||
There is one line per alert with the following information:
|
||||
|
||||
* start date
|
||||
* end date
|
||||
* alert name
|
||||
* (min/avg/max) values
|
||||
|
||||
### Footer
|
||||
|
||||

|
||||
|
||||
Glances displays the current time/date and access to the embeded help screen.
|
||||
|
||||
## Localisation
|
||||
|
||||
To generate french locale execute as root or sudo :
|
||||
i18n_francais_generate.sh
|
||||
|
||||
To generate spanish locale execute as root or sudo :
|
||||
i18n_espanol_generate.sh
|
||||
|
||||
## Todo
|
||||
|
||||
You are welcome to contribute to this software.
|
||||
|
||||
* Code optimization
|
||||
* Port to FreeBSD and Mac OS X
|
||||
* Documentation for HTML and CVS export option
|
||||
5
TODO
|
|
@ -1,4 +1 @@
|
|||
- Packaging for .deb (Debian|Ubuntu|Mint) Linux distributions (contributors needed)
|
||||
- Test/coding for xBSD
|
||||
- Add control to check the libstatgrab version in the script
|
||||
- Add a limit class to manage the OK ,CAREFUL,WARNING,CRITICAL limits
|
||||
- Include in the Debian repos (contributors needed)
|
||||
|
|
|
|||
157
autogen.sh
|
|
@ -1,157 +0,0 @@
|
|||
#!/bin/sh
|
||||
# Run this to generate all the initial makefiles, etc.
|
||||
|
||||
srcdir=`dirname $0`
|
||||
test -z "$srcdir" && srcdir=.
|
||||
|
||||
DIE=0
|
||||
|
||||
if [ -n "$GNOME2_DIR" ]; then
|
||||
ACLOCAL_FLAGS="-I $GNOME2_DIR/share/aclocal $ACLOCAL_FLAGS"
|
||||
LD_LIBRARY_PATH="$GNOME2_DIR/lib:$LD_LIBRARY_PATH"
|
||||
PATH="$GNOME2_DIR/bin:$PATH"
|
||||
export PATH
|
||||
export LD_LIBRARY_PATH
|
||||
fi
|
||||
|
||||
(test -f $srcdir/configure.ac) || {
|
||||
echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
|
||||
echo " top-level package directory"
|
||||
exit 1
|
||||
}
|
||||
|
||||
(autoconf --version) < /dev/null > /dev/null 2>&1 || {
|
||||
echo
|
||||
echo "**Error**: You must have \`autoconf' installed."
|
||||
echo "Download the appropriate package for your distribution,"
|
||||
echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
|
||||
DIE=1
|
||||
}
|
||||
|
||||
(grep "^IT_PROG_INTLTOOL" $srcdir/configure.ac >/dev/null) && {
|
||||
(intltoolize --version) < /dev/null > /dev/null 2>&1 || {
|
||||
echo
|
||||
echo "**Error**: You must have \`intltool' installed."
|
||||
echo "You can get it from:"
|
||||
echo " ftp://ftp.gnome.org/pub/GNOME/"
|
||||
DIE=1
|
||||
}
|
||||
}
|
||||
|
||||
(grep "^AM_PROG_XML_I18N_TOOLS" $srcdir/configure.ac >/dev/null) && {
|
||||
(xml-i18n-toolize --version) < /dev/null > /dev/null 2>&1 || {
|
||||
echo
|
||||
echo "**Error**: You must have \`xml-i18n-toolize' installed."
|
||||
echo "You can get it from:"
|
||||
echo " ftp://ftp.gnome.org/pub/GNOME/"
|
||||
DIE=1
|
||||
}
|
||||
}
|
||||
|
||||
(grep "^LT_INIT" $srcdir/configure.ac >/dev/null) && {
|
||||
(libtool --version) < /dev/null > /dev/null 2>&1 || {
|
||||
echo
|
||||
echo "**Error**: You must have \`libtool' installed."
|
||||
echo "You can get it from: ftp://ftp.gnu.org/pub/gnu/"
|
||||
DIE=1
|
||||
}
|
||||
}
|
||||
|
||||
(grep "^AM_GLIB_GNU_GETTEXT" $srcdir/configure.ac >/dev/null) && {
|
||||
(grep "sed.*POTFILES" $srcdir/configure.ac) > /dev/null || \
|
||||
(glib-gettextize --version) < /dev/null > /dev/null 2>&1 || {
|
||||
echo
|
||||
echo "**Error**: You must have \`glib' installed."
|
||||
echo "You can get it from: ftp://ftp.gtk.org/pub/gtk"
|
||||
DIE=1
|
||||
}
|
||||
}
|
||||
|
||||
(automake --version) < /dev/null > /dev/null 2>&1 || {
|
||||
echo
|
||||
echo "**Error**: You must have \`automake' installed."
|
||||
echo "You can get it from: ftp://ftp.gnu.org/pub/gnu/"
|
||||
DIE=1
|
||||
NO_AUTOMAKE=yes
|
||||
}
|
||||
|
||||
|
||||
# if no automake, don't bother testing for aclocal
|
||||
test -n "$NO_AUTOMAKE" || (aclocal --version) < /dev/null > /dev/null 2>&1 || {
|
||||
echo
|
||||
echo "**Error**: Missing \`aclocal'. The version of \`automake'"
|
||||
echo "installed doesn't appear recent enough."
|
||||
echo "You can get automake from ftp://ftp.gnu.org/pub/gnu/"
|
||||
DIE=1
|
||||
}
|
||||
|
||||
if test "$DIE" -eq 1; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if test -z "$*"; then
|
||||
echo "**Warning**: I am going to run \`configure' with no arguments."
|
||||
echo "If you wish to pass any to it, please specify them on the"
|
||||
echo \`$0\'" command line."
|
||||
echo
|
||||
fi
|
||||
|
||||
case $CC in
|
||||
xlc )
|
||||
am_opt=--include-deps;;
|
||||
esac
|
||||
|
||||
for coin in `find $srcdir -path $srcdir/CVS -prune -o -name configure.ac -print`
|
||||
do
|
||||
dr=`dirname $coin`
|
||||
if test -f $dr/NO-AUTO-GEN; then
|
||||
echo skipping $dr -- flagged as no auto-gen
|
||||
else
|
||||
echo processing $dr
|
||||
( cd $dr
|
||||
|
||||
aclocalinclude="$ACLOCAL_FLAGS"
|
||||
|
||||
if grep "^AM_GLIB_GNU_GETTEXT" configure.ac >/dev/null; then
|
||||
echo "Creating $dr/aclocal.m4 ..."
|
||||
test -r $dr/aclocal.m4 || touch $dr/aclocal.m4
|
||||
echo "Running glib-gettextize... Ignore non-fatal messages."
|
||||
echo "no" | glib-gettextize --force --copy
|
||||
echo "Making $dr/aclocal.m4 writable ..."
|
||||
test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4
|
||||
fi
|
||||
if grep "^IT_PROG_INTLTOOL" configure.ac >/dev/null; then
|
||||
echo "Running intltoolize..."
|
||||
intltoolize --copy --force --automake
|
||||
fi
|
||||
if grep "^AM_PROG_XML_I18N_TOOLS" configure.ac >/dev/null; then
|
||||
echo "Running xml-i18n-toolize..."
|
||||
xml-i18n-toolize --copy --force --automake
|
||||
fi
|
||||
if grep "^LT_INIT" configure.ac >/dev/null; then
|
||||
if test -z "$NO_LIBTOOLIZE" ; then
|
||||
echo "Running libtoolize..."
|
||||
libtoolize --force --copy
|
||||
fi
|
||||
fi
|
||||
echo "Running aclocal $aclocalinclude ..."
|
||||
aclocal $aclocalinclude
|
||||
if grep "^A[CM]_CONFIG_HEADER" configure.ac >/dev/null; then
|
||||
echo "Running autoheader..."
|
||||
autoheader
|
||||
fi
|
||||
echo "Running automake --gnu $am_opt ..."
|
||||
automake --add-missing --gnu $am_opt
|
||||
echo "Running autoconf ..."
|
||||
autoconf
|
||||
)
|
||||
fi
|
||||
done
|
||||
|
||||
if test x$NOCONFIGURE = x; then
|
||||
echo Running $srcdir/configure "$@" ...
|
||||
$srcdir/configure "$@" \
|
||||
&& echo Now type \`make\' to compile. || exit 1
|
||||
else
|
||||
echo Skipping configure process.
|
||||
fi
|
||||
58
buildout.cfg
|
|
@ -1,58 +0,0 @@
|
|||
# Using buildout to install glances (thx to Benoit !)
|
||||
#
|
||||
# Install system dependancies (debian example with python2.7 pinned from wheezy)
|
||||
# $ sudo apt-get install build-essential libstatgrab-dev python2.7-dev
|
||||
#
|
||||
# Bootstrap buildout
|
||||
# $ mkdir glances
|
||||
# $ cd glances
|
||||
# $ wget http://svn.zope.org/*checkout*/zc.buildout/trunk/bootstrap/bootstrap.py
|
||||
# $ python2.7 bootstrap.py -d
|
||||
# $ bin/buildout
|
||||
#
|
||||
# Run glances !
|
||||
# $ bin/glances
|
||||
#
|
||||
# Note: Having a console script entry point in setup.py will be cleanner that
|
||||
# defining it in buildout and avoid the dirty extra-path (anyone know a
|
||||
# cleanner solution ?)
|
||||
# See http://guide.python-distribute.org/creation.html#entry-points
|
||||
|
||||
|
||||
|
||||
[buildout]
|
||||
parts =
|
||||
pystatgrab-src
|
||||
pystatgrab-install
|
||||
glances
|
||||
|
||||
include-site-packages = false
|
||||
allowed-eggs-from-site-packages = false
|
||||
|
||||
[config]
|
||||
glances_version = 1.3.7
|
||||
pystatgrab_version = 0.5
|
||||
pystatgrab_download_url = http://ftp.uk.i-scream.org/sites/ftp.i-scream.org/pub/i-scream/pystatgrab
|
||||
|
||||
[pystatgrab-src]
|
||||
recipe = hexagonit.recipe.download
|
||||
url = ${config:pystatgrab_download_url}/pystatgrab-${config:pystatgrab_version}.tar.gz
|
||||
|
||||
[pystatgrab-install]
|
||||
recipe= iw.recipe.cmd
|
||||
on_install = true
|
||||
cmds =
|
||||
cd ${buildout:directory}/parts/pystatgrab-src/pystatgrab-${config:pystatgrab_version}
|
||||
${buildout:executable} setup.py install
|
||||
|
||||
[glances]
|
||||
recipe=zc.recipe.egg
|
||||
extra-paths =
|
||||
${buildout:eggs-directory}/Glances-${config:glances_version}-py2.7.egg/src/
|
||||
|
||||
entry-points = glances=glances:main
|
||||
|
||||
eggs =
|
||||
glances == ${config:glances_version}
|
||||
pystatgrab == ${config:pystatgrab_version}
|
||||
|
||||
25
config.h.in
|
|
@ -1,25 +0,0 @@
|
|||
/* config.h.in. Generated from configure.ac by autoheader. */
|
||||
|
||||
/* Name of package */
|
||||
#undef PACKAGE
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#undef PACKAGE_BUGREPORT
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#undef PACKAGE_NAME
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#undef PACKAGE_STRING
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#undef PACKAGE_TARNAME
|
||||
|
||||
/* Define to the home page for this package. */
|
||||
#undef PACKAGE_URL
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#undef PACKAGE_VERSION
|
||||
|
||||
/* Version number of package */
|
||||
#undef VERSION
|
||||
27
configure.ac
|
|
@ -1,27 +0,0 @@
|
|||
dnl Process this file with autoconf to produce a configure script.
|
||||
dnl Created by Anjuta application wizard.
|
||||
|
||||
AC_INIT(Glances, 1.3.3, , glances)
|
||||
|
||||
AC_CONFIG_HEADERS([config.h])
|
||||
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
|
||||
AM_INIT_AUTOMAKE([1.11])
|
||||
|
||||
AM_SILENT_RULES([yes])
|
||||
|
||||
AM_PATH_PYTHON([2.6])
|
||||
|
||||
dnl AX_PYTHON_MODULE([statgrab],[needed])
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
AC_OUTPUT([
|
||||
Makefile
|
||||
src/Makefile
|
||||
man/Makefile
|
||||
|
||||
])
|
||||
BIN
doc/cpu.png
|
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 4.1 KiB |
BIN
doc/footer.png
|
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 2.9 KiB |
BIN
doc/header.png
|
Before Width: | Height: | Size: 7.4 KiB After Width: | Height: | Size: 4.1 KiB |
BIN
doc/mem.png
|
Before Width: | Height: | Size: 8.3 KiB After Width: | Height: | Size: 7.6 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 46 KiB |
|
|
@ -1,289 +0,0 @@
|
|||
# Spanish translations for GLANCES package.
|
||||
# Copyright (C) 2012 THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the GLANCES package.
|
||||
# Peter Fontaine <jeanbob@jeanbob.eu>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: GLANCES 1.3.5\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-01-06 15:20+0100\n"
|
||||
"PO-Revision-Date: 2012-01-12 19:07+0100\n"
|
||||
"Last-Translator: Peter Fontaine <jeanbob@jeanbob.eu>\n"
|
||||
"Language-Team: Spanish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: src/glances.py:42
|
||||
msgid "Textmode GUI initialization failed, Glances cannot start."
|
||||
msgstr "Inicialización de la interfaz gráfica de usuario en modo texto imposible. Glances no se puede iniciar."
|
||||
|
||||
#: src/glances.py:138
|
||||
msgid "Error: Can not init the libstatgrab library.\n"
|
||||
msgstr "Error: No se puede inicio la biblioteca libstatgrab.\n"
|
||||
|
||||
#: src/glances.py:316
|
||||
msgid "Error: Can not init the curses library.\n"
|
||||
msgstr "Error: No se puede inicio la biblioteca curses.\n"
|
||||
|
||||
#: src/glances.py:556
|
||||
msgid "Glances help (press 'h' to hide)"
|
||||
msgstr "Ayuda de Glances (prensa 'h' para ocultar)"
|
||||
|
||||
#: src/glances.py:557
|
||||
msgid "'h'\tto display|hide this help message"
|
||||
msgstr "'h'\tpara mostrar/ocultar la ayuda"
|
||||
|
||||
#: src/glances.py:558
|
||||
msgid "'a'\tto sort processes automatically"
|
||||
msgstr "'a'\tpara ordonar el proceses automáticamente"
|
||||
|
||||
#: src/glances.py:559
|
||||
msgid "'c'\tto sort processes by CPU consumption"
|
||||
msgstr "'c'\tpara ordonar el proceses para consumo del CPU"
|
||||
|
||||
#: src/glances.py:560
|
||||
msgid "'d'\tto disable|enable the disk IO stats"
|
||||
msgstr "'d'\tpara (des)activar estad del ES disco."
|
||||
|
||||
#: src/glances.py:561
|
||||
msgid "'f'\tto disable|enable the file system stats"
|
||||
msgstr "'f'\tpara (des)activar estad del sis de archivos"
|
||||
|
||||
#: src/glances.py:562
|
||||
msgid "'m'\tto sort processes by process size"
|
||||
msgstr "'m'\tpara ordonar el procesos para tamaña de proceso "
|
||||
|
||||
#: src/glances.py:563
|
||||
msgid "'n'\tto disable|enable the network interfaces stats"
|
||||
msgstr "'n'\tpara (des)activar estad del interfaces de red."
|
||||
|
||||
#: src/glances.py:564
|
||||
msgid "'q'\tto exit Glances"
|
||||
msgstr "'q'\tpara salir Glances"
|
||||
|
||||
#: src/glances.py:590
|
||||
msgid "Glances v"
|
||||
msgstr "Glances v"
|
||||
|
||||
#: src/glances.py:590
|
||||
msgid " running on "
|
||||
msgstr " que se ejecutan en "
|
||||
|
||||
#: src/glances.py:614
|
||||
msgid "Cpu"
|
||||
msgstr ""
|
||||
|
||||
#: src/glances.py:616
|
||||
msgid "User:"
|
||||
msgstr "Usuario:"
|
||||
|
||||
#: src/glances.py:617
|
||||
msgid "Kernel:"
|
||||
msgstr "Núcleo"
|
||||
|
||||
#: src/glances.py:618
|
||||
msgid "Nice:"
|
||||
msgstr ""
|
||||
|
||||
#: src/glances.py:619
|
||||
msgid "Idle:"
|
||||
msgstr "Ocioso:"
|
||||
|
||||
#: src/glances.py:634
|
||||
msgid "Load"
|
||||
msgstr "Carga"
|
||||
|
||||
#: src/glances.py:635
|
||||
msgid "-Core"
|
||||
msgstr "-Núcleo"
|
||||
|
||||
#: src/glances.py:636
|
||||
msgid "1 min:"
|
||||
msgstr ""
|
||||
|
||||
#: src/glances.py:637
|
||||
msgid "5 mins:"
|
||||
msgstr ""
|
||||
|
||||
#: src/glances.py:638
|
||||
msgid "15 mins:"
|
||||
msgstr ""
|
||||
|
||||
#: src/glances.py:652
|
||||
msgid "Mem MB"
|
||||
msgstr "Mem Mb"
|
||||
|
||||
#: src/glances.py:653
|
||||
msgid "Mem"
|
||||
msgstr ""
|
||||
|
||||
#: src/glances.py:654
|
||||
msgid "Swap"
|
||||
msgstr ""
|
||||
|
||||
#: src/glances.py:655
|
||||
msgid "Real"
|
||||
msgstr ""
|
||||
|
||||
#: src/glances.py:656
|
||||
msgid "Total:"
|
||||
msgstr ""
|
||||
|
||||
#: src/glances.py:657
|
||||
msgid "Used:"
|
||||
msgstr "Usado:"
|
||||
|
||||
#: src/glances.py:658
|
||||
msgid "Free:"
|
||||
msgstr "Libre:"
|
||||
|
||||
#: src/glances.py:692
|
||||
msgid "Net rate"
|
||||
msgstr "Red ratio"
|
||||
|
||||
#: src/glances.py:693
|
||||
msgid "Rx/ps"
|
||||
msgstr ""
|
||||
|
||||
#: src/glances.py:694
|
||||
msgid "Tx/ps"
|
||||
msgstr ""
|
||||
|
||||
#: src/glances.py:714
|
||||
msgid "Disk I/O"
|
||||
msgstr "ES disco"
|
||||
|
||||
#: src/glances.py:715
|
||||
msgid "In/ps"
|
||||
msgstr ""
|
||||
|
||||
#: src/glances.py:716
|
||||
msgid "Out/ps"
|
||||
msgstr ""
|
||||
|
||||
#: src/glances.py:737
|
||||
msgid "Mount"
|
||||
msgstr "Montaje"
|
||||
|
||||
#: src/glances.py:738 src/glances.py:767
|
||||
msgid "Total"
|
||||
msgstr ""
|
||||
|
||||
#: src/glances.py:739
|
||||
msgid "Used"
|
||||
msgstr "Usado"
|
||||
|
||||
#: src/glances.py:766
|
||||
msgid "Process"
|
||||
msgstr "Proceso"
|
||||
|
||||
#: src/glances.py:768
|
||||
msgid "Running"
|
||||
msgstr "Funcionar"
|
||||
|
||||
#: src/glances.py:769
|
||||
msgid "Sleeping"
|
||||
msgstr "Sueño"
|
||||
|
||||
#: src/glances.py:770
|
||||
msgid "Other"
|
||||
msgstr "Otro"
|
||||
|
||||
#: src/glances.py:771
|
||||
msgid "Number:"
|
||||
msgstr "Número:"
|
||||
|
||||
#: src/glances.py:789
|
||||
msgid "Size MB"
|
||||
msgstr "Tamaño Mb"
|
||||
|
||||
#: src/glances.py:790
|
||||
msgid "Res MB"
|
||||
msgstr "Res Mb"
|
||||
|
||||
#: src/glances.py:791
|
||||
msgid "Name"
|
||||
msgstr "Designación"
|
||||
|
||||
#: src/glances.py:812
|
||||
msgid " OK "
|
||||
msgstr " BUENO "
|
||||
|
||||
#: src/glances.py:813
|
||||
msgid "CAREFUL "
|
||||
msgstr " ATENTO "
|
||||
|
||||
#: src/glances.py:814
|
||||
msgid "WARNING "
|
||||
msgstr " ALARMA "
|
||||
|
||||
#: src/glances.py:815
|
||||
msgid "CRITICAL"
|
||||
msgstr "CRÍTICA "
|
||||
|
||||
#: src/glances.py:826
|
||||
msgid "%Y-%m-%d %H:%M:%S"
|
||||
msgstr "%d.%m.%Y %H:%M:%S"
|
||||
|
||||
#: src/glances.py:834
|
||||
msgid "Glances version "
|
||||
msgstr ""
|
||||
|
||||
#: src/glances.py:839
|
||||
msgid "Usage: glances.py [-t|--time sec] [-h|--help] [-v|--version]"
|
||||
msgstr "Utilisation: glances.py [-t|--time sec] [-h|--help] [-v|--version]"
|
||||
|
||||
#: src/glances.py:841
|
||||
msgid "\t-h:\tDisplay the syntax and exit"
|
||||
msgstr "\t-h:\tMuestra la sintaxis y salir"
|
||||
|
||||
#: src/glances.py:842
|
||||
msgid "\t-t sec:\tSet the refresh time in second default is 1"
|
||||
msgstr "\t-t sec:\tEstablecer el tiempo de actualización en segundos"
|
||||
|
||||
#: src/glances.py:843
|
||||
msgid "\t-v:\tDisplay the version and exit"
|
||||
msgstr "\t-v:\tMuestra la versión y salir"
|
||||
|
||||
#: src/glances.py:845
|
||||
msgid "When Glances is running, you can press:"
|
||||
msgstr "Cuando Glances es ejecutando, puede pulsar:"
|
||||
|
||||
#: src/glances.py:846
|
||||
msgid "'a' to set the automatic mode. The processes are sorted automatically"
|
||||
msgstr "'a' para establecer el modo automático. Los procesos se ordenan automáticamente"
|
||||
|
||||
#: src/glances.py:847
|
||||
msgid "'c' to sort the processes list by CPU consumption"
|
||||
msgstr "'c' para ordenar la lista de procesos por el consumo de CPU"
|
||||
|
||||
#: src/glances.py:848
|
||||
msgid "'d' to disable or enable the disk IO stats"
|
||||
msgstr "'d' para (des)activar las estadísticas del ES disco"
|
||||
|
||||
#: src/glances.py:849
|
||||
msgid "'f' to disable or enable the file system stats"
|
||||
msgstr "'f' para (des)activar las estadísticas del sistemas de archivos"
|
||||
|
||||
#: src/glances.py:850
|
||||
msgid "'h' to hide or show the help message"
|
||||
msgstr "'h' para ocultar o mostrar el mensaje de ayuda"
|
||||
|
||||
#: src/glances.py:851
|
||||
msgid "'m' to sort the processes list by process size"
|
||||
msgstr "'m' para ordenar la lista de procesos por tamaño de proceso"
|
||||
|
||||
#: src/glances.py:852
|
||||
msgid "'n' to disable or enable the network interfaces stats"
|
||||
msgstr "'n' para (des)activar las estadísticas del interfaces de red"
|
||||
|
||||
#: src/glances.py:853
|
||||
msgid "'q' to exit"
|
||||
msgstr "'q' para salir"
|
||||
|
||||
#: src/glances.py:879
|
||||
msgid "Error: Refresh time should be a positive non-null integer"
|
||||
msgstr "Error: tiempo de actualización debe ser un entero positivo no nulo"
|
||||
|
|
@ -1,290 +0,0 @@
|
|||
# French translations for PACKAGE package
|
||||
# Traductions françaises du paquet PACKAGE.
|
||||
# Copyright (C) 2012 THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# Peter Fontaine <jeanbob@jeanbob.eu>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-01-06 15:20+0100\n"
|
||||
"PO-Revision-Date: 2012-01-06 15:23+0100\n"
|
||||
"Last-Translator: Peter Fontaine <jeanbob@jeanbob.eu>\n"
|
||||
"Language-Team: French\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#: src/glances.py:42
|
||||
msgid "Textmode GUI initialization failed, Glances cannot start."
|
||||
msgstr "Initialisation de l'interface utilisateur textuel impossible, Glances ne peut être démaré"
|
||||
|
||||
#: src/glances.py:138
|
||||
msgid "Error: Can not init the libstatgrab library.\n"
|
||||
msgstr "Erreur: Impossible d'initialiser la bibliothèques libstatgrab.\n"
|
||||
|
||||
#: src/glances.py:316
|
||||
msgid "Error: Can not init the curses library.\n"
|
||||
msgstr "Erreur: Impossible d'initialiser la bibliothèques curses"
|
||||
|
||||
#: src/glances.py:556
|
||||
msgid "Glances help (press 'h' to hide)"
|
||||
msgstr "Aide Glances (appuyer sur 'h' pour cacher)"
|
||||
|
||||
#: src/glances.py:557
|
||||
msgid "'h'\tto display|hide this help message"
|
||||
msgstr "'h'\tpour afficher|cacher ce message d'aide"
|
||||
|
||||
#: src/glances.py:558
|
||||
msgid "'a'\tto sort processes automatically"
|
||||
msgstr "'a'\tpour trier les processus automatiquement"
|
||||
|
||||
#: src/glances.py:559
|
||||
msgid "'c'\tto sort processes by CPU consumption"
|
||||
msgstr "'c'\tpour trier les processus par consomation du CPU"
|
||||
|
||||
#: src/glances.py:560
|
||||
msgid "'d'\tto disable|enable the disk IO stats"
|
||||
msgstr "'d'\tpour désactiver|activer les statistiques E/S disque"
|
||||
|
||||
#: src/glances.py:561
|
||||
msgid "'f'\tto disable|enable the file system stats"
|
||||
msgstr "'f'\tpour désactiver|activer les statistiques du système de fichiers"
|
||||
|
||||
#: src/glances.py:562
|
||||
msgid "'m'\tto sort processes by process size"
|
||||
msgstr "'m'\tpour trier les processus pas taille"
|
||||
|
||||
#: src/glances.py:563
|
||||
msgid "'n'\tto disable|enable the network interfaces stats"
|
||||
msgstr "'n'\tpour désactiver|activer les statistiques des interfaces réseaux"
|
||||
|
||||
#: src/glances.py:564
|
||||
msgid "'q'\tto exit Glances"
|
||||
msgstr "'q'\tpour quitter Glances"
|
||||
|
||||
#: src/glances.py:590
|
||||
msgid "Glances v"
|
||||
msgstr "Glances v"
|
||||
|
||||
#: src/glances.py:590
|
||||
msgid " running on "
|
||||
msgstr " en fonction sur "
|
||||
|
||||
#: src/glances.py:614
|
||||
msgid "Cpu"
|
||||
msgstr "Cpu"
|
||||
|
||||
#: src/glances.py:616
|
||||
msgid "User:"
|
||||
msgstr "Utilisateur:"
|
||||
|
||||
#: src/glances.py:617
|
||||
msgid "Kernel:"
|
||||
msgstr "Noyau:"
|
||||
|
||||
#: src/glances.py:618
|
||||
msgid "Nice:"
|
||||
msgstr ""
|
||||
|
||||
#: src/glances.py:619
|
||||
msgid "Idle:"
|
||||
msgstr "Repos:"
|
||||
|
||||
#: src/glances.py:634
|
||||
msgid "Load"
|
||||
msgstr "Charge"
|
||||
|
||||
#: src/glances.py:635
|
||||
msgid "-Core"
|
||||
msgstr "-Coeurs"
|
||||
|
||||
#: src/glances.py:636
|
||||
msgid "1 min:"
|
||||
msgstr "1 min:"
|
||||
|
||||
#: src/glances.py:637
|
||||
msgid "5 mins:"
|
||||
msgstr "5 mins:"
|
||||
|
||||
#: src/glances.py:638
|
||||
msgid "15 mins:"
|
||||
msgstr "15 mins"
|
||||
|
||||
#: src/glances.py:652
|
||||
msgid "Mem MB"
|
||||
msgstr "Mem MB"
|
||||
|
||||
#: src/glances.py:653
|
||||
msgid "Mem"
|
||||
msgstr "Mem"
|
||||
|
||||
#: src/glances.py:654
|
||||
msgid "Swap"
|
||||
msgstr "Swap"
|
||||
|
||||
#: src/glances.py:655
|
||||
msgid "Real"
|
||||
msgstr "Réel"
|
||||
|
||||
#: src/glances.py:656
|
||||
msgid "Total:"
|
||||
msgstr "Total:"
|
||||
|
||||
#: src/glances.py:657
|
||||
msgid "Used:"
|
||||
msgstr "Utilisé:"
|
||||
|
||||
#: src/glances.py:658
|
||||
msgid "Free:"
|
||||
msgstr "Libre:"
|
||||
|
||||
#: src/glances.py:692
|
||||
msgid "Net rate"
|
||||
msgstr "Ratio net"
|
||||
|
||||
#: src/glances.py:693
|
||||
msgid "Rx/ps"
|
||||
msgstr "Px/ps"
|
||||
|
||||
#: src/glances.py:694
|
||||
msgid "Tx/ps"
|
||||
msgstr "Tx/ps"
|
||||
|
||||
#: src/glances.py:714
|
||||
msgid "Disk I/O"
|
||||
msgstr "E/S Disque"
|
||||
|
||||
#: src/glances.py:715
|
||||
msgid "In/ps"
|
||||
msgstr "In/ps"
|
||||
|
||||
#: src/glances.py:716
|
||||
msgid "Out/ps"
|
||||
msgstr "Out/ps"
|
||||
|
||||
#: src/glances.py:737
|
||||
msgid "Mount"
|
||||
msgstr "Montage"
|
||||
|
||||
#: src/glances.py:738 src/glances.py:767
|
||||
msgid "Total"
|
||||
msgstr "Total"
|
||||
|
||||
#: src/glances.py:739
|
||||
msgid "Used"
|
||||
msgstr "Utilisé"
|
||||
|
||||
#: src/glances.py:766
|
||||
msgid "Process"
|
||||
msgstr "Processus"
|
||||
|
||||
#: src/glances.py:768
|
||||
msgid "Running"
|
||||
msgstr "En marche"
|
||||
|
||||
#: src/glances.py:769
|
||||
msgid "Sleeping"
|
||||
msgstr "En sommeil"
|
||||
|
||||
#: src/glances.py:770
|
||||
msgid "Other"
|
||||
msgstr "Autre"
|
||||
|
||||
#: src/glances.py:771
|
||||
msgid "Number:"
|
||||
msgstr "Nombre:"
|
||||
|
||||
#: src/glances.py:789
|
||||
msgid "Size MB"
|
||||
msgstr "Taille MB"
|
||||
|
||||
#: src/glances.py:790
|
||||
msgid "Res MB"
|
||||
msgstr "Res MB"
|
||||
|
||||
#: src/glances.py:791
|
||||
msgid "Name"
|
||||
msgstr "Nom"
|
||||
|
||||
#: src/glances.py:812
|
||||
msgid " OK "
|
||||
msgstr " OK "
|
||||
|
||||
#: src/glances.py:813
|
||||
msgid "CAREFUL "
|
||||
msgstr "CALME "
|
||||
|
||||
#: src/glances.py:814
|
||||
msgid "WARNING "
|
||||
msgstr "DANGER "
|
||||
|
||||
#: src/glances.py:815
|
||||
msgid "CRITICAL"
|
||||
msgstr "CRITIQUE"
|
||||
|
||||
#: src/glances.py:826
|
||||
msgid "%Y-%m-%d %H:%M:%S"
|
||||
msgstr "%d/%m/%Y %H:%M:%S"
|
||||
|
||||
#: src/glances.py:834
|
||||
msgid "Glances version "
|
||||
msgstr "Version Glances"
|
||||
|
||||
#: src/glances.py:839
|
||||
msgid "Usage: glances.py [-t|--time sec] [-h|--help] [-v|--version]"
|
||||
msgstr "Utilisation : glances.py [-t|--time sec] [-h|--help] [-v|--version]"
|
||||
|
||||
#: src/glances.py:841
|
||||
msgid "\t-h:\tDisplay the syntax and exit"
|
||||
msgstr "\t-h:\tAffiche la syntaxe et quitte"
|
||||
|
||||
#: src/glances.py:842
|
||||
msgid "\t-t sec:\tSet the refresh time in second default is 1"
|
||||
msgstr "\t-t sec:\tFixe le temps de raffraichissement en seconde, 1s par défaut"
|
||||
|
||||
#: src/glances.py:843
|
||||
msgid "\t-v:\tDisplay the version and exit"
|
||||
msgstr "\t-v:\tAffiche la version et quitte"
|
||||
|
||||
#: src/glances.py:845
|
||||
msgid "When Glances is running, you can press:"
|
||||
msgstr "Quand Glances fonctionne, vous pouvez appuyer:"
|
||||
|
||||
#: src/glances.py:846
|
||||
msgid "'a' to set the automatic mode. The processes are sorted automatically"
|
||||
msgstr "'a' pour activer le mode auto. Les processus sont trié automatiquement"
|
||||
|
||||
#: src/glances.py:847
|
||||
msgid "'c' to sort the processes list by CPU consumption"
|
||||
msgstr "'c' pour trier les processus par consomation CPU"
|
||||
|
||||
#: src/glances.py:848
|
||||
msgid "'d' to disable or enable the disk IO stats"
|
||||
msgstr "'d' pour désactiver ou activer les statistiques E/S disque"
|
||||
|
||||
#: src/glances.py:849
|
||||
msgid "'f' to disable or enable the file system stats"
|
||||
msgstr "'f' pour désactiver ou activer les statistiques du système de fichier"
|
||||
|
||||
#: src/glances.py:850
|
||||
msgid "'h' to hide or show the help message"
|
||||
msgstr "'h' pour cacher ou afficher le message d'aide"
|
||||
|
||||
#: src/glances.py:851
|
||||
msgid "'m' to sort the processes list by process size"
|
||||
msgstr "'m' pour trier les processus par taille"
|
||||
|
||||
#: src/glances.py:852
|
||||
msgid "'n' to disable or enable the network interfaces stats"
|
||||
msgstr "'n' pour désactiver ou activer les statistiques réseaux"
|
||||
|
||||
#: src/glances.py:853
|
||||
msgid "'q' to exit"
|
||||
msgstr "'q' pour quitter"
|
||||
|
||||
#: src/glances.py:879
|
||||
msgid "Error: Refresh time should be a positive non-null integer"
|
||||
msgstr "Erreur: Le temps de raffraichissement doit être un entier positif non nul"
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
### Generating Spanish Locale
|
||||
|
||||
echo "Para instalar correctamente la traducción española,\n"
|
||||
echo "debe ejecutar este script como root o con sudo.\n"
|
||||
echo "\n\n"
|
||||
|
||||
echo "Traducción de JeanBoB <jeanbob@jeanbob.eu>\n\n"
|
||||
|
||||
|
||||
echo "Generación del idioma española...\n"
|
||||
msgfmt i18n/es/LC_MESSAGES/glances.po -o i18n/es/LC_MESSAGES/glances.mo
|
||||
echo "Instalación en el siguiente directorio: /usr/share/locale/es/LC_MESSAGES/\n"
|
||||
cp i18n/es/LC_MESSAGES/glances.mo /usr/share/locale/es/LC_MESSAGES/glances.mo
|
||||
echo "¡Instalación terminado!\n\n"
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
### Generating French Locale
|
||||
|
||||
echo "Pour réussir l'installation de la localisation française,\n"
|
||||
echo "vous devez executer ce script sous l'utilisateur root ou avec sudo.\n"
|
||||
echo "\n\n"
|
||||
|
||||
echo "Traduction par JeanBoB <jeanbob@jeanbob.eu>\n\n"
|
||||
|
||||
|
||||
echo "Genération de la langue française...\n"
|
||||
msgfmt i18n/fr/LC_MESSAGES/glances.po -o i18n/fr/LC_MESSAGES/glances.mo
|
||||
echo "Installation dans le répertoire /usr/share/locale/fr/LC_MESSAGES/\n"
|
||||
cp i18n/fr/LC_MESSAGES/glances.mo /usr/share/locale/fr/LC_MESSAGES/glances.mo
|
||||
echo "Installation terminée\n\n"
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
# ===========================================================================
|
||||
# http://www.gnu.org/software/autoconf-archive/ax_python_module.html
|
||||
# ===========================================================================
|
||||
#
|
||||
# SYNOPSIS
|
||||
#
|
||||
# AX_PYTHON_MODULE(modname[, fatal])
|
||||
#
|
||||
# DESCRIPTION
|
||||
#
|
||||
# Checks for Python module.
|
||||
#
|
||||
# If fatal is non-empty then absence of a module will trigger an error.
|
||||
#
|
||||
# LICENSE
|
||||
#
|
||||
# Copyright (c) 2008 Andrew Collier <colliera@ukzn.ac.za>
|
||||
#
|
||||
# Copying and distribution of this file, with or without modification, are
|
||||
# permitted in any medium without royalty provided the copyright notice
|
||||
# and this notice are preserved. This file is offered as-is, without any
|
||||
# warranty.
|
||||
|
||||
#serial 5
|
||||
|
||||
AU_ALIAS([AC_PYTHON_MODULE], [AX_PYTHON_MODULE])
|
||||
AC_DEFUN([AX_PYTHON_MODULE],[
|
||||
if test -z $PYTHON;
|
||||
then
|
||||
PYTHON="python"
|
||||
fi
|
||||
PYTHON_NAME=`basename $PYTHON`
|
||||
AC_MSG_CHECKING($PYTHON_NAME module: $1)
|
||||
$PYTHON -c "import $1" 2>/dev/null
|
||||
if test $? -eq 0;
|
||||
then
|
||||
AC_MSG_RESULT(yes)
|
||||
eval AS_TR_CPP(HAVE_PYMOD_$1)=yes
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
eval AS_TR_CPP(HAVE_PYMOD_$1)=no
|
||||
#
|
||||
if test -n "$2"
|
||||
then
|
||||
AC_MSG_ERROR(failed to find required module $1)
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
])
|
||||
|
||||
|
|
@ -1 +0,0 @@
|
|||
man_MANS = glances.1
|
||||
|
|
@ -2,14 +2,14 @@
|
|||
.SH NAME
|
||||
glances \- CLI curses based monitoring tool
|
||||
.SH SYNOPSIS
|
||||
.B glances
|
||||
.B glances
|
||||
[\-h] [\-t refresh] [\-v]
|
||||
.SH DESCRIPTION
|
||||
Glances is a free (LGPL) curses-based monitoring tool which aims to present a maximum of information
|
||||
in a minimum of space, ideally to fit in a classical 80x24 terminal. Glances can adapt dynamicaly the
|
||||
displayed informations depending on the terminal size.
|
||||
.PP
|
||||
This tool is written in Python and uses pystatgrab to fetch the statistical values from key elements.
|
||||
This tool is written in Python and uses PsUtil to fetch the statistical values from key elements.
|
||||
.PP
|
||||
You can use the following keys to sort the processesi list:
|
||||
.PP
|
||||
|
|
@ -31,7 +31,7 @@ You can use the following keys to sort the processesi list:
|
|||
.PP
|
||||
'q' Exit
|
||||
.PP
|
||||
The current version grab the following stats: CPU, Load, Memory, Network rate, Disk IO, file system,
|
||||
The current version grab the following stats: CPU, Load, Memory, Network rate, Disk IO, file system,
|
||||
process number and details.
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
|
|
@ -53,6 +53,6 @@ Refresh information every 5 seconds:
|
|||
.SH EXIT STATUS
|
||||
glances returns a zero exit status if it succeeds to print/grab information.
|
||||
.PP
|
||||
It returns 2 if it fails to parse its options (missing arguments, invalid value, etc).
|
||||
It returns 2 if it fails to parse its options (missing arguments, invalid value, etc).
|
||||
.SH AUTHOR
|
||||
Glances is written by Nicolargo (contact@nicolargo.com).
|
||||
|
|
|
|||
BIN
screenshot.png
|
Before Width: | Height: | Size: 100 KiB After Width: | Height: | Size: 140 KiB |
|
|
@ -1,25 +1,43 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
import os
|
||||
from distutils.core import setup
|
||||
from glob import glob
|
||||
from os.path import dirname
|
||||
|
||||
# Utility function to read the README file.
|
||||
# Used for the long_description. It's nice, because now 1) we have a top level
|
||||
# README file and 2) it's easier to type in the README file than to put a raw
|
||||
# string in below ...
|
||||
def read(fname):
|
||||
return open(os.path.join(os.path.dirname(__file__), fname)).read()
|
||||
from setuptools import setup
|
||||
|
||||
setup( name='Glances',
|
||||
version='1.3.7',
|
||||
download_url='https://github.com/downloads/nicolargo/glances/glances-1.3.7.tar.gz',
|
||||
url='https://github.com/nicolargo/glances',
|
||||
description='CLI curses-based monitoring tool',
|
||||
author='Nicolas Hennion',
|
||||
author_email='nicolas@nicolargo.com',
|
||||
license = "LGPL",
|
||||
keywords = "cli curse monitoring system",
|
||||
long_description=read('README'),
|
||||
packages=['src'],
|
||||
install_requires=['pystatgrab>=0.5']
|
||||
data_files = [
|
||||
('share/man/man1', ['man/glances.1']),
|
||||
('share/doc/glances', ['README',
|
||||
'README-fr',
|
||||
'COPYING',
|
||||
'AUTHORS',
|
||||
'ChangeLog',
|
||||
'NEWS',
|
||||
'screenshot.png']),
|
||||
('share/doc/glances/doc', glob('doc/*.png')),
|
||||
('share/glances/html', glob('src/html/*.html')),
|
||||
('share/glances/html/css', glob('src/css/*.css')),
|
||||
('share/glances/html/img', glob('src/img/*.png')),
|
||||
]
|
||||
for mo in glob('i18n/*/LC_MESSAGES/*.mo'):
|
||||
data_files.append((dirname(mo).replace('i18n/', 'share/locale/'), [mo]))
|
||||
|
||||
setup(name='Glances',
|
||||
version='1.4',
|
||||
download_url='https://github.com/downloads/nicolargo/glances/glances-1.4.tar.gz',
|
||||
url='https://github.com/nicolargo/glances',
|
||||
description='CLI curses-based monitoring tool',
|
||||
author='Nicolas Hennion',
|
||||
author_email='nicolas@nicolargo.com',
|
||||
license="LGPL",
|
||||
keywords="cli curses monitoring system",
|
||||
long_description=open('README').read(),
|
||||
install_requires=['psutil>=0.4.1'],
|
||||
packages=['glances'],
|
||||
extras_require = {
|
||||
'HTML': ['jinja2>=2.0'],
|
||||
},
|
||||
include_package_data=True,
|
||||
data_files=data_files,
|
||||
entry_points={"console_scripts": ["glances = glances.glances:main"]},
|
||||
)
|
||||
|
|
|
|||
|
|
@ -1,11 +0,0 @@
|
|||
## Process this file with automake to produce Makefile.in
|
||||
## Created by Anjuta
|
||||
|
||||
## The main script
|
||||
bin_SCRIPTS = glances.py
|
||||
|
||||
## Directory where .class files will be installed
|
||||
glancesdir = $(pythondir)/glances
|
||||
|
||||
glances_PYTHON = \
|
||||
glances.py
|
||||
423
src/Makefile.in
|
|
@ -1,423 +0,0 @@
|
|||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
subdir = src
|
||||
DIST_COMMON = $(glances_PYTHON) $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
|
||||
am__install_max = 40
|
||||
am__nobase_strip_setup = \
|
||||
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
|
||||
am__nobase_strip = \
|
||||
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
|
||||
am__nobase_list = $(am__nobase_strip_setup); \
|
||||
for p in $$list; do echo "$$p $$p"; done | \
|
||||
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
||||
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
||||
if (++n[$$2] == $(am__install_max)) \
|
||||
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
||||
END { for (dir in files) print dir, files[dir] }'
|
||||
am__base_list = \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
||||
am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(glancesdir)"
|
||||
SCRIPTS = $(bin_SCRIPTS)
|
||||
AM_V_GEN = $(am__v_GEN_$(V))
|
||||
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_GEN_0 = @echo " GEN " $@;
|
||||
AM_V_at = $(am__v_at_$(V))
|
||||
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_at_0 = @
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
py_compile = $(top_srcdir)/py-compile
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PYTHON = @PYTHON@
|
||||
PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
|
||||
PYTHON_PLATFORM = @PYTHON_PLATFORM@
|
||||
PYTHON_PREFIX = @PYTHON_PREFIX@
|
||||
PYTHON_VERSION = @PYTHON_VERSION@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
VERSION = @VERSION@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build_alias = @build_alias@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host_alias = @host_alias@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
pkgpyexecdir = @pkgpyexecdir@
|
||||
pkgpythondir = @pkgpythondir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
pyexecdir = @pyexecdir@
|
||||
pythondir = @pythondir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
bin_SCRIPTS = glances.py
|
||||
glancesdir = $(pythondir)/glances
|
||||
glances_PYTHON = \
|
||||
glances.py
|
||||
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu src/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
install-binSCRIPTS: $(bin_SCRIPTS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
|
||||
@list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \
|
||||
for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
|
||||
done | \
|
||||
sed -e 'p;s,.*/,,;n' \
|
||||
-e 'h;s|.*|.|' \
|
||||
-e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
|
||||
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
|
||||
{ d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
|
||||
if ($$2 == $$4) { files[d] = files[d] " " $$1; \
|
||||
if (++n[d] == $(am__install_max)) { \
|
||||
print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
|
||||
else { print "f", d "/" $$4, $$1 } } \
|
||||
END { for (d in files) print "f", d, files[d] }' | \
|
||||
while read type dir files; do \
|
||||
if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
|
||||
test -z "$$files" || { \
|
||||
echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \
|
||||
$(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
|
||||
} \
|
||||
; done
|
||||
|
||||
uninstall-binSCRIPTS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \
|
||||
files=`for p in $$list; do echo "$$p"; done | \
|
||||
sed -e 's,.*/,,;$(transform)'`; \
|
||||
test -n "$$list" || exit 0; \
|
||||
echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(bindir)" && rm -f $$files
|
||||
install-glancesPYTHON: $(glances_PYTHON)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(glancesdir)" || $(MKDIR_P) "$(DESTDIR)$(glancesdir)"
|
||||
@list='$(glances_PYTHON)'; dlist=; list2=; test -n "$(glancesdir)" || list=; \
|
||||
for p in $$list; do \
|
||||
if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \
|
||||
if test -f $$b$$p; then \
|
||||
$(am__strip_dir) \
|
||||
dlist="$$dlist $$f"; \
|
||||
list2="$$list2 $$b$$p"; \
|
||||
else :; fi; \
|
||||
done; \
|
||||
for file in $$list2; do echo $$file; done | $(am__base_list) | \
|
||||
while read files; do \
|
||||
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(glancesdir)'"; \
|
||||
$(INSTALL_DATA) $$files "$(DESTDIR)$(glancesdir)" || exit $$?; \
|
||||
done || exit $$?; \
|
||||
if test -n "$$dlist"; then \
|
||||
if test -z "$(DESTDIR)"; then \
|
||||
PYTHON=$(PYTHON) $(py_compile) --basedir "$(glancesdir)" $$dlist; \
|
||||
else \
|
||||
PYTHON=$(PYTHON) $(py_compile) --destdir "$(DESTDIR)" --basedir "$(glancesdir)" $$dlist; \
|
||||
fi; \
|
||||
else :; fi
|
||||
|
||||
uninstall-glancesPYTHON:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(glances_PYTHON)'; test -n "$(glancesdir)" || list=; \
|
||||
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||
test -n "$$files" || exit 0; \
|
||||
filesc=`echo "$$files" | sed 's|$$|c|'`; \
|
||||
fileso=`echo "$$files" | sed 's|$$|o|'`; \
|
||||
echo " ( cd '$(DESTDIR)$(glancesdir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(glancesdir)" && rm -f $$files || exit $$?; \
|
||||
echo " ( cd '$(DESTDIR)$(glancesdir)' && rm -f" $$filesc ")"; \
|
||||
cd "$(DESTDIR)$(glancesdir)" && rm -f $$filesc || exit $$?; \
|
||||
echo " ( cd '$(DESTDIR)$(glancesdir)' && rm -f" $$fileso ")"; \
|
||||
cd "$(DESTDIR)$(glancesdir)" && rm -f $$fileso
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile $(SCRIPTS)
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(glancesdir)"; do \
|
||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-glancesPYTHON
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am: install-binSCRIPTS
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-generic
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-binSCRIPTS uninstall-glancesPYTHON
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic distclean \
|
||||
distclean-generic distdir dvi dvi-am html html-am info info-am \
|
||||
install install-am install-binSCRIPTS install-data \
|
||||
install-data-am install-dvi install-dvi-am install-exec \
|
||||
install-exec-am install-glancesPYTHON install-html \
|
||||
install-html-am install-info install-info-am install-man \
|
||||
install-pdf install-pdf-am install-ps install-ps-am \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||
mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
|
||||
uninstall-binSCRIPTS uninstall-glancesPYTHON
|
||||
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
|
|
@ -0,0 +1,188 @@
|
|||
/*
|
||||
Reset the sheet
|
||||
*/
|
||||
|
||||
* { margin: 0; padding: 0; }
|
||||
article, aside, details, figcaption, figure, footer, header, hgroup, nav, section { display: block; }
|
||||
[hidden] { display: none; }
|
||||
|
||||
/*
|
||||
Colors table
|
||||
* bg: background color
|
||||
* fg: foreground color
|
||||
*/
|
||||
|
||||
.bgmain { background: transparent; }
|
||||
.fgmain { color: #FFFFFF; }
|
||||
|
||||
.bghost { background: transparent; }
|
||||
.fghost { color: #E3D7BF; font-size: 50px; text-shadow: 1px 1px 1px #e88860, 2px 2px 1px #e88860, 3px 3px 1px #e88860, 3px 3px 1px #0c0d0d, 4px 4px 3px #0c0d0d;}
|
||||
|
||||
.bgsystem { background: transparent; }
|
||||
.fgsystem { color: #E88860; text-shadow: 1px 1px 1px #000; }
|
||||
|
||||
.bgcpu { background: transparent; }
|
||||
.fgcpu { color: #3C8AAD; }
|
||||
|
||||
.bgload { background: transparent; }
|
||||
.fgload { color: #3C8AAD; }
|
||||
|
||||
.bgmem { background: transparent; }
|
||||
.fgmem { color: #3C8AAD; }
|
||||
|
||||
.bgnet { background: transparent; }
|
||||
.fgnet { color: #3C8AAD; }
|
||||
|
||||
.bgdiskio { background: transparent; }
|
||||
.fgdiskio { color: #3C8AAD; }
|
||||
|
||||
.bgfs { background: transparent; }
|
||||
.fgfs { color: #3C8AAD; }
|
||||
|
||||
.bgproc { background: transparent; }
|
||||
.fgproc { color: #3C8AAD; }
|
||||
|
||||
.bgcdefault { background: transparent; }
|
||||
.fgcdefault { color: #FFFFFF; }
|
||||
.bgcok { background: #60AC39; }
|
||||
.fgcok { color: #FFFFFF; }
|
||||
.bgccareful { background: #6039AC; }
|
||||
.fgccareful { color: #FFFFFF; }
|
||||
.bgcwarning { background: #FFAA00; }
|
||||
.fgcwarning { color: #FFFFFF; }
|
||||
.bgcritical { background: #D92626; }
|
||||
.fgcritical { color: #FFFFFF; }
|
||||
|
||||
/*
|
||||
Main
|
||||
*/
|
||||
|
||||
html {
|
||||
background-image: url('../img/bg.png');
|
||||
font-size: 100%; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%;
|
||||
}
|
||||
html, button, input, select, textarea { font-family: sans-serif; }
|
||||
body { margin: 0; font-size: 1em; line-height: 1.4; }
|
||||
::-moz-selection { background: #fe57a1; color: #fff; text-shadow: none; }
|
||||
::selection { background: #fe57a1; color: #fff; text-shadow: none; }
|
||||
|
||||
/* Tables */
|
||||
|
||||
table{
|
||||
font-family: 'Trebuchet MS', sans-serif;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
border-collapse: separate;
|
||||
}
|
||||
|
||||
thead th{
|
||||
padding:5px;
|
||||
border:1px solid #3C8AAD;
|
||||
-webkit-border-top-left-radius:5px;
|
||||
-webkit-border-top-right-radius:5px;
|
||||
-moz-border-radius:5px 5px 0px 0px;
|
||||
border-top-left-radius:5px;
|
||||
border-top-right-radius:5px;
|
||||
}
|
||||
|
||||
thead th:empty{
|
||||
background:transparent;
|
||||
border:none;
|
||||
}
|
||||
|
||||
tfoot td{
|
||||
font-size:16px;
|
||||
text-align:center;
|
||||
padding:10px 0px;
|
||||
}
|
||||
|
||||
tfoot th{
|
||||
}
|
||||
|
||||
tbody td{
|
||||
width:80px;
|
||||
padding:5px;
|
||||
text-align:center;
|
||||
border:1px solid #3C8AAD;
|
||||
-moz-border-radius:2px;
|
||||
-webkit-border-radius:2px;
|
||||
border-radius:2px;
|
||||
}
|
||||
|
||||
#item{
|
||||
width:60px;
|
||||
border:none;
|
||||
text-align:right;
|
||||
color: #8cf;
|
||||
}
|
||||
|
||||
#command{
|
||||
width:240px;
|
||||
font-size:11px;
|
||||
text-align:left;
|
||||
color: #8cf;
|
||||
}
|
||||
|
||||
/* Header */
|
||||
|
||||
header {
|
||||
text-align: center;
|
||||
margin-bottom: 25px;
|
||||
}
|
||||
|
||||
/* Main */
|
||||
|
||||
#main {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#firstline, #secondline {
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
#secondline {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
#sideleft {
|
||||
width: 310px;
|
||||
float: left;
|
||||
margin-right: 25px;
|
||||
}
|
||||
|
||||
#sideright {
|
||||
width: 550px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
#cpu, #load, #mem, #net, #diskio, #fs {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
#cpu, #load {
|
||||
margin-right: 50px;
|
||||
}
|
||||
|
||||
#diskio, #fs {
|
||||
margin-top: 25px;
|
||||
}
|
||||
|
||||
#proclist {
|
||||
margin-top: 50px;
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
|
||||
footer {
|
||||
clear: both;
|
||||
margin: 20px 0px 10px 0px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
footer a {
|
||||
color: white;
|
||||
}
|
||||
3140
src/glances.py
|
|
@ -0,0 +1,60 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
{% block head %}
|
||||
<meta charset="utf-8">
|
||||
<title>{% block title %}Glances{% endblock %}</title>
|
||||
<link rel="stylesheet" href="{% block css %}css/base.css{% endblock %}">
|
||||
{% endblock %}
|
||||
<meta http-equiv="refresh" content="{{ refresh }}" />
|
||||
</head>
|
||||
|
||||
<body class="bgmain fgmain">
|
||||
|
||||
<header>
|
||||
{% block header %}{% endblock %}
|
||||
</header>
|
||||
|
||||
<section id="main">
|
||||
<section id="firstline">
|
||||
<article id="cpu">
|
||||
{% block cpu %}{% endblock %}
|
||||
</article>
|
||||
<article id="load">
|
||||
{% block load %}{% endblock %}
|
||||
</article>
|
||||
<article id="mem">
|
||||
{% block mem %}{% endblock %}
|
||||
</article>
|
||||
</section>
|
||||
<section id="secondline">
|
||||
<section id="sideleft">
|
||||
<article id="net">
|
||||
{% block net %}{% endblock %}
|
||||
</article>
|
||||
<article id="diskio">
|
||||
{% block diskio %}{% endblock %}
|
||||
</article>
|
||||
<article id="fs">
|
||||
{% block fs %}{% endblock %}
|
||||
</article>
|
||||
</section>
|
||||
<section id="sideright">
|
||||
<article id="proccount">
|
||||
{% block proccount %}{% endblock %}
|
||||
</article>
|
||||
<article id="proclist">
|
||||
{% block proclist %}{% endblock %}
|
||||
</article>
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<footer>
|
||||
{% block footer %}{% endblock %}
|
||||
</footer>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
@ -0,0 +1,231 @@
|
|||
{% extends "base.html" %}
|
||||
|
||||
{% block css %}css/default.css{% endblock %}
|
||||
|
||||
{% block header %}
|
||||
<h1 class="bghost fghost">Glances running on {{ host.hostname }}</h1>
|
||||
<h2 class="bgsystem fgsystem">{{ system.os_name }} {{ system.platform }} {{ system.os_version }}</h2>
|
||||
{% endblock %}
|
||||
|
||||
{% block cpu %}
|
||||
{% if cpu is defined %}
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="bgcpu fgcpu"></th>
|
||||
<th scope="col" class="bgcpu fgcpu">Cpu <small>{{ (cpu.user + cpu.kernel + cpu.nice)|round(1) }}%</small></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="bgcpu fgcpu">User</td>
|
||||
<td class="{{ cpu.user_color }}">{{ cpu.user|round(1) }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="bgcpu fgcpu">Kernel</td>
|
||||
<td class="{{ cpu.kernel_color }}">{{ cpu.kernel|round(1) }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="bgcpu fgcpu">Nice</td>
|
||||
<td class="{{ cpu.nice_color }}">{{ cpu.nice|round(1) }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block load %}
|
||||
{% if (load is defined) and (core is defined) %}
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="bgload fgload"></th>
|
||||
<th scope="col" class="bgload fgload">Load <small>{{ core }}-Core</small></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="bgload fgload">1 min</td>
|
||||
<td class="{{ load.min1_color }}">{{ load.min1|round(2) }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="bgload fgload">5 mins</td>
|
||||
<td class="{{ load.min5_color }}">{{ load.min5|round(2) }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="bgload fgload">15 mins</td>
|
||||
<td class="{{ load.min15_color }}">{{ load.min15|round(2) }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block mem %}
|
||||
{% if (mem is defined) and (memswap is defined) %}
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="bgmem fgmem"></th>
|
||||
<th scope="col" class="bgmem fgmem">Mem</th>
|
||||
<th scope="col" class="bgmem fgmem">Swap</th>
|
||||
<th scope="col" class="bgmem fgmem">Real</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="bgmem fgmem">Total</td>
|
||||
<td>{{ mem.total|filesizeformat(binary = true) }}</td>
|
||||
<td>{{ memswap.total|filesizeformat(binary = true) }}</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="bgmem fgmem">Used</td>
|
||||
<td>{{ mem.used|filesizeformat(binary = true) }}</td>
|
||||
<td class="{{ memswap.used_color }}">{{ memswap.used|filesizeformat(binary = true) }}</td>
|
||||
<td class="{{ mem.used_color }}">{{ (mem.used-mem.cache)|filesizeformat(binary = true) }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="bgmem fgmem">Free</td>
|
||||
<td>{{ mem.free|filesizeformat(binary = true) }}</td>
|
||||
<td>{{ memswap.free|filesizeformat(binary = true) }}</td>
|
||||
<td>{{ (mem.free+mem.cache)|filesizeformat(binary = true) }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block net %}
|
||||
{% if net is defined %}
|
||||
<table >
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="bgnet fgnet"></th>
|
||||
<th scope="col" class="bgnet fgnet">Net Rx ↓</th>
|
||||
<th scope="col" class="bgnet fgnet">Net TX ↑</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for interface in net %}
|
||||
<tr>
|
||||
<td id="item">{{ interface.interface_name }}</td>
|
||||
{% if interface.rx == 0 %}
|
||||
<td>0</td>
|
||||
{% else %}
|
||||
<td>{{ (interface.rx*8)|filesizeformat(binary = true)|replace("Bytes", "bps")|replace("Byte", "bps")|replace("iB", "bps") }}</td>
|
||||
{% endif %}
|
||||
{% if interface.tx == 0 %}
|
||||
<td>0</td>
|
||||
{% else %}
|
||||
<td>{{ (interface.tx*8)|filesizeformat(binary = true)|replace("Bytes", "bps")|replace("Byte", "bps")|replace("iB", "bps") }}</td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block diskio %}
|
||||
{% if diskio is defined %}
|
||||
<table >
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="bgdiskio fgdiskio"></th>
|
||||
<th scope="col" class="bgdiskio fgdiskio">Disk Write ↓</th>
|
||||
<th scope="col" class="bgdiskio fgdiskio">Disk Read ↑</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for disk in diskio %}
|
||||
<tr>
|
||||
<td id="item">{{ disk.disk_name }}</td>
|
||||
<td>{{ disk.write_bytes|filesizeformat(binary = true) }}</td>
|
||||
<td>{{ disk.read_bytes|filesizeformat(binary = true) }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block fs %}
|
||||
{% if fs is defined %}
|
||||
<table >
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="bgdiskio fgdiskio"></th>
|
||||
<th scope="col" class="bgdiskio fgdiskio">FS Size</th>
|
||||
<th scope="col" class="bgdiskio fgdiskio">FS Used</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for mount in fs %}
|
||||
<tr>
|
||||
<td id="item">{{ mount.mnt_point }}</td>
|
||||
<td>{{ mount.size|filesizeformat(binary = true) }}</td>
|
||||
<td class="{{ mount.used_color }}">{{ mount.used|filesizeformat(binary = true) }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block proccount %}
|
||||
{% if (proccount is defined) %}
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="bgproc fgproc"></th>
|
||||
<th scope="col" class="bgproc fgproc">Total</th>
|
||||
<th scope="col" class="bgproc fgproc">Running</th>
|
||||
<th scope="col" class="bgproc fgproc">Sleep</th>
|
||||
<th scope="col" class="bgproc fgproc">Other</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td id="item">Process</td>
|
||||
<td>{{ proccount.total }}</td>
|
||||
<td>{{ proccount.running }}</td>
|
||||
<td>{{ proccount.sleeping }}</td>
|
||||
<td>{{ proccount.total-proccount.running-proccount.sleeping }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block proclist %}
|
||||
{% if proclist is defined %}
|
||||
<table >
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="bgproc fgproc">CPU %</th>
|
||||
<th scope="col" class="bgproc fgproc">Mem virt.</th>
|
||||
<th scope="col" class="bgproc fgproc">Mem resi.</th>
|
||||
<th scope="col" class="bgproc fgproc">Command</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for proc in proclist %}
|
||||
{% if loop.index > 10 %}
|
||||
{% break %}
|
||||
{% endif %}
|
||||
<tr>
|
||||
<td>{{ proc.cpu_percent }}</td>
|
||||
<td>{{ proc.proc_size|filesizeformat(binary = true) }}</td>
|
||||
<td>{{ proc.proc_resident|filesizeformat(binary = true) }}</td>
|
||||
<td id="command">{{ proc.proc_name|truncate(40, killwords=True) }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block footer %}
|
||||
<p>Powered by <a href="https://github.com/nicolargo/glances">Glances</a></p>
|
||||
{% endblock %}
|
||||
|
After Width: | Height: | Size: 20 KiB |