├── .gitignore ├── CHANGES ├── COPYING ├── CREDITS ├── FAQ ├── INSTALL ├── Makefile.in ├── README ├── TODO ├── activity.c ├── android_build.sh ├── build ├── Ask.sh ├── clean-sa-dir ├── compress-manpg ├── compressafter ├── conf_dir ├── cron_interval ├── cron_owner ├── debuginfo ├── history ├── ignore-man-group ├── install-cron ├── install-doc ├── install-isag ├── man_group ├── nls ├── prefix ├── rcdir ├── sa_dir ├── sa_lib_dir ├── sensors └── yesterday ├── cifsiostat.c ├── cifsiostat.h ├── common.c ├── common.h ├── configure ├── configure.in ├── contrib ├── README-contrib ├── isag │ ├── README-isag │ ├── isag.1 │ └── isag.in └── sargraph │ └── sargraph ├── cron ├── crontab.sample ├── sysstat.cron.daily.in ├── sysstat.cron.hourly.in └── sysstat.crond.in ├── iconfig ├── ioconf.c ├── ioconf.h ├── iostat.c ├── iostat.h ├── man ├── cifsiostat.in ├── iostat.in ├── mpstat.1 ├── nfsiostat.in ├── pidstat.1 ├── sa1.in ├── sa2.in ├── sadc.in ├── sadf.in ├── sar.in └── sysstat.in ├── mpstat.c ├── mpstat.h ├── nfsiostat.c ├── nfsiostat.h ├── nls ├── README-nls ├── af.po ├── cs.po ├── da.po ├── de.po ├── es.po ├── eu.po ├── fi.po ├── fr.po ├── id.po ├── it.po ├── ja.po ├── ky.po ├── lv.po ├── mt.po ├── nb.po ├── nl.po ├── nn.po ├── pl.po ├── pt.po ├── pt_BR.po ├── ro.po ├── ru.po ├── sk.po ├── sv.po ├── sysstat.pot ├── uk.po ├── vi.po ├── zh_CN.po └── zh_TW.po ├── pidstat.c ├── pidstat.h ├── pr_stats.c ├── pr_stats.h ├── rd_sensors.c ├── rd_sensors.h ├── rd_stats.c ├── rd_stats.h ├── rndr_stats.c ├── rndr_stats.h ├── sa.h ├── sa1.in ├── sa2.in ├── sa_common.c ├── sa_wrap.c ├── sadc.c ├── sadf.c ├── sadf.h ├── sar.c ├── sysconfig.in ├── sysstat-10.0.0.lsm ├── sysstat-10.0.0.spec ├── sysstat.in ├── sysstat.ioconf ├── sysstat.sysconfig.in ├── version.in ├── xml ├── sysstat.dtd └── sysstat.xsd ├── xml_stats.c └── xml_stats.h /.gitignore: -------------------------------------------------------------------------------- 1 | # Lines starting with '#' are considered comments. 2 | # List of files to ignore: 3 | Makefile 4 | *.[oa] 5 | sa1 6 | sa2 7 | sysstat 8 | crontab 9 | version.h 10 | sysconfig.h 11 | sysstat.sysconfig 12 | sysstat.crond 13 | sysstat.cron.daily 14 | sysstat.cron.hourly 15 | sysstat.crond.sample 16 | sysstat.crond.sample.in 17 | contrib/isag/isag 18 | man/sa1.8 19 | man/sa2.8 20 | man/sadc.8 21 | man/sysstat.5 22 | man/sadf.1 23 | man/sar.1 24 | man/iostat.1 25 | man/cifsiostat.1 26 | man/nfsiostat.1 27 | *.log 28 | config.status 29 | autom4te.cache/ 30 | *.save 31 | *.old 32 | .*.swp 33 | data 34 | *~ 35 | man/*~ 36 | build/*~ 37 | sadc 38 | sar 39 | sadf 40 | iostat 41 | mpstat 42 | pidstat 43 | nfsiostat 44 | cifsiostat 45 | core 46 | TAGS 47 | nls/*.gmo 48 | -------------------------------------------------------------------------------- /CREDITS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jahrome/sysstat-android/dfab1951b42ca6ad991d6d9e792df48b419d8869/CREDITS -------------------------------------------------------------------------------- /INSTALL: -------------------------------------------------------------------------------- 1 | Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software 2 | Foundation, Inc. 3 | 4 | This file is free documentation; the Free Software Foundation gives 5 | unlimited permission to copy, distribute and modify it. 6 | 7 | Basic Installation 8 | ================== 9 | 10 | These are generic installation instructions. 11 | 12 | The `configure' shell script attempts to guess correct values for 13 | various system-dependent variables used during compilation. It uses 14 | those values to create a `Makefile' in each directory of the package. 15 | It may also create one or more `.h' files containing system-dependent 16 | definitions. Finally, it creates a shell script `config.status' that 17 | you can run in the future to recreate the current configuration, and a 18 | file `config.log' containing compiler output (useful mainly for 19 | debugging `configure'). 20 | 21 | It can also use an optional file (typically called `config.cache' 22 | and enabled with `--cache-file=config.cache' or simply `-C') that saves 23 | the results of its tests to speed up reconfiguring. (Caching is 24 | disabled by default to prevent problems with accidental use of stale 25 | cache files.) 26 | 27 | If you need to do unusual things to compile the package, please try 28 | to figure out how `configure' could check whether to do them, and mail 29 | diffs or instructions to the address given in the `README' so they can 30 | be considered for the next release. If you are using the cache, and at 31 | some point `config.cache' contains results you don't want to keep, you 32 | may remove or edit it. 33 | 34 | The file `configure.ac' (or `configure.in') is used to create 35 | `configure' by a program called `autoconf'. You only need 36 | `configure.ac' if you want to change it or regenerate `configure' using 37 | a newer version of `autoconf'. 38 | 39 | The simplest way to compile this package is: 40 | 41 | 1. `cd' to the directory containing the package's source code and type 42 | `./configure' to configure the package for your system. If you're 43 | using `csh' on an old version of System V, you might need to type 44 | `sh ./configure' instead to prevent `csh' from trying to execute 45 | `configure' itself. 46 | 47 | Running `configure' takes awhile. While running, it prints some 48 | messages telling which features it is checking for. 49 | 50 | 2. Type `make' to compile the package. 51 | 52 | 3. Optionally, type `make check' to run any self-tests that come with 53 | the package. 54 | 55 | 4. Type `make install' to install the programs and any data files and 56 | documentation. 57 | 58 | 5. You can remove the program binaries and object files from the 59 | source code directory by typing `make clean'. To also remove the 60 | files that `configure' created (so you can compile the package for 61 | a different kind of computer), type `make distclean'. There is 62 | also a `make maintainer-clean' target, but that is intended mainly 63 | for the package's developers. If you use it, you may have to get 64 | all sorts of other programs in order to regenerate files that came 65 | with the distribution. 66 | 67 | Compilers and Options 68 | ===================== 69 | 70 | Some systems require unusual options for compilation or linking that 71 | the `configure' script does not know about. Run `./configure --help' 72 | for details on some of the pertinent environment variables. 73 | 74 | You can give `configure' initial values for configuration parameters 75 | by setting variables in the command line or in the environment. Here 76 | is an example: 77 | 78 | ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix 79 | 80 | *Note Defining Variables::, for more details. 81 | 82 | Compiling For Multiple Architectures 83 | ==================================== 84 | 85 | You can compile the package for more than one kind of computer at the 86 | same time, by placing the object files for each architecture in their 87 | own directory. To do this, you must use a version of `make' that 88 | supports the `VPATH' variable, such as GNU `make'. `cd' to the 89 | directory where you want the object files and executables to go and run 90 | the `configure' script. `configure' automatically checks for the 91 | source code in the directory that `configure' is in and in `..'. 92 | 93 | If you have to use a `make' that does not support the `VPATH' 94 | variable, you have to compile the package for one architecture at a 95 | time in the source code directory. After you have installed the 96 | package for one architecture, use `make distclean' before reconfiguring 97 | for another architecture. 98 | 99 | Installation Names 100 | ================== 101 | 102 | By default, `make install' will install the package's files in 103 | `/usr/local/bin', `/usr/local/man', etc. You can specify an 104 | installation prefix other than `/usr/local' by giving `configure' the 105 | option `--prefix=PATH'. 106 | 107 | You can specify separate installation prefixes for 108 | architecture-specific files and architecture-independent files. If you 109 | give `configure' the option `--exec-prefix=PATH', the package will use 110 | PATH as the prefix for installing programs and libraries. 111 | Documentation and other data files will still use the regular prefix. 112 | 113 | In addition, if you use an unusual directory layout you can give 114 | options like `--bindir=PATH' to specify different values for particular 115 | kinds of files. Run `configure --help' for a list of the directories 116 | you can set and what kinds of files go in them. 117 | 118 | If the package supports it, you can cause programs to be installed 119 | with an extra prefix or suffix on their names by giving `configure' the 120 | option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 121 | 122 | Optional Features 123 | ================= 124 | 125 | Some packages pay attention to `--enable-FEATURE' options to 126 | `configure', where FEATURE indicates an optional part of the package. 127 | They may also pay attention to `--with-PACKAGE' options, where PACKAGE 128 | is something like `gnu-as' or `x' (for the X Window System). The 129 | `README' should mention any `--enable-' and `--with-' options that the 130 | package recognizes. 131 | 132 | For packages that use the X Window System, `configure' can usually 133 | find the X include and library files automatically, but if it doesn't, 134 | you can use the `configure' options `--x-includes=DIR' and 135 | `--x-libraries=DIR' to specify their locations. 136 | 137 | Specifying the System Type 138 | ========================== 139 | 140 | There may be some features `configure' cannot figure out 141 | automatically, but needs to determine by the type of machine the package 142 | will run on. Usually, assuming the package is built to be run on the 143 | _same_ architectures, `configure' can figure that out, but if it prints 144 | a message saying it cannot guess the machine type, give it the 145 | `--build=TYPE' option. TYPE can either be a short name for the system 146 | type, such as `sun4', or a canonical name which has the form: 147 | 148 | CPU-COMPANY-SYSTEM 149 | 150 | where SYSTEM can have one of these forms: 151 | 152 | OS KERNEL-OS 153 | 154 | See the file `config.sub' for the possible values of each field. If 155 | `config.sub' isn't included in this package, then this package doesn't 156 | need to know the machine type. 157 | 158 | If you are _building_ compiler tools for cross-compiling, you should 159 | use the `--target=TYPE' option to select the type of system they will 160 | produce code for. 161 | 162 | If you want to _use_ a cross compiler, that generates code for a 163 | platform different from the build platform, you should specify the 164 | "host" platform (i.e., that on which the generated programs will 165 | eventually be run) with `--host=TYPE'. 166 | 167 | Sharing Defaults 168 | ================ 169 | 170 | If you want to set default values for `configure' scripts to share, 171 | you can create a site shell script called `config.site' that gives 172 | default values for variables like `CC', `cache_file', and `prefix'. 173 | `configure' looks for `PREFIX/share/config.site' if it exists, then 174 | `PREFIX/etc/config.site' if it exists. Or, you can set the 175 | `CONFIG_SITE' environment variable to the location of the site script. 176 | A warning: not all `configure' scripts look for a site script. 177 | 178 | Defining Variables 179 | ================== 180 | 181 | Variables not defined in a site shell script can be set in the 182 | environment passed to `configure'. However, some packages may run 183 | configure again during the build, and the customized values of these 184 | variables may be lost. In order to avoid this problem, you should set 185 | them in the `configure' command line, using `VAR=value'. For example: 186 | 187 | ./configure CC=/usr/local2/bin/gcc 188 | 189 | will cause the specified gcc to be used as the C compiler (unless it is 190 | overridden in the site shell script). 191 | 192 | `configure' Invocation 193 | ====================== 194 | 195 | `configure' recognizes the following options to control how it 196 | operates. 197 | 198 | `--help' 199 | `-h' 200 | Print a summary of the options to `configure', and exit. 201 | 202 | `--version' 203 | `-V' 204 | Print the version of Autoconf used to generate the `configure' 205 | script, and exit. 206 | 207 | `--cache-file=FILE' 208 | Enable the cache: use and save the results of the tests in FILE, 209 | traditionally `config.cache'. FILE defaults to `/dev/null' to 210 | disable caching. 211 | 212 | `--config-cache' 213 | `-C' 214 | Alias for `--cache-file=config.cache'. 215 | 216 | `--quiet' 217 | `--silent' 218 | `-q' 219 | Do not print messages saying which checks are being made. To 220 | suppress all normal output, redirect it to `/dev/null' (any error 221 | messages will still be shown). 222 | 223 | `--srcdir=DIR' 224 | Look for the package's source code in directory DIR. Usually 225 | `configure' can determine that directory automatically. 226 | 227 | `configure' also accepts some other, not widely useful, options. Run 228 | `configure --help' for more details. 229 | 230 | -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- 1 | sysstat: System performance tools for the Linux operating system... 2 | -- 3 | (C) 1999-2011 Sebastien Godard (sysstat orange.fr) 4 | 5 | The latest version of sysstat can always be found on my web site at: 6 | 7 | http://pagesperso-orange.fr/sebastien.godard/ 8 | 9 | sysstat package is also available at ibiblio's Linux archive 10 | in the following directory: 11 | 12 | ftp://ibiblio.org/pub/Linux/system/status/ 13 | 14 | See the CHANGES file to know the new features/improvements/bug fixes added 15 | in this release of sysstat. 16 | 17 | 18 | INSTALLATION 19 | ------------ 20 | 21 | The sysstat utilities are a collection of performance monitoring tools for 22 | Linux. These include mpstat, iostat, nfsiostat, cifsiostat, pidstat, sar, 23 | sadc, sadf and sa tools. 24 | 25 | The first stage is to configure sysstat for your system: 26 | 27 | ./configure 28 | 29 | You can set several variables and parameters on the command line. 30 | Please enter "./configure --help" to display them. 31 | There is another way to configure sysstat instead of entering "./configure": 32 | this is the Interactive Configuration script (iconfig) which will ask you 33 | for the value of the main sysstat variables and parameters. 34 | Enter "./iconfig" then answer the questions or enter Return to accept 35 | the (sane) default values. For yes/no questions, please answer 'y' or 'n' 36 | (without the quotes): It is case sensitive! You can also enter '?' to get 37 | a help message that will explain the meaning of each variable or parameter. 38 | 39 | The next stage is to build the various binary files. Enter: 40 | 41 | make 42 | 43 | Then log in as root and enter: 44 | 45 | make install 46 | 47 | (see next section to know the files that are installed). 48 | That's all! 49 | 50 | Of course tell me if there are any problems. This is the only way I can improve 51 | 'sysstat'. Please also remember to read the FAQ included in this package. 52 | 53 | Patches and suggestions for improvements are always welcome! 54 | Send them to (sysstat orange.fr). 55 | 56 | 57 | FILES THAT ARE INSTALLED 58 | ------------------------ 59 | 60 | I _hate_ when packages install files everywhere on my disk and I don't know 61 | where... 62 | So here is the list of files installed by sysstat, when you ask for a 63 | complete installation. 64 | ${PREFIX} is the value of the PREFIX variable defined in the Makefile 65 | (usually set to /usr/local or /usr). 66 | 67 | ${PREFIX}/lib/sa/sadc 68 | ${PREFIX}/lib/sa/sa1 69 | ${PREFIX}/lib/sa/sa2 70 | ${PREFIX}/bin/sar 71 | ${PREFIX}/bin/sadf 72 | ${PREFIX}/bin/iostat 73 | ${PREFIX}/bin/mpstat 74 | ${PREFIX}/bin/pidstat 75 | ${PREFIX}/bin/nfsiostat 76 | ${PREFIX}/bin/cifsiostat 77 | ${PREFIX}(/share)/man/man8/sadc.8 78 | ${PREFIX}(/share)/man/man8/sa1.8 79 | ${PREFIX}(/share)/man/man8/sa2.8 80 | ${PREFIX}(/share)/man/man1/sar.1 81 | ${PREFIX}(/share)/man/man1/sadf.1 82 | ${PREFIX}(/share)/man/man1/iostat.1 83 | ${PREFIX}(/share)/man/man1/mpstat.1 84 | ${PREFIX}(/share)/man/man1/pidstat.1 85 | ${PREFIX}(/share)/man/man1/nfsiostat.1 86 | ${PREFIX}(/share)/man/man1/cifsiostat.1 87 | ${PREFIX}/share/locale/*/LC_MESSAGES/sysstat.mo 88 | ${PREFIX}/share/doc/sysstat-x.y.z/* 89 | /var/log/sa 90 | ${INIT_DIR}/sysstat 91 | /etc/sysconfig/sysstat 92 | /etc/sysconfig/sysstat.ioconf 93 | /etc/cron.d/sysstat 94 | /etc/rc.d/rc.sysstat for [SLACKWARE] 95 | ${RC_DIR}/rc2.d/S03sysstat 96 | ${RC_DIR}/rc3.d/S03sysstat 97 | ${RC_DIR}/rc5.d/S03sysstat 98 | 99 | with: 100 | 101 | ${INIT_DIR}=/etc/rc.d/init.d/ for [REDHAT] [CALDERA] [MANDRIVA] [TURBOLINUX] [KONDARA] 102 | ${INIT_DIR}=/sbin/init.d/ for [SUSE <= 7.0] 103 | ${INIT_DIR}=/etc/init.d/ for [SUSE >= 7.1] [DEBIAN] 104 | ${RC_DIR}=/etc/rc.d/ for [REDHAT] [CALDERA] [MANDRIVA] [TURBOLINUX] [KONDARA] [SLACKWARE] 105 | ${RC_DIR}=/sbin/init.d/ for [SUSE <= 7.0] 106 | ${RC_DIR}=/etc/init.d/ for [SUSE >= 7.1] 107 | ${RC_DIR}=/etc/ for [DEBIAN] 108 | 109 | sysstat may also install some links in ${RC_DIR}/rc[0146].d/ directory 110 | if chkconfig is used. 111 | 112 | MISCELLANEOUS 113 | ------------- 114 | 115 | The sysstat commands are only front-ends to the kernel proc filesystem... 116 | They cannot display statistics that Linux does not 117 | provide, nor can they be more accurate than Linux is. 118 | The sysstat package now only supports 2.6.x kernels. 119 | Note that all kernels do not necessarily have all the statistics that 120 | sysstat commands can display, depending on their version or their 121 | configuration options. 122 | 123 | It has been designed with National Language Support (NLS) in mind, using 124 | the GNU gettext package (available at http://www.gnu.org). 125 | sysstat has been translated into several languages. 126 | Anyway you are welcome if you want to make other translations available ;-) 127 | Please read the README-nls file in the nls directory before. 128 | 129 | -- 130 | Sebastien Godard (sysstat orange.fr) 131 | 132 | -------------------------------------------------------------------------------- /TODO: -------------------------------------------------------------------------------- 1 | Here are the things I would like (or I should) do for the next releases: 2 | 3 | * Add more power management statistics (CPU temperature, fan speed, etc.). I need help 4 | for this! 5 | 6 | * Add more statistics to sar and mpstat (and iostat) when available in Linux 7 | kernels. 8 | 9 | * Add a real web-based graphical front-end to sar. I need help for this! 10 | 11 | * Add support for hotplug memory? 12 | 13 | * Dynamically allocate structures for IRQs (just like for CPUs). 14 | 15 | -------------------------------------------------------------------------------- /android_build.sh: -------------------------------------------------------------------------------- 1 | export NDK=/home/jer/Projet_android/android-ndk-r5 2 | export TOOLCHAIN=/home/jer/standalone-toolchain 3 | export AOSP=/home/jer/cm7 4 | export PRODUCT=vision 5 | export PATH=$TOOLCHAIN/bin/:$PATH 6 | 7 | export CC=arm-linux-androideabi-gcc 8 | export CFLAGS="-march=armv7-a -mfloat-abi=softfp" 9 | export CPPFLAGS=$CFLAGS 10 | export LDFLAGS="-Wl,--fix-cortex-a8 -lsupc++ -L$AOSP/out/target/product/$PRODUCT/system/lib" 11 | export LIBS="$TOOLCHAIN/arm-linux-androideabi/lib/libstdc++.a" 12 | 13 | rm -rf $TOOLCHAIN 14 | $NDK/build/tools/make-standalone-toolchain.sh --platform=android-9 --install-dir=$TOOLCHAIN 15 | 16 | ./configure --host=arm-linux-androideabi --disable-nls 17 | make -j2 iostat pidstat mpstat cifsiostat 18 | arm-linux-androideabi-strip iostat pidstat mpstat cifsiostat 19 | -------------------------------------------------------------------------------- /build/Ask.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Ask a question and return the answer 4 | 5 | QUESTION=$1 6 | PARM=$2 7 | TEXT_FILE=$3 8 | while :; do 9 | echo -n "${QUESTION} [${PARM}] " >/dev/tty 10 | read ANSWER 11 | if [ "${ANSWER}" = "" ]; then 12 | break 13 | elif [ "${ANSWER}" = "?" ]; then 14 | cat build/${TEXT_FILE} >/dev/tty 15 | else 16 | echo ${ANSWER} 17 | break 18 | fi 19 | done 20 | 21 | -------------------------------------------------------------------------------- /build/clean-sa-dir: -------------------------------------------------------------------------------- 1 | 2 | Answer y if you want to remove existing daily data files from 3 | system activity directory that were created by a previous 4 | version of sysstat. 5 | Removing those files may be compulsory if they have been created 6 | with a format which is no longer compatible with that of current 7 | sysstat version. 8 | Default answer is n (files are not deleted). 9 | You can still remove them by hand afterwards if sar yields the 10 | following error: "Invalid system activity file". 11 | 12 | -------------------------------------------------------------------------------- /build/compress-manpg: -------------------------------------------------------------------------------- 1 | 2 | Answer y if you want sysstat manual pages to be compressed (using bzip2 or 3 | gzip) when they are installed. 4 | Default answer is n here. 5 | 6 | -------------------------------------------------------------------------------- /build/compressafter: -------------------------------------------------------------------------------- 1 | 2 | To prevent sar daily datafiles from taking to much space on disk, you can 3 | ask the sa2 shell script to compress them (using gzip or bzip2) after a 4 | certain amount of time. 5 | Answer here the number of days after which datafiles are to be compressed 6 | (default value is 10 days). 7 | Note that this parameter is saved in the /etc/sysconfig/sysstat file. 8 | 9 | -------------------------------------------------------------------------------- /build/conf_dir: -------------------------------------------------------------------------------- 1 | 2 | This is the directory where sysstat configuration files will 3 | be installed. Default location is /etc/sysconfig. The directory 4 | will be automatically created during installation stage if 5 | necessary. Press Enter to accept this default location. 6 | 7 | -------------------------------------------------------------------------------- /build/cron_interval: -------------------------------------------------------------------------------- 1 | 2 | You may enter here the sampling interval (in minutes) that the configuration 3 | script will use to customize the crontab. 4 | Defaut value is 10. This means that sadc (the system activity data collector 5 | called by sar) will take a snapshot of the system counters every 10 minutes. 6 | Other reasonable values could be 5, 15 or 20 minutes. 7 | 8 | -------------------------------------------------------------------------------- /build/cron_owner: -------------------------------------------------------------------------------- 1 | 2 | This is the user the crontab will belong to. Be careful that sysstat may 3 | need to replace his original crontab (after having saved it in sysstat 4 | directory) if you use an old version of cron (i.e. if /etc/cron.d directory 5 | doesn't exist). 6 | Default user is root here. 7 | 8 | -------------------------------------------------------------------------------- /build/debuginfo: -------------------------------------------------------------------------------- 1 | Answer y to include debug information in some sysstat's commands. 2 | This is usually unneeded, so you can safely answer n. 3 | 4 | -------------------------------------------------------------------------------- /build/history: -------------------------------------------------------------------------------- 1 | 2 | The sa2 shell script creates daily reports, saved in /var/log/sa directory 3 | (default location). 4 | It also removes daily data files and reports which are older than a number 5 | of days. This number defaults to 7 (one week of data history). 6 | Answer here the number of days during which a daily data file or a report 7 | should be kept. 8 | Note that this parameter is saved in the /etc/sysconfig/sysstat file. 9 | 10 | -------------------------------------------------------------------------------- /build/ignore-man-group: -------------------------------------------------------------------------------- 1 | 2 | Here again, don't bother too much with that. When set, this parameter tells 3 | the configuration process not to take into account the contents of the 4 | man_group variable. 5 | This parameter is only used by some distros to package sysstat. 6 | 7 | -------------------------------------------------------------------------------- /build/install-cron: -------------------------------------------------------------------------------- 1 | 2 | Answer y if you want to automate sar reporting. In this case, a crontab will 3 | be created to periodically start the data collector. System activity daily 4 | data files will then be created in the /var/log/sa directory. 5 | You can find various crontab templates in sysstat directory. By default 6 | sysstat will try to use sysstat.crond template and install it in the 7 | /etc/cron.d directory. 8 | Default answer is n here. 9 | 10 | -------------------------------------------------------------------------------- /build/install-doc: -------------------------------------------------------------------------------- 1 | 2 | Answer y if you don't want to install sysstat's documentation files. 3 | Those are primarily manual pages for sysstat's commands. They also 4 | include a few other files like the FAQ or README files. 5 | Default answer is n here (documentation files ARE installed). 6 | 7 | -------------------------------------------------------------------------------- /build/install-isag: -------------------------------------------------------------------------------- 1 | 2 | Answer y if you want to install the isag command. 3 | isag, the Interactive System Activity Grapher, is a graphical frontend 4 | to sar. It graphically displays the system activity data stored 5 | in a binary data file by a previous sar run. 6 | Although included in the sysstat package (in the contrib directory), isag is 7 | not necessarily kept in sync with sar. That's why it is not installed by default. 8 | 9 | -------------------------------------------------------------------------------- /build/man_group: -------------------------------------------------------------------------------- 1 | 2 | This is the group name that will be used for each manual page file saved on 3 | your disk. 4 | Don't bother too much with this. The default answer ("man" if it exists) 5 | should be OK. 6 | 7 | -------------------------------------------------------------------------------- /build/nls: -------------------------------------------------------------------------------- 1 | 2 | NLS stands for National Language Support. 3 | With NLS enabled, the sysstat utilities will behave in accordance with your 4 | current locale. Sysstat messages will be translated into the language specified 5 | by the LANG environment variable, among other. 6 | Read the nls/README-nls file for more information. 7 | So you should not disable NLS support by default. 8 | Note that NLS needs the GNU gettext package to work. 9 | 10 | -------------------------------------------------------------------------------- /build/prefix: -------------------------------------------------------------------------------- 1 | 2 | This is the base directory used for installation. 3 | System administrators would rather install softwares that are added to 4 | an already existing system into /usr/local, since /usr is sometimes 5 | mounted read-only. 6 | /usr/local is the default answer here. 7 | 8 | -------------------------------------------------------------------------------- /build/rcdir: -------------------------------------------------------------------------------- 1 | 2 | This is the directory where sysstat's startup scripts and links 3 | will be installed. The usual location is /etc/rc.d. 4 | Note that if this directory doesn't exist, startup scripts and 5 | links won't be installed. 6 | Just press Enter to let configure guess the proper value. 7 | 8 | -------------------------------------------------------------------------------- /build/sa_dir: -------------------------------------------------------------------------------- 1 | 2 | This is the directory where daily data files will be stored. 3 | Those files contain statistics reported by the sar command. 4 | The usual location is /var/log/sa. The directory will be 5 | automatically created during installation stage if necessary. 6 | Just press Enter to accept this usual location. 7 | 8 | -------------------------------------------------------------------------------- /build/sa_lib_dir: -------------------------------------------------------------------------------- 1 | 2 | This is the directory where sadc, the system activity data 3 | collector called by sar, will be located (usually PREFIX/lib/sa). 4 | sa1 and sa2 shell scripts will also be saved in that directory. 5 | Letting ./configure guess the proper location for them should be a safe bet. 6 | 7 | -------------------------------------------------------------------------------- /build/sensors: -------------------------------------------------------------------------------- 1 | 2 | Answering y here disable sensors support. Sysstat commands 3 | will not be linked against sensors library even if this library 4 | is installed on your system. 5 | Without sensors support, some statistics related to power management 6 | will not be available (fan speed, device temperature, etc.) 7 | 8 | -------------------------------------------------------------------------------- /build/yesterday: -------------------------------------------------------------------------------- 1 | 2 | The sa2 shell script uses a daily data file to create a daily report. 3 | By default it uses current daily data file (that is to say 4 | the daily data file created today). 5 | Yet it may be sometimes useful to tell it to use the daily data file 6 | of the day before (that is to say the one created yesterday), for 7 | example if sa2 is started at, say, 02:00 AM. In this case, answer y. 8 | 9 | -------------------------------------------------------------------------------- /cifsiostat.h: -------------------------------------------------------------------------------- 1 | /* 2 | * cifsiostat: Report CIFS statistics 3 | * Copyright (C) 2010 Red Hat, Inc. All Rights Reserved 4 | * Written by Ivana Varekova 5 | */ 6 | 7 | #ifndef _CIFSIOSTAT_H 8 | #define _CIFSIOSTAT_H 9 | 10 | #include "common.h" 11 | 12 | #define CIFSSTATS "/proc/fs/cifs/Stats" 13 | 14 | /* I_: iostat - D_: Display - F_: Flag */ 15 | #define I_D_TIMESTAMP 0x001 16 | #define I_D_KILOBYTES 0x002 17 | #define I_D_MEGABYTES 0x004 18 | #define I_D_ISO 0x008 19 | #define I_D_HUMAN_READ 0x010 20 | #define I_D_DEBUG 0x020 21 | 22 | #define DISPLAY_TIMESTAMP(m) (((m) & I_D_TIMESTAMP) == I_D_TIMESTAMP) 23 | #define DISPLAY_KILOBYTES(m) (((m) & I_D_KILOBYTES) == I_D_KILOBYTES) 24 | #define DISPLAY_MEGABYTES(m) (((m) & I_D_MEGABYTES) == I_D_MEGABYTES) 25 | #define DISPLAY_ISO(m) (((m) & I_D_ISO) == I_D_ISO) 26 | #define DISPLAY_HUMAN_READ(m) (((m) & I_D_HUMAN_READ) == I_D_HUMAN_READ) 27 | #define DISPLAY_DEBUG(m) (((m) & I_D_DEBUG) == I_D_DEBUG) 28 | 29 | /* Preallocation constats */ 30 | #define NR_CIFS_PREALLOC 2 31 | 32 | struct cifs_stats { 33 | unsigned long long rd_bytes __attribute__ ((aligned (8))); 34 | unsigned long long wr_bytes __attribute__ ((packed)); 35 | unsigned long long rd_ops __attribute__ ((packed)); 36 | unsigned long long wr_ops __attribute__ ((packed)); 37 | unsigned long long fopens __attribute__ ((packed)); 38 | unsigned long long fcloses __attribute__ ((packed)); 39 | unsigned long long fdeletes __attribute__ ((packed)); 40 | }; 41 | 42 | #define CIFS_STATS_SIZE (sizeof(struct cifs_stats)) 43 | 44 | struct io_hdr_stats { 45 | unsigned int active __attribute__ ((aligned (4))); 46 | unsigned int used __attribute__ ((packed)); 47 | char name[MAX_NAME_LEN]; 48 | }; 49 | 50 | #define IO_HDR_STATS_SIZE (sizeof(struct io_hdr_stats)) 51 | 52 | #endif /* _CIFSIOSTAT_H */ 53 | -------------------------------------------------------------------------------- /common.h: -------------------------------------------------------------------------------- 1 | /* 2 | * sysstat: System performance tools for Linux 3 | * (C) 1999-2011 by Sebastien Godard (sysstat orange.fr) 4 | */ 5 | 6 | #ifndef _COMMON_H 7 | #define _COMMON_H 8 | 9 | /* Maximum length of sensors device name */ 10 | #define MAX_SENSORS_DEV_LEN 20 11 | 12 | #include 13 | #include /* For __CPU_SETSIZE */ 14 | #include "rd_stats.h" 15 | 16 | 17 | /* 18 | *************************************************************************** 19 | * Various keywords and constants 20 | *************************************************************************** 21 | */ 22 | 23 | #define FALSE 0 24 | #define TRUE 1 25 | 26 | #define DISP_HDR 1 27 | 28 | /* Maximum number of CPUs */ 29 | #ifdef __CPU_SETSIZE 30 | #define NR_CPUS __CPU_SETSIZE 31 | #else 32 | #define NR_CPUS 1024 33 | #endif 34 | 35 | /* Maximum number of interrupts */ 36 | #define NR_IRQS 256 37 | 38 | /* Size of /proc/interrupts line, CPU data excluded */ 39 | #define INTERRUPTS_LINE 128 40 | 41 | /* Keywords */ 42 | #define K_ISO "ISO" 43 | #define K_ALL "ALL" 44 | #define K_UTC "UTC" 45 | 46 | /* Files */ 47 | #define STAT "/proc/stat" 48 | #define UPTIME "/proc/uptime" 49 | #define PPARTITIONS "/proc/partitions" 50 | #define DISKSTATS "/proc/diskstats" 51 | #define INTERRUPTS "/proc/interrupts" 52 | #define MEMINFO "/proc/meminfo" 53 | #define SYSFS_BLOCK "/sys/block" 54 | #define SYSFS_DEVCPU "/sys/devices/system/cpu" 55 | #define SYSFS_TIME_IN_STATE "cpufreq/stats/time_in_state" 56 | #define S_STAT "stat" 57 | #define DEVMAP_DIR "/dev/mapper" 58 | #define DEVICES "/proc/devices" 59 | 60 | #define MAX_FILE_LEN 256 61 | #define MAX_PF_NAME 1024 62 | #define DEFAULT_DEVMAP_MAJOR 253 63 | #define MAX_NAME_LEN 72 64 | 65 | #define NR_DISKS 4 66 | 67 | /* Environment variables */ 68 | #define ENV_TIME_FMT "S_TIME_FORMAT" 69 | #define ENV_TIME_DEFTM "S_TIME_DEF_TIME" 70 | 71 | #define DIGITS "0123456789" 72 | 73 | 74 | /* 75 | *************************************************************************** 76 | * Macro functions definitions. 77 | *************************************************************************** 78 | */ 79 | 80 | /* Allocate and init structure */ 81 | #define SREALLOC(S, TYPE, SIZE) do { \ 82 | TYPE *_p_; \ 83 | _p_ = S; \ 84 | if (SIZE) { \ 85 | if ((S = (TYPE *) realloc(S, (SIZE))) == NULL) { \ 86 | perror("realloc"); \ 87 | exit(4); \ 88 | } \ 89 | /* If the ptr was null, then it's a malloc() */ \ 90 | if (!_p_) \ 91 | memset(S, 0, (SIZE)); \ 92 | } \ 93 | } while (0) 94 | 95 | /* 96 | * Macros used to display statistics values. 97 | * 98 | * NB: Define SP_VALUE() to normalize to %; 99 | * HZ is 1024 on IA64 and % should be normalized to 100. 100 | */ 101 | #define S_VALUE(m,n,p) (((double) ((n) - (m))) / (p) * HZ) 102 | #define SP_VALUE(m,n,p) (((double) ((n) - (m))) / (p) * 100) 103 | 104 | /* 105 | * Under very special circumstances, STDOUT may become unavailable. 106 | * This is what we try to guess here 107 | */ 108 | #define TEST_STDOUT(_fd_) do { \ 109 | if (write(_fd_, "", 0) == -1) { \ 110 | perror("stdout"); \ 111 | exit(6); \ 112 | } \ 113 | } while (0) 114 | 115 | 116 | #define MINIMUM(a,b) ((a) < (b) ? (a) : (b)) 117 | 118 | #ifdef DEBUG 119 | #define PANIC(m) sysstat_panic(__FUNCTION__, m) 120 | #else 121 | #define PANIC(m) 122 | #endif 123 | 124 | /* Number of ticks per second */ 125 | #define HZ hz 126 | extern unsigned int hz; 127 | 128 | /* Number of bit shifts to convert pages to kB */ 129 | extern unsigned int kb_shift; 130 | 131 | /* 132 | * kB <-> number of pages. 133 | * Page size depends on machine architecture (4 kB, 8 kB, 16 kB, 64 kB...) 134 | */ 135 | #define KB_TO_PG(k) ((k) >> kb_shift) 136 | #define PG_TO_KB(k) ((k) << kb_shift) 137 | 138 | /* 139 | *************************************************************************** 140 | * Structures definitions 141 | *************************************************************************** 142 | */ 143 | 144 | /* Structure used for extended disk statistics */ 145 | struct ext_disk_stats { 146 | double util; 147 | double await; 148 | double svctm; 149 | double arqsz; 150 | }; 151 | 152 | 153 | /* 154 | *************************************************************************** 155 | * Functions prototypes 156 | *************************************************************************** 157 | */ 158 | 159 | extern void 160 | compute_ext_disk_stats(struct stats_disk *, struct stats_disk *, 161 | unsigned long long, struct ext_disk_stats *); 162 | extern int 163 | count_bits(void *, int); 164 | extern int 165 | count_csvalues(int, char **); 166 | extern char * 167 | device_name(char *); 168 | extern void 169 | get_HZ(void); 170 | extern unsigned int 171 | get_devmap_major(void); 172 | extern unsigned long long 173 | get_interval(unsigned long long, unsigned long long); 174 | extern void 175 | get_kb_shift(void); 176 | extern time_t 177 | get_localtime(struct tm *); 178 | extern time_t 179 | get_time(struct tm *); 180 | unsigned long long 181 | get_per_cpu_interval(struct stats_cpu *, struct stats_cpu *); 182 | extern int 183 | get_sysfs_dev_nr(int); 184 | extern int 185 | get_win_height(void); 186 | extern void 187 | init_nls(void); 188 | extern int 189 | is_device(char *); 190 | extern double 191 | ll_s_value(unsigned long long, unsigned long long, unsigned long long); 192 | extern double 193 | ll_sp_value(unsigned long long, unsigned long long, unsigned long long); 194 | extern int 195 | print_gal_header(struct tm *, char *, char *, char *, char *, int); 196 | extern void 197 | print_version(void); 198 | #ifdef DEBUG 199 | extern void 200 | sysstat_panic(const char *, int); 201 | #endif 202 | 203 | #endif /* _COMMON_H */ 204 | -------------------------------------------------------------------------------- /contrib/README-contrib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jahrome/sysstat-android/dfab1951b42ca6ad991d6d9e792df48b419d8869/contrib/README-contrib -------------------------------------------------------------------------------- /contrib/isag/README-isag: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jahrome/sysstat-android/dfab1951b42ca6ad991d6d9e792df48b419d8869/contrib/isag/README-isag -------------------------------------------------------------------------------- /contrib/isag/isag.1: -------------------------------------------------------------------------------- 1 | .\" Automatically generated by Pod::Man version 1.02 2 | .\" Mon Mar 22 20:19:18 2004 3 | .\" 4 | .\" Standard preamble: 5 | .\" ====================================================================== 6 | .de Sh \" Subsection heading 7 | .br 8 | .if t .Sp 9 | .ne 5 10 | .PP 11 | \fB\\$1\fR 12 | .PP 13 | .. 14 | .de Sp \" Vertical space (when we can't use .PP) 15 | .if t .sp .5v 16 | .if n .sp 17 | .. 18 | .de Ip \" List item 19 | .br 20 | .ie \\n(.$>=3 .ne \\$3 21 | .el .ne 3 22 | .IP "\\$1" \\$2 23 | .. 24 | .de Vb \" Begin verbatim text 25 | .ft CW 26 | .nf 27 | .ne \\$1 28 | .. 29 | .de Ve \" End verbatim text 30 | .ft R 31 | 32 | .fi 33 | .. 34 | .\" Set up some character translations and predefined strings. \*(-- will 35 | .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left 36 | .\" double quote, and \*(R" will give a right double quote. | will give a 37 | .\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used 38 | .\" to do unbreakable dashes and therefore won't be available. \*(C` and 39 | .\" \*(C' expand to `' in nroff, nothing in troff, for use with C<> 40 | .tr \(*W-|\(bv\*(Tr 41 | .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' 42 | .ie n \{\ 43 | . ds -- \(*W- 44 | . ds PI pi 45 | . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch 46 | . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch 47 | . ds L" "" 48 | . ds R" "" 49 | . ds C` ` 50 | . ds C' ' 51 | 'br\} 52 | .el\{\ 53 | . ds -- \|\(em\| 54 | . ds PI \(*p 55 | . ds L" `` 56 | . ds R" '' 57 | 'br\} 58 | .\" 59 | .\" If the F register is turned on, we'll generate index entries on stderr 60 | .\" for titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and 61 | .\" index entries marked with X<> in POD. Of course, you'll have to process 62 | .\" the output yourself in some meaningful fashion. 63 | .if \nF \{\ 64 | . de IX 65 | . tm Index:\\$1\t\\n%\t"\\$2" 66 | . . 67 | . nr % 0 68 | . rr F 69 | .\} 70 | .\" 71 | .\" For nroff, turn off justification. Always turn off hyphenation; it 72 | .\" makes way too many mistakes in technical documents. 73 | .hy 0 74 | .if n .na 75 | .\" 76 | .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). 77 | .\" Fear. Run. Save yourself. No user-serviceable parts. 78 | .bd B 3 79 | . \" fudge factors for nroff and troff 80 | .if n \{\ 81 | . ds #H 0 82 | . ds #V .8m 83 | . ds #F .3m 84 | . ds #[ \f1 85 | . ds #] \fP 86 | .\} 87 | .if t \{\ 88 | . ds #H ((1u-(\\\\n(.fu%2u))*.13m) 89 | . ds #V .6m 90 | . ds #F 0 91 | . ds #[ \& 92 | . ds #] \& 93 | .\} 94 | . \" simple accents for nroff and troff 95 | .if n \{\ 96 | . ds ' \& 97 | . ds ` \& 98 | . ds ^ \& 99 | . ds , \& 100 | . ds ~ ~ 101 | . ds / 102 | .\} 103 | .if t \{\ 104 | . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" 105 | . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' 106 | . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' 107 | . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' 108 | . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' 109 | . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' 110 | .\} 111 | . \" troff and (daisy-wheel) nroff accents 112 | .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' 113 | .ds 8 \h'\*(#H'\(*b\h'-\*(#H' 114 | .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] 115 | .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' 116 | .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' 117 | .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] 118 | .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] 119 | .ds ae a\h'-(\w'a'u*4/10)'e 120 | .ds Ae A\h'-(\w'A'u*4/10)'E 121 | . \" corrections for vroff 122 | .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' 123 | .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' 124 | . \" for low resolution devices (crt and lpr) 125 | .if \n(.H>23 .if \n(.V>19 \ 126 | \{\ 127 | . ds : e 128 | . ds 8 ss 129 | . ds o a 130 | . ds d- d\h'-1'\(ga 131 | . ds D- D\h'-1'\(hy 132 | . ds th \o'bp' 133 | . ds Th \o'LP' 134 | . ds ae ae 135 | . ds Ae AE 136 | .\} 137 | .rm #[ #] #H #V #F C 138 | .\" ====================================================================== 139 | .\" 140 | .IX Title "ISAG 1" 141 | .TH ISAG 1 "0.81.0" "March 2004" "System Activity Grapher" 142 | .UC 143 | .SH "NAME" 144 | isag \- Interactive System Activity Grapher 145 | .SH "SYNOPSIS" 146 | .IX Header "SYNOPSIS" 147 | isag [\-p datafiles_path] [\-c config_file] [\-ght gr_height] [\-gwd gr_width] 148 | .SH "DESCRIPTION" 149 | .IX Header "DESCRIPTION" 150 | The \fIisag\fR command graphically displays the system activity data stored 151 | in a binary data file by a previous \fIsar\fR run. The \fIisag\fR command invokes 152 | \&\fIsar\fR to extract the data to be plotted. 153 | .PP 154 | The data are processed using \fIsar\fR command and slightly transformed 155 | to tabular format, and then this format is visualized using \fIgnuplot\fR 156 | program. 157 | .SH "OPTIONS" 158 | .IX Header "OPTIONS" 159 | .Ip "\-p datafiles_path" 4 160 | .IX Item "-p datafiles_path" 161 | Specify the pathname where are located the daily data files. 162 | Default path is: \fI/var/log/sa\fR 163 | .Ip "\-c config_file" 4 164 | .IX Item "-c config_file" 165 | Specify the configuration file used by the \fIisag\fR command. 166 | The contents of this file may depend on \fIisag\fR version number. 167 | Default config file is: \fI$HOME/.isag.cfg\fR. 168 | .Ip "\-ght gr_height" 4 169 | .IX Item "-ght gr_height" 170 | Specify the height of the chart area. 171 | Default value is: \fI400\fR. 172 | .Ip "\-gwd gr_width" 4 173 | .IX Item "-gwd gr_width" 174 | Specify the width of the chart area. 175 | Default value is: \fI720\fR. 176 | .SH "CONFIG FILE" 177 | .IX Header "CONFIG FILE" 178 | As mentioned above there is a config file. There are stored following values: 179 | .Ip "last showed graph" 2 180 | .IX Item "last showed graph" 181 | .Ip "y limits for each kind of graph" 2 182 | .IX Item "y limits for each kind of graph" 183 | .PP 184 | It seems usefull, because new run doesn't need new settings to obtain same scale. 185 | .SH "PREREQUSITIES" 186 | .IX Header "PREREQUSITIES" 187 | Here is list of prerequsities including versioning and built-in features. 188 | .Ip "Tcl/Tk" 189 | .IX Item "Tcl/Tk" 190 | Version 8.0 or newer. 191 | .Ip "gnuplot" 192 | .IX Item "gnuplot" 193 | Gnuplot must have a \fBtkcanvas\fR display. 194 | .SH "AUTHOR" 195 | .IX Header "AUTHOR" 196 | D. Doubrava 2000, 2002 e-mail:\ linux_monitor(at)volny(dot)cz 197 | .PP 198 | \&\s-1HTTP\s0 Site: http://www.volny.cz/linux_monitor/isag/index.html 199 | .SH "SEE ALSO" 200 | .IX Header "SEE ALSO" 201 | \&\fBsar\fR (1), \fBsadc\fR (8). 202 | -------------------------------------------------------------------------------- /cron/crontab.sample: -------------------------------------------------------------------------------- 1 | # Crontab sample for root or adm 2 | # Please update this crontab with the proper location 3 | # for sa1 and sa2 shell scripts (replace @SA_LIB_DIR@ with 4 | # /usr/lib/sa for example). 5 | # 6 | # 8am-7pm activity reports every 20 minutes during weekdays. 7 | # 0 8-18 * * 1-5 @SA_LIB_DIR@/sa1 1200 3 & 8 | # activity reports every @CRON_INTERVAL@ minutes everyday. 9 | 0 * * * * @SA_LIB_DIR@/sa1 @CRON_INTERVAL_SEC@ @CRON_COUNT@ & 10 | # 11 | # Activity reports every an hour on Saturday and Sunday. 12 | # 0 * * * 0,6 @SA_LIB_DIR@/sa1 & 13 | # 14 | # 7pm-8am activity reports every an hour during weekdays. 15 | # 0 19-7 * * 1-5 @SA_LIB_DIR@/sa1 & 16 | # 17 | # Daily summary prepared at 19:05. 18 | # 5 19 * * 1-5 @SA_LIB_DIR@/sa2 -A & 19 | 5 19 * * * @SA_LIB_DIR@/sa2 -A & 20 | -------------------------------------------------------------------------------- /cron/sysstat.cron.daily.in: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Generate a daily summary of process accounting. Since this will probably 3 | # get kicked off in the morning, it would probably be better to run against 4 | # the previous days data. 5 | @SA_LIB_DIR@/sa2 -A & 6 | -------------------------------------------------------------------------------- /cron/sysstat.cron.hourly.in: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Run system activity accounting tool every @CRON_INTERVAL@ minutes 3 | @SA_LIB_DIR@/sa1 @CRON_INTERVAL_SEC@ @CRON_COUNT@ & 4 | -------------------------------------------------------------------------------- /cron/sysstat.crond.in: -------------------------------------------------------------------------------- 1 | # Run system activity accounting tool every @CRON_INTERVAL@ minutes 2 | */@CRON_INTERVAL@ * * * * @CRON_OWNER@ @SA_LIB_DIR@/sa1 1 1 3 | # 0 * * * * @CRON_OWNER@ @SA_LIB_DIR@/sa1 @CRON_INTERVAL_SEC@ @CRON_COUNT@ & 4 | # Generate a daily summary of process accounting at 23:53 5 | 53 23 * * * @CRON_OWNER@ @SA_LIB_DIR@/sa2 -A 6 | 7 | -------------------------------------------------------------------------------- /iconfig: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | #@(#) Configuration script for sysstat 3 | # (C) 2000-2010 Sebastien GODARD (sysstat orange.fr) 4 | 5 | ASK="sh build/Ask.sh" 6 | 7 | echo ; echo 8 | echo Welcome to sysstat\'s Interactive Configuration script! 9 | echo 10 | echo This script enables you to set the parameters value used by ./configure. 11 | echo Please enter the value for the parameters listed below. 12 | echo Press Return to tell ./configure to use the default value or to try to guess the proper one. 13 | echo "Defaut value for yes/no questions is no (parameter is NOT set)." 14 | echo You can enter a ? to display a help message at any time... 15 | echo 16 | 17 | # Syntax: Ask 18 | 19 | # Installation directory 20 | PREFIX=`${ASK} 'Installation directory:' "--prefix" "prefix"` 21 | if [ "${PREFIX}" != "" ]; then 22 | PREFIX="--prefix=${PREFIX} " 23 | fi 24 | 25 | # sadc directory 26 | SA_LIB_DIR=`${ASK} 'sadc directory:' "sa_lib_dir" "sa_lib_dir"` 27 | if [ "${SA_LIB_DIR}" != "" ]; then 28 | SA_LIB_DIR="sa_lib_dir=${SA_LIB_DIR} " 29 | fi 30 | 31 | # System Activity directory 32 | SA_DIR=`${ASK} 'System activity directory:' "sa_dir" "sa_dir"` 33 | if [ "${SA_DIR}" != "" ]; then 34 | SA_DIR="sa_dir=${SA_DIR} " 35 | fi 36 | 37 | # sysstat configuration directory 38 | SYSCONFIG_DIR=`${ASK} 'sysstat configuration directory:' "conf_dir" "conf_dir"` 39 | if [ "${SYSCONFIG_DIR}" != "" ]; then 40 | SYSCONFIG_DIR="conf_dir=${SYSCONFIG_DIR} " 41 | fi 42 | 43 | # Clean sa directory 44 | CLEAN_SA_DIR=`${ASK} 'Clean system activity directory? (y/n)' "--enable-clean-sa-dir" "clean-sa-dir"` 45 | if [ "${CLEAN_SA_DIR}" = "y" ]; then 46 | CLEAN_SA_DIR="--enable-clean-sa-dir " 47 | else 48 | CLEAN_SA_DIR="" 49 | echo "Parameter --enable-clean-sa-dir is NOT set" 50 | fi 51 | 52 | # National Language Support 53 | NLS=`${ASK} 'Disable National Language Support (NLS)? (y/n)' "--disable-nls" "nls"` 54 | if [ "${NLS}" = "y" ]; then 55 | NLS="--disable-nls " 56 | else 57 | NLS="" 58 | echo "Parameter --disable-nls is NOT set" 59 | fi 60 | 61 | # Sensors support 62 | SENSORS=`${ASK} 'Disable sensors support? (y/n)' "--disable-sensors" "sensors"` 63 | if [ "${SENSORS}" = "y" ]; then 64 | SENSORS="--disable-sensors " 65 | else 66 | SENSORS="" 67 | echo "Parameter --disable-sensors is NOT set" 68 | fi 69 | 70 | # sa2 processes data file of the day before 71 | YESTERDAY=`${ASK} 'sa2 uses daily data file of the day before? (y/n)' "--enable-yesterday" "yesterday"` 72 | if [ "${YESTERDAY}" = "y" ]; then 73 | YESTERDAY="--enable-yesterday " 74 | else 75 | YESTERDAY="" 76 | echo "Parameter --enable-yesterday is NOT set" 77 | fi 78 | 79 | # Data history to keep by sa2 80 | HISTORY=`${ASK} 'Number of daily data files to keep:' "history" "history"` 81 | if [ "${HISTORY}" != "" ]; then 82 | HISTORY="history=${HISTORY} " 83 | fi 84 | 85 | # Delay after which datafiles are to be compressed 86 | COMPRESSAFTER=`${ASK} 'Number of days after which sar datafiles must be compressed:' "compressafter" "compressafter"` 87 | if [ "${COMPRESSAFTER}" != "" ]; then 88 | COMPRESSAFTER="compressafter=${COMPRESSAFTER} " 89 | fi 90 | 91 | # Manual page group 92 | MAN=`${ASK} 'Group for manual pages:' "man_group" "man_group"` 93 | if [ "${MAN}" != "" ]; then 94 | MAN="man_group=${MAN} " 95 | fi 96 | 97 | # Ignore man_group variable 98 | IGNORE_MAN=`${ASK} 'Ignore contents of man_group variable? (y/n)' "--disable-man-group" "ignore-man-group"` 99 | if [ "${IGNORE_MAN}" = "y" ]; then 100 | IGNORE_MAN="--disable-man-group " 101 | else 102 | IGNORE_MAN="" 103 | echo "Parameter --disable-man-group is NOT set" 104 | fi 105 | 106 | # Crontab 107 | CRON=`${ASK} 'Set crontab to start sar automatically? (y/n)' "--enable-install-cron" "install-cron"` 108 | if [ "${CRON}" = "y" ]; then 109 | CRON="--enable-install-cron " 110 | else 111 | CRON="" 112 | echo "Parameter --enable-install-cron is NOT set" 113 | fi 114 | 115 | if [ "${CRON}" != "" ]; 116 | then 117 | CRON_OWNER=`${ASK} 'Crontab owner:' "cron_owner" "cron_owner"` 118 | if [ "${CRON_OWNER}" != "" ]; then 119 | CRON="${CRON}cron_owner=${CRON_OWNER} " 120 | fi 121 | fi 122 | 123 | if [ "${CRON}" != "" ]; 124 | then 125 | CRON_INTERVAL=`${ASK} 'Crontab sampling interval (in minutes):' "cron_interval" "cron_interval"` 126 | if [ "${CRON_INTERVAL}" != "" ]; then 127 | CRON="${CRON}cron_interval=${CRON_INTERVAL} " 128 | fi 129 | fi 130 | 131 | if [ "${CRON}" != "" ]; 132 | then 133 | # rc directory 134 | RCDIR=`${ASK} 'rc directory:' "rcdir" "rcdir"` 135 | if [ "${RCDIR}" != "" ]; then 136 | RCDIR="rcdir=${RCDIR} " 137 | fi 138 | fi 139 | 140 | # Compress manual pages 141 | COMPRESSMANPG=`${ASK} 'Compress manual pages? (y/n)' "--enable-compress-manpg" "compress-manpg"` 142 | if [ "${COMPRESSMANPG}" = "y" ]; then 143 | COMPRESSMANPG="--enable-compress-manpg " 144 | else 145 | COMPRESSMANPG="" 146 | echo "Parameter --enable-compress-manpg is NOT set" 147 | fi 148 | 149 | # Install documentation 150 | INSTALL_DOC=`${ASK} 'Skip documentation installation? (y/n)' "--disable-documentation" "install-doc"` 151 | if [ "${INSTALL_DOC}" = "y" ]; then 152 | INSTALL_DOC="--disable-documentation " 153 | else 154 | INSTALL_DOC="" 155 | echo "Parameter --disable-documentation is NOT set" 156 | fi 157 | 158 | # Debug mode 159 | DEBUGINFO=`${ASK} 'Debug mode support? (y/n)' "--enable-debuginfo" "debuginfo"` 160 | if [ "${DEBUGINFO}" = "y" ]; then 161 | DEBUGINFO="--enable-debuginfo " 162 | else 163 | DEBUGINFO="" 164 | echo "Parameter --enable-debuginfo is NOT set" 165 | fi 166 | 167 | # Install isag script 168 | INSTALL_ISAG=`${ASK} 'Install isag script? (y/n)' "--enable-install-isag" "install-isag"` 169 | if [ "${INSTALL_ISAG}" = "y" ]; then 170 | INSTALL_ISAG="--enable-install-isag " 171 | else 172 | INSTALL_ISAG="" 173 | echo "Parameter --enable-install-isag is NOT set" 174 | fi 175 | 176 | echo 177 | echo "./configure ${PREFIX}${SA_LIB_DIR}${SA_DIR}${SYSCONFIG_DIR}${CLEAN_SA_DIR}${NLS} \ 178 | ${YESTERDAY}${HISTORY}${COMPRESSAFTER}${MAN}${IGNORE_MAN}${CRON}${RCDIR} \ 179 | ${COMPRESSMANPG}${INSTALL_DOC}${DEBUGINFO}${INSTALL_ISAG}${SENSORS}" 180 | echo 181 | 182 | ./configure ${PREFIX}${SA_LIB_DIR}${SA_DIR}${SYSCONFIG_DIR}${CLEAN_SA_DIR}${NLS} \ 183 | ${YESTERDAY}${HISTORY}${COMPRESSAFTER}${MAN}${IGNORE_MAN}${CRON}${RCDIR} \ 184 | ${COMPRESSMANPG}${INSTALL_DOC}${DEBUGINFO}${INSTALL_ISAG}${SENSORS} 185 | 186 | -------------------------------------------------------------------------------- /ioconf.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ioconf: ioconf configuration file handling code 3 | * Original code (C) 2004 by Red Hat (Charlie Bennett ) 4 | * 5 | * Modified and maintained by Sebastien GODARD (sysstat orange.fr) 6 | */ 7 | 8 | #ifndef _IOCONF_H 9 | #define _IOCONF_H 10 | 11 | #include "sysconfig.h" 12 | 13 | #define IOC_NAMELEN 31 14 | #define IOC_DESCLEN 63 15 | #define IOC_DEVLEN 47 16 | #define IOC_MAXMINOR 2047 17 | #define IOC_LINESIZ 255 18 | #define IOC_PARTLEN 7 19 | #define IOC_FMTLEN 15 20 | 21 | #ifndef MAX_BLKDEV 22 | #define MAX_BLKDEV 255 23 | #endif 24 | 25 | #define K_NODEV "nodev" 26 | 27 | #define IS_WHOLE(maj,min) ((min % ioconf[maj]->blkp->pcount) == 0) 28 | 29 | /* 30 | * When is C going to get templates? 31 | */ 32 | #define IOC_ALLOC(P,TYPE,SIZE) \ 33 | do { \ 34 | if (P == NULL) { \ 35 | P = (TYPE *) malloc(SIZE); \ 36 | if (P == NULL) { \ 37 | perror("malloc"); \ 38 | ioc_free(); \ 39 | return 0; \ 40 | } \ 41 | } \ 42 | } \ 43 | while (0) 44 | /* That dummy while allows ';' on the line that invokes the macro... */ 45 | 46 | 47 | struct blk_config { 48 | char name[IOC_NAMELEN + 1]; /* device basename */ 49 | char cfmt[IOC_FMTLEN + 1]; /* controller format string */ 50 | char dfmt[IOC_FMTLEN + 1]; /* disk format string */ 51 | char pfmt[IOC_FMTLEN + 1]; /* partition format string */ 52 | /* ctrlno is in the ioc_entry */ 53 | unsigned int ctrl_explicit; /* use "cN" in name */ 54 | unsigned int dcount; /* number of devices handled by this major */ 55 | unsigned int pcount; /* partitions per device */ 56 | char desc[IOC_DESCLEN + 1]; 57 | /* disk info unit # conversion function */ 58 | char *(*cconv)(unsigned int); 59 | 60 | /* extension properties (all this for initrd?) */ 61 | char ext_name[IOC_NAMELEN + 1]; 62 | unsigned int ext; /* flag - this is an extension record */ 63 | unsigned int ext_minor; /* which minor does this apply to */ 64 | }; 65 | 66 | #define BLK_CONFIG_SIZE (sizeof(struct blk_config)) 67 | 68 | 69 | struct ioc_entry { 70 | int live; /* is this a Direct entry? */ 71 | unsigned int ctrlno; /* controller number */ 72 | unsigned int basemajor; /* Major number of the template */ 73 | char *desc; /* (dynamic) per-controller description */ 74 | struct blk_config *blkp; /* the real info, may be a shared ref */ 75 | }; 76 | 77 | #define IOC_ENTRY_SIZE (sizeof(struct ioc_entry)) 78 | 79 | 80 | extern int ioc_iswhole(unsigned int, unsigned int); 81 | extern char *ioc_name(unsigned int, unsigned int); 82 | extern char *transform_devmapname(unsigned int, unsigned int); 83 | 84 | #endif 85 | -------------------------------------------------------------------------------- /iostat.h: -------------------------------------------------------------------------------- 1 | /* 2 | * iostat: report CPU and I/O statistics 3 | * (C) 1999-2011 by Sebastien Godard (sysstat orange.fr) 4 | */ 5 | 6 | #ifndef _IOSTAT_H 7 | #define _IOSTAT_H 8 | 9 | #include "common.h" 10 | 11 | /* I_: iostat - D_: Display - F_: Flag */ 12 | #define I_D_CPU 0x00001 13 | #define I_D_DISK 0x00002 14 | #define I_D_TIMESTAMP 0x00004 15 | #define I_D_EXTENDED 0x00008 16 | #define I_D_PART_ALL 0x00010 17 | #define I_D_KILOBYTES 0x00020 18 | #define I_F_HAS_SYSFS 0x00040 19 | #define I_D_DEBUG 0x00080 20 | #define I_D_UNFILTERED 0x00100 21 | #define I_D_MEGABYTES 0x00200 22 | #define I_D_PARTITIONS 0x00400 23 | #define I_F_HAS_DISKSTATS 0x00800 24 | /* Unused 0x01000 */ 25 | /* Unused 0x02000 */ 26 | /* Unused 0x04000 */ 27 | /* Unused 0x08000 */ 28 | #define I_D_DEVMAP_NAME 0x10000 29 | #define I_D_ISO 0x20000 30 | /* Unused 0x40000 */ 31 | #define I_D_ZERO_OMIT 0x80000 32 | 33 | #define DISPLAY_CPU(m) (((m) & I_D_CPU) == I_D_CPU) 34 | #define DISPLAY_DISK(m) (((m) & I_D_DISK) == I_D_DISK) 35 | #define DISPLAY_TIMESTAMP(m) (((m) & I_D_TIMESTAMP) == I_D_TIMESTAMP) 36 | #define DISPLAY_EXTENDED(m) (((m) & I_D_EXTENDED) == I_D_EXTENDED) 37 | #define DISPLAY_PART_ALL(m) (((m) & I_D_PART_ALL) == I_D_PART_ALL) 38 | #define DISPLAY_KILOBYTES(m) (((m) & I_D_KILOBYTES) == I_D_KILOBYTES) 39 | #define DISPLAY_MEGABYTES(m) (((m) & I_D_MEGABYTES) == I_D_MEGABYTES) 40 | #define HAS_SYSFS(m) (((m) & I_F_HAS_SYSFS) == I_F_HAS_SYSFS) 41 | #define DISPLAY_DEBUG(m) (((m) & I_D_DEBUG) == I_D_DEBUG) 42 | #define DISPLAY_UNFILTERED(m) (((m) & I_D_UNFILTERED) == I_D_UNFILTERED) 43 | #define DISPLAY_PARTITIONS(m) (((m) & I_D_PARTITIONS) == I_D_PARTITIONS) 44 | #define HAS_DISKSTATS(m) (((m) & I_F_HAS_DISKSTATS) == I_F_HAS_DISKSTATS) 45 | #define DISPLAY_DEVMAP_NAME(m) (((m) & I_D_DEVMAP_NAME) == I_D_DEVMAP_NAME) 46 | #define DISPLAY_ISO(m) (((m) & I_D_ISO) == I_D_ISO) 47 | #define DISPLAY_ZERO_OMIT(m) (((m) & I_D_ZERO_OMIT) == I_D_ZERO_OMIT) 48 | 49 | /* Preallocation constats */ 50 | #define NR_DEV_PREALLOC 4 51 | #define NR_DISK_PREALLOC 3 52 | 53 | /* Environment variable */ 54 | #define ENV_POSIXLY_CORRECT "POSIXLY_CORRECT" 55 | 56 | /* 57 | * Structures for I/O stats. 58 | * The number of structures allocated corresponds to the number of devices 59 | * present in the system, plus a preallocation number to handle those 60 | * that can be registered dynamically. 61 | * The number of devices is found by using /sys filesystem (if mounted), 62 | * or the number of "disk_io:" entries in /proc/stat (2.4 kernels), 63 | * else the default value is 4 (for old kernels, which maintained stats 64 | * for the first four devices in /proc/stat). 65 | * For each io_stats structure allocated corresponds a io_hdr_stats structure. 66 | * A io_stats structure is considered as unused or "free" (containing no stats 67 | * for a particular device) if the 'major' field of the io_hdr_stats 68 | * structure is set to 0. 69 | */ 70 | struct io_stats { 71 | /* # of sectors read */ 72 | unsigned long long rd_sectors __attribute__ ((aligned (8))); 73 | /* # of sectors written */ 74 | unsigned long long wr_sectors __attribute__ ((packed)); 75 | /* # of read operations issued to the device */ 76 | unsigned long rd_ios __attribute__ ((packed)); 77 | /* # of read requests merged */ 78 | unsigned long rd_merges __attribute__ ((packed)); 79 | /* Time of read requests in queue */ 80 | unsigned long rd_ticks __attribute__ ((packed)); 81 | /* # of write operations issued to the device */ 82 | unsigned long wr_ios __attribute__ ((packed)); 83 | /* # of write requests merged */ 84 | unsigned long wr_merges __attribute__ ((packed)); 85 | /* Time of write requests in queue */ 86 | unsigned long wr_ticks __attribute__ ((packed)); 87 | /* # of I/Os in progress */ 88 | unsigned long ios_pgr __attribute__ ((packed)); 89 | /* # of ticks total (for this device) for I/O */ 90 | unsigned long tot_ticks __attribute__ ((packed)); 91 | /* # of ticks requests spent in queue */ 92 | unsigned long rq_ticks __attribute__ ((packed)); 93 | /* # of I/O done since last reboot */ 94 | unsigned long dk_drive __attribute__ ((packed)); 95 | /* # of blocks read */ 96 | unsigned long dk_drive_rblk __attribute__ ((packed)); 97 | /* # of blocks written */ 98 | unsigned long dk_drive_wblk __attribute__ ((packed)); 99 | }; 100 | 101 | #define IO_STATS_SIZE (sizeof(struct io_stats)) 102 | 103 | struct io_hdr_stats { 104 | unsigned int active __attribute__ ((aligned (4))); 105 | unsigned int used __attribute__ ((packed)); 106 | char name[MAX_NAME_LEN]; 107 | }; 108 | 109 | #define IO_HDR_STATS_SIZE (sizeof(struct io_hdr_stats)) 110 | 111 | /* List of devices entered on the command line */ 112 | struct io_dlist { 113 | /* Indicate whether its partitions are to be displayed or not */ 114 | int disp_part __attribute__ ((aligned (4))); 115 | /* Device name */ 116 | char dev_name[MAX_NAME_LEN]; 117 | }; 118 | 119 | #define IO_DLIST_SIZE (sizeof(struct io_dlist)) 120 | 121 | #endif /* _IOSTAT_H */ 122 | -------------------------------------------------------------------------------- /man/cifsiostat.in: -------------------------------------------------------------------------------- 1 | .TH CIFSIOSTAT 1 "JANUARY 2011" Linux "Linux User's Manual" -*- nroff -*- 2 | .SH NAME 3 | cifsiostat \- Report CIFS statistics. 4 | .SH SYNOPSIS 5 | .ie 'yes'@WITH_DEBUG@' \{ 6 | .B cifsiostat [ --debuginfo ] [ -h ] [ -k | -m ] [ -t ] [ -V ] [ 7 | .I interval 8 | .B [ 9 | .I count 10 | .B ] ] 11 | .\} 12 | .el \{ 13 | .B cifsiostat [ -h ] [ -k | -m ] [ -t ] [ -V ] [ 14 | .I interval 15 | .B [ 16 | .I count 17 | .B ] ] 18 | .\} 19 | .SH DESCRIPTION 20 | The 21 | .B cifsiostat 22 | command displays statistics about read and write operations 23 | on CIFS filesystems. 24 | 25 | The 26 | .I interval 27 | parameter specifies the amount of time in seconds between 28 | each report. The first report contains statistics for the time since 29 | system startup (boot). Each subsequent report contains statistics 30 | collected during the interval since the previous report. 31 | A report consists of a CIFS header row followed by 32 | a line of statistics for each CIFS filesystem that is mounted. 33 | The 34 | .I count 35 | parameter can be specified in conjunction with the 36 | .I interval 37 | parameter. If the 38 | .I count 39 | parameter is specified, the value of 40 | .I count 41 | determines the number of reports generated at 42 | .I interval 43 | seconds apart. If the 44 | .I interval 45 | parameter is specified without the 46 | .I count 47 | parameter, the 48 | .B cifsiostat 49 | command generates reports continuously. 50 | 51 | .SH REPORT 52 | The CIFS report provides statistics for each mounted CIFS filesystem. 53 | The report shows the following fields: 54 | 55 | .B Filesystem: 56 | .RS 57 | This columns shows the mount point of the CIFS filesystem. 58 | 59 | .RE 60 | .B rB/s (rkB/s, rMB/s) 61 | .RS 62 | Indicate the average number of bytes (kilobytes, megabytes) read per second. 63 | 64 | .RE 65 | .B wB/s (wkB/s, wMB/s) 66 | .RS 67 | Indicate the average number of bytes (kilobytes, megabytes) written per second. 68 | 69 | .RE 70 | .B rop/s 71 | .RS 72 | Indicate the number of 'read' operations that were issued to the filesystem 73 | per second. 74 | 75 | .RE 76 | .B wop/s 77 | .RS 78 | Indicate the number of 'write' operations that were issued to the filesystem 79 | per second. 80 | 81 | .RE 82 | .B fo/s 83 | .RS 84 | Indicate the number of open files per second. 85 | 86 | .RE 87 | .B fc/s 88 | .RS 89 | Indicate the number of closed files per second. 90 | 91 | .RE 92 | .B fd/s 93 | .RS 94 | Indicate the number of deleted files per second. 95 | .RE 96 | .RE 97 | .SH OPTIONS 98 | .if 'yes'@WITH_DEBUG@' \{ 99 | .IP --debuginfo 100 | Print debug output to stderr. 101 | .\} 102 | .IP -h 103 | Make the CIFS report easier to read by a human. 104 | .IP -k 105 | Display statistics in kilobytes per second. 106 | .IP -m 107 | Display statistics in megabytes per second. 108 | .IP -t 109 | Print the time for each report displayed. The timestamp format may depend 110 | on the value of the S_TIME_FORMAT environment variable (see below). 111 | .IP -V 112 | Print version number then exit. 113 | 114 | .SH ENVIRONMENT 115 | The 116 | .B cifsiostat 117 | command takes into account the following environment variables: 118 | 119 | .IP S_TIME_FORMAT 120 | If this variable exists and its value is 121 | .BR ISO 122 | then the current locale will be ignored when printing the date in the report 123 | header. The 124 | .B nfsiostat 125 | command will use the ISO 8601 format (YYYY-MM-DD) instead. 126 | The timestamp displayed with option -t will also be compliant with ISO 8601 127 | format. 128 | 129 | .SH BUG 130 | .I /proc 131 | filesystem must be mounted for 132 | .B cifsiostat 133 | to work. 134 | 135 | .SH FILE 136 | .I /proc/fs/cifs/Stats 137 | contains CIFS statistics. 138 | .SH AUTHORS 139 | Written by Ivana Varekova (varekova redhat.com) 140 | 141 | Maintained by Sebastien Godard (sysstat orange.fr) 142 | .SH SEE ALSO 143 | .BR sar (1), 144 | .BR pidstat (1), 145 | .BR mpstat (1), 146 | .BR vmstat (8), 147 | .BR iostat (1), 148 | .BR nfsiostat (1) 149 | 150 | .I http://pagesperso-orange.fr/sebastien.godard/ 151 | -------------------------------------------------------------------------------- /man/iostat.in: -------------------------------------------------------------------------------- 1 | .TH IOSTAT 1 "JUNE 2010" Linux "Linux User's Manual" -*- nroff -*- 2 | .SH NAME 3 | iostat \- Report Central Processing Unit (CPU) statistics and input/output 4 | statistics for devices and partitions. 5 | .SH SYNOPSIS 6 | .ie 'yes'@WITH_DEBUG@' \{ 7 | .B iostat [ -c ] [ -d ] [ --debuginfo ] [ -N ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -z ] [ 8 | .I device 9 | .B [...] | ALL ] [ -p [ 10 | .I device 11 | .B [,...] | ALL ] ] [ 12 | .I interval 13 | .B [ 14 | .I count 15 | .B ] ] 16 | .\} 17 | .el \{ 18 | .B iostat [ -c ] [ -d ] [ -N ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -z ] [ 19 | .I device 20 | .B [...] | ALL ] [ -p [ 21 | .I device 22 | .B [,...] | ALL ] ] [ 23 | .I interval 24 | .B [ 25 | .I count 26 | .B ] ] 27 | .\} 28 | .SH DESCRIPTION 29 | The 30 | .B iostat 31 | command is used for monitoring system input/output device 32 | loading by observing the time the devices are active in relation 33 | to their average transfer rates. The 34 | .B iostat 35 | command generates reports 36 | that can be used to change system configuration to better balance 37 | the input/output load between physical disks. 38 | 39 | The first report generated by the 40 | .B iostat 41 | command provides statistics 42 | concerning the time since the system was booted. Each subsequent report 43 | covers the time since the previous report. All statistics are reported 44 | each time the iostat command is run. The report consists of a 45 | CPU header row followed by a row of 46 | CPU statistics. On 47 | multiprocessor systems, CPU statistics are calculated system-wide 48 | as averages among all processors. A device header row is displayed 49 | followed by a line of statistics for each device that is configured. 50 | 51 | The 52 | .I interval 53 | parameter specifies the amount of time in seconds between 54 | each report. The first report contains statistics for the time since 55 | system startup (boot). Each subsequent report contains statistics 56 | collected during the interval since the previous report. The 57 | .I count 58 | parameter can be specified in conjunction with the 59 | .I interval 60 | parameter. If the 61 | .I count 62 | parameter is specified, the value of 63 | .I count 64 | determines the number of reports generated at 65 | .I interval 66 | seconds apart. If the 67 | .I interval 68 | parameter is specified without the 69 | .I count 70 | parameter, the 71 | .B iostat 72 | command generates reports continuously. 73 | 74 | .SH REPORTS 75 | The 76 | .B iostat 77 | command generates three types of reports, the CPU 78 | Utilization report, the Device Utilization report and 79 | the Network Filesystem report. 80 | .IP "CPU Utilization Report" 81 | The first report generated by the 82 | .B iostat 83 | command is the CPU 84 | Utilization Report. For multiprocessor systems, the CPU values are 85 | global averages among all processors. 86 | The report has the following format: 87 | 88 | .B %user 89 | .RS 90 | .RS 91 | Show the percentage of CPU utilization that occurred while 92 | executing at the user level (application). 93 | .RE 94 | 95 | .B %nice 96 | .RS 97 | Show the percentage of CPU utilization that occurred while 98 | executing at the user level with nice priority. 99 | .RE 100 | 101 | .B %system 102 | .RS 103 | Show the percentage of CPU utilization that occurred while 104 | executing at the system level (kernel). 105 | .RE 106 | 107 | .B %iowait 108 | .RS 109 | Show the percentage of time that the CPU or CPUs were idle during which 110 | the system had an outstanding disk I/O request. 111 | .RE 112 | 113 | .B %steal 114 | .RS 115 | Show the percentage of time spent in involuntary wait by the virtual CPU 116 | or CPUs while the hypervisor was servicing another virtual processor. 117 | .RE 118 | 119 | .B %idle 120 | .RS 121 | Show the percentage of time that the CPU or CPUs were idle and the system 122 | did not have an outstanding disk I/O request. 123 | .RE 124 | .RE 125 | .IP "Device Utilization Report" 126 | The second report generated by the 127 | .B iostat 128 | command is the Device Utilization 129 | Report. The device report provides statistics on a per physical device 130 | or partition basis. Block devices and partitions for which statistics are 131 | to be displayed may be entered on the command line. 132 | If no device nor partition 133 | is entered, then statistics are displayed 134 | for every device used by the system, and 135 | providing that the kernel maintains statistics for it. 136 | If the 137 | .B ALL 138 | keyword is given on the command line, then statistics are 139 | displayed for every device defined by the system, including those 140 | that have never been used. 141 | Transfer rates are shown in 1K blocks by default, unless the environment 142 | variable POSIXLY_CORRECT is set, in which case 512-byte blocks are used. 143 | The report may show the following fields, 144 | depending on the flags used: 145 | 146 | .B Device: 147 | .RS 148 | .RS 149 | This column gives the device (or partition) name as listed in the /dev 150 | directory. 151 | 152 | .RE 153 | .B tps 154 | .RS 155 | Indicate the number of transfers per second that were issued 156 | to the device. A transfer is an I/O request to the 157 | device. Multiple logical requests can be combined into a single I/O 158 | request to the device. A transfer is of indeterminate size. 159 | 160 | .RE 161 | .B Blk_read/s (kB_read/s, MB_read/s) 162 | .RS 163 | Indicate the amount of data read from the device expressed in a number of 164 | blocks (kilobytes, megabytes) per second. Blocks are equivalent to sectors 165 | and therefore have a size of 512 bytes. 166 | 167 | .RE 168 | .B Blk_wrtn/s (kB_wrtn/s, MB_wrtn/s) 169 | .RS 170 | Indicate the amount of data written to the device expressed in a number of 171 | blocks (kilobytes, megabytes) per second. 172 | 173 | .RE 174 | .B Blk_read (kB_read, MB_read) 175 | .RS 176 | The total number of blocks (kilobytes, megabytes) read. 177 | 178 | .RE 179 | .B Blk_wrtn (kB_wrtn, MB_wrtn) 180 | .RS 181 | The total number of blocks (kilobytes, megabytes) written. 182 | 183 | .RE 184 | .B rrqm/s 185 | .RS 186 | The number of read requests merged per second that were queued to the device. 187 | 188 | .RE 189 | .B wrqm/s 190 | .RS 191 | The number of write requests merged per second that were queued to the device. 192 | 193 | .RE 194 | .B r/s 195 | .RS 196 | The number (after merges) of read requests completed per second for the device. 197 | 198 | .RE 199 | .B w/s 200 | .RS 201 | The number (after merges) of write requests completed per second for the device. 202 | 203 | .RE 204 | .B rsec/s (rkB/s, rMB/s) 205 | .RS 206 | The number of sectors (kilobytes, megabytes) read from the device per second. 207 | 208 | .RE 209 | .B wsec/s (wkB/s, wMB/s) 210 | .RS 211 | The number of sectors (kilobytes, megabytes) written to the device per second. 212 | 213 | .RE 214 | .B avgrq-sz 215 | .RS 216 | The average size (in sectors) of the requests that were issued to the device. 217 | 218 | .RE 219 | .B avgqu-sz 220 | .RS 221 | The average queue length of the requests that were issued to the device. 222 | 223 | .RE 224 | .B await 225 | .RS 226 | The average time (in milliseconds) for I/O requests issued to the device 227 | to be served. This includes the time spent by the requests in queue and 228 | the time spent servicing them. 229 | 230 | .RE 231 | .B r_await 232 | .RS 233 | The average time (in milliseconds) for read requests issued to the device 234 | to be served. This includes the time spent by the requests in queue and 235 | the time spent servicing them. 236 | 237 | .RE 238 | .B w_await 239 | .RS 240 | The average time (in milliseconds) for write requests issued to the device 241 | to be served. This includes the time spent by the requests in queue and 242 | the time spent servicing them. 243 | 244 | .RE 245 | .B svctm 246 | .RS 247 | The average service time (in milliseconds) for I/O requests that were issued 248 | to the device. Warning! Do not trust this field any more. 249 | This field will be removed in a future sysstat version. 250 | 251 | .RE 252 | .B %util 253 | .RS 254 | Percentage of CPU time during which I/O requests were issued to the device 255 | (bandwidth utilization for the device). Device saturation occurs when this 256 | value is close to 100%. 257 | .RE 258 | .RE 259 | .SH OPTIONS 260 | .IP -c 261 | Display the CPU utilization report. 262 | .IP -d 263 | Display the device utilization report. 264 | .if 'yes'@WITH_DEBUG@' \{ 265 | .IP --debuginfo 266 | Print debug output to stderr. 267 | .\} 268 | .IP -k 269 | Display statistics in kilobytes per second. 270 | .IP -m 271 | Display statistics in megabytes per second. 272 | .IP -N 273 | Display the registered device mapper names for any device mapper devices. 274 | Useful for viewing LVM2 statistics. 275 | .IP "-p [ { device [,...] | ALL } ]" 276 | The -p option displays statistics for 277 | block devices and all their partitions that are used by the system. 278 | If a device name is entered on the command line, then statistics for it 279 | and all its partitions are displayed. Last, the 280 | .B ALL 281 | keyword indicates that statistics have to be displayed for all the block 282 | devices and partitions defined by the system, including those that have 283 | never been used. 284 | .IP -t 285 | Print the time for each report displayed. The timestamp format may depend 286 | on the value of the S_TIME_FORMAT environment variable (see below). 287 | .IP -V 288 | Print version number then exit. 289 | .IP -x 290 | Display extended statistics. 291 | .IP -z 292 | Tell iostat to omit output for any devices for which there was no activity 293 | during the sample period. 294 | 295 | .SH ENVIRONMENT 296 | The 297 | .B iostat 298 | command takes into account the following environment variables: 299 | 300 | .IP S_TIME_FORMAT 301 | If this variable exists and its value is 302 | .BR ISO 303 | then the current locale will be ignored when printing the date in the report 304 | header. The 305 | .B iostat 306 | command will use the ISO 8601 format (YYYY-MM-DD) instead. 307 | The timestamp displayed with option -t will also be compliant with ISO 8601 308 | format. 309 | 310 | .IP POSIXLY_CORRECT 311 | When this variable is set, transfer rates are shown in 512-byte blocks instead 312 | of the default 1K blocks. 313 | 314 | .SH EXAMPLES 315 | .B iostat 316 | .RS 317 | Display a single history since boot report for all CPU and Devices. 318 | 319 | .RE 320 | .B iostat -d 2 321 | .RS 322 | Display a continuous device report at two second intervals. 323 | 324 | .RE 325 | .B iostat -d 2 6 326 | .RS 327 | Display six reports at two second intervals for all devices. 328 | 329 | .RE 330 | .B iostat -x sda sdb 2 6 331 | .RS 332 | Display six reports of extended statistics at two second intervals for devices 333 | sda and sdb. 334 | 335 | .RE 336 | .B iostat -p sda 2 6 337 | .RS 338 | Display six reports at two second intervals for device sda and all its 339 | partitions (sda1, etc.) 340 | .SH BUGS 341 | .I /proc 342 | filesystem must be mounted for 343 | .B iostat 344 | to work. 345 | 346 | Kernels older than 2.6.x are no longer supported. 347 | 348 | The average service time (svctm field) value is meaningless, 349 | as I/O statistics are calculated at block level, and we don't know 350 | when the disk driver starts to process a request. For this reason, 351 | this field will be removed in a future sysstat version. 352 | .SH FILES 353 | .I /proc/stat 354 | contains system statistics. 355 | 356 | .I /proc/uptime 357 | contains system uptime. 358 | 359 | .I /proc/diskstats 360 | contains disks statistics. 361 | 362 | .I /sys 363 | contains statistics for block devices. 364 | 365 | .I /proc/self/mountstats 366 | contains statistics for network filesystems. 367 | .SH AUTHOR 368 | Sebastien Godard (sysstat orange.fr) 369 | .SH SEE ALSO 370 | .BR sar (1), 371 | .BR pidstat (1), 372 | .BR mpstat (1), 373 | .BR vmstat (8), 374 | .BR nfsiostat (1), 375 | .BR cifsiostat (1) 376 | 377 | .I http://pagesperso-orange.fr/sebastien.godard/ 378 | -------------------------------------------------------------------------------- /man/mpstat.1: -------------------------------------------------------------------------------- 1 | .TH MPSTAT 1 "JANUARY 2010" Linux "Linux User's Manual" -*- nroff -*- 2 | .SH NAME 3 | mpstat \- Report processors related statistics. 4 | .SH SYNOPSIS 5 | .B mpstat [ -A ] [ -I { SUM | CPU | SCPU | ALL } ] [ -u ] [ -P { 6 | .I cpu 7 | .B [,...] | ALL } ] [ -V ] [ 8 | .I interval 9 | .B [ 10 | .I count 11 | .B ] ] 12 | .SH DESCRIPTION 13 | The 14 | .B mpstat 15 | command writes to standard output activities for each available processor, 16 | processor 0 being the first one. 17 | Global average activities among all processors are also reported. 18 | The 19 | .B mpstat 20 | command can be used both on SMP and UP machines, but in the latter, only global 21 | average activities will be printed. If no activity has been selected, then the 22 | default report is the CPU utilization report. 23 | 24 | The 25 | .I interval 26 | parameter specifies the amount of time in seconds between each report. 27 | A value of 0 (or no parameters at all) indicates that processors statistics are 28 | to be reported for the time since system startup (boot). 29 | The 30 | .I count 31 | parameter can be specified in conjunction with the 32 | .I interval 33 | parameter if this one is not set to zero. The value of 34 | .I count 35 | determines the number of reports generated at 36 | .I interval 37 | seconds apart. If the 38 | .I interval 39 | parameter is specified without the 40 | .I count 41 | parameter, the 42 | .B mpstat 43 | command generates reports continuously. 44 | 45 | .SH OPTIONS 46 | .IP -A 47 | This option is equivalent to specifying 48 | .BR "-I ALL -u -P ALL" 49 | .IP "-I { SUM | CPU | SCPU | ALL }" 50 | Report interrupts statistics. 51 | 52 | With the 53 | .B SUM 54 | keyword, the 55 | .B mpstat 56 | command reports the total number of interrupts per processor. 57 | The following values are displayed: 58 | 59 | .B CPU 60 | .RS 61 | .RS 62 | Processor number. The keyword 63 | .I all 64 | indicates that statistics are calculated as averages among all 65 | processors. 66 | .RE 67 | 68 | .B intr/s 69 | .RS 70 | Show the total number of interrupts received per second by 71 | the CPU or CPUs. 72 | .RE 73 | 74 | With the 75 | .B CPU 76 | keyword, the number of each individual interrupt received per 77 | second by the CPU or CPUs is displayed. 78 | 79 | With the 80 | .B SCPU 81 | keyword, the number of each individual software interrupt received per 82 | second by the CPU or CPUs is displayed. This option works only 83 | with kernels 2.6.31 and later. 84 | 85 | The 86 | .B ALL 87 | keyword is equivalent to specifying all the keywords above and 88 | therefore all the interrupts statistics are displayed. 89 | .RE 90 | .RE 91 | .IP "-P { cpu [,...] | ALL }" 92 | Indicate the processor number for which statistics are to be reported. 93 | .I cpu 94 | is the processor number. Note that processor 0 is the first processor. 95 | The 96 | .B ALL 97 | keyword indicates that statistics are to be reported for all processors. 98 | .IP -u 99 | Report CPU utilization. The following values are displayed: 100 | 101 | .B CPU 102 | .RS 103 | .RS 104 | Processor number. The keyword 105 | .I all 106 | indicates that statistics are calculated as averages among all 107 | processors. 108 | .RE 109 | 110 | .B %usr 111 | .RS 112 | Show the percentage of CPU utilization that occurred while 113 | executing at the user level (application). 114 | .RE 115 | 116 | .B %nice 117 | .RS 118 | Show the percentage of CPU utilization that occurred while 119 | executing at the user level with nice priority. 120 | .RE 121 | 122 | .B %sys 123 | .RS 124 | Show the percentage of CPU utilization that occurred while 125 | executing at the system level (kernel). Note that this does not 126 | include time spent servicing hardware and software interrupts. 127 | .RE 128 | 129 | .B %iowait 130 | .RS 131 | Show the percentage of time that the CPU or CPUs were idle during which 132 | the system had an outstanding disk I/O request. 133 | .RE 134 | 135 | .B %irq 136 | .RS 137 | Show the percentage of time spent by the CPU or CPUs to service hardware 138 | interrupts. 139 | .RE 140 | 141 | .B %soft 142 | .RS 143 | Show the percentage of time spent by the CPU or CPUs to service software 144 | interrupts. 145 | .RE 146 | 147 | .B %steal 148 | .RS 149 | Show the percentage of time spent in involuntary wait by the virtual CPU 150 | or CPUs while the hypervisor was servicing another virtual processor. 151 | .RE 152 | 153 | .B %guest 154 | .RS 155 | Show the percentage of time spent by the CPU or CPUs to run a virtual 156 | processor. 157 | .RE 158 | 159 | .B %idle 160 | .RS 161 | Show the percentage of time that the CPU or CPUs were idle and the system 162 | did not have an outstanding disk I/O request. 163 | .RE 164 | 165 | Note: On SMP machines a processor that does not have any activity at all 166 | is a disabled (offline) processor. 167 | .RE 168 | .IP -V 169 | Print version number then exit. 170 | 171 | .SH ENVIRONMENT 172 | The 173 | .B mpstat 174 | command takes into account the following environment variable: 175 | 176 | .IP S_TIME_FORMAT 177 | If this variable exists and its value is 178 | .BR ISO 179 | then the current locale will be ignored when printing the date in the report header. 180 | The 181 | .B mpstat 182 | command will use the ISO 8601 format (YYYY-MM-DD) instead. 183 | 184 | .SH EXAMPLES 185 | .B mpstat 2 5 186 | .RS 187 | Display five reports of global statistics among all processors at two second intervals. 188 | .RE 189 | 190 | .B mpstat -P ALL 2 5 191 | .RS 192 | Display five reports of statistics for all processors at two second intervals. 193 | 194 | .SH BUGS 195 | .I /proc 196 | filesystem must be mounted for the 197 | .B mpstat 198 | command to work. 199 | 200 | Only a few activities are given by the Linux kernel for each processor. 201 | 202 | .SH FILES 203 | .IR /proc 204 | contains various files with system statistics. 205 | 206 | .SH AUTHOR 207 | Sebastien Godard (sysstat orange.fr) 208 | .SH SEE ALSO 209 | .BR sar (1), 210 | .BR pidstat (1), 211 | .BR iostat (1), 212 | .BR vmstat (8) 213 | 214 | .I http://pagesperso-orange.fr/sebastien.godard/ 215 | -------------------------------------------------------------------------------- /man/nfsiostat.in: -------------------------------------------------------------------------------- 1 | .TH NFSIOSTAT 1 "JANUARY 2011" Linux "Linux User's Manual" -*- nroff -*- 2 | .SH NAME 3 | nfsiostat \- Report input/output statistics for network filesystems (NFS). 4 | .SH SYNOPSIS 5 | .ie 'yes'@WITH_DEBUG@' \{ 6 | .B nfsiostat [ --debuginfo ] [ -h ] [ -k | -m ] [ -t ] [ -V ] [ 7 | .I interval 8 | .B [ 9 | .I count 10 | .B ] ] 11 | .\} 12 | .el \{ 13 | .B nfsiostat [ -h ] [ -k | -m ] [ -t ] [ -V ] [ 14 | .I interval 15 | .B [ 16 | .I count 17 | .B ] ] 18 | .\} 19 | .SH DESCRIPTION 20 | The 21 | .B nfsiostat 22 | command displays statistics about read and write operations 23 | on NFS filesystems. 24 | 25 | The 26 | .I interval 27 | parameter specifies the amount of time in seconds between 28 | each report. The first report contains statistics for the time since 29 | system startup (boot). Each subsequent report contains statistics 30 | collected during the interval since the previous report. 31 | A report consists of an NFS header row followed by 32 | a line of statistics for each network filesystem that is mounted. 33 | The 34 | .I count 35 | parameter can be specified in conjunction with the 36 | .I interval 37 | parameter. If the 38 | .I count 39 | parameter is specified, the value of 40 | .I count 41 | determines the number of reports generated at 42 | .I interval 43 | seconds apart. If the 44 | .I interval 45 | parameter is specified without the 46 | .I count 47 | parameter, the 48 | .B nfsiostat 49 | command generates reports continuously. 50 | 51 | .SH REPORT 52 | The Network Filesystem (NFS) report provides statistics for each mounted network filesystem. 53 | Transfer rates are shown in 1K blocks by default, unless the environment 54 | variable POSIXLY_CORRECT is set, in which case 512-byte blocks are used. 55 | The report shows the following fields: 56 | 57 | .B Filesystem: 58 | .RS 59 | This columns shows the hostname of the NFS server followed by a colon and 60 | by the directory name where the network filesystem is mounted. 61 | 62 | .RE 63 | .B rBlk_nor/s (rkB_nor/s, rMB_nor) 64 | .RS 65 | Indicate the number of blocks (kilobytes, megabytes) read by applications 66 | via the read(2) system 67 | call interface. A block has a size of 512 bytes. 68 | 69 | .RE 70 | .B wBlk_nor/s (wkB_nor/s, wMB_nor/s) 71 | .RS 72 | Indicate the number of blocks (kilobytes, megabytes) written by applications 73 | via the write(2) system 74 | call interface. 75 | 76 | .RE 77 | .B rBlk_dir/s (rkB_dir/s, rMB_dir/s) 78 | .RS 79 | Indicate the number of blocks (kilobytes, megabytes) read from files 80 | opened with the O_DIRECT flag. 81 | 82 | .RE 83 | .B wBlk_dir/s (wkB_dir/s, wMB_dir/s) 84 | .RS 85 | Indicate the number of blocks (kilobytes, megabytes) written to files 86 | opened with the O_DIRECT flag. 87 | 88 | .RE 89 | .B rBlk_svr/s (rkB_svr/s, rMB_svr/s) 90 | .RS 91 | Indicate the number of blocks (kilobytes, megabytes) read from the server 92 | by the NFS client via an NFS READ request. 93 | 94 | .RE 95 | .B wBlk_svr/s (wkB_svr/s, wMB_svr/s) 96 | .RS 97 | Indicate the number of blocks (kilobytes, megabytes) written to the server 98 | by the NFS client via an NFS WRITE request. 99 | 100 | .RE 101 | .B ops/s 102 | .RS 103 | Indicate the number of operations that were issued to the filesystem per second. 104 | 105 | .RE 106 | .B rops/s 107 | .RS 108 | Indicate the number of 'read' operations that were issued to the filesystem 109 | per second. 110 | 111 | .RE 112 | .B wops/s 113 | .RS 114 | Indicate the number of 'write' operations that were issued to the filesystem 115 | per second. 116 | .RE 117 | .RE 118 | .SH OPTIONS 119 | .if 'yes'@WITH_DEBUG@' \{ 120 | .IP --debuginfo 121 | Print debug output to stderr. 122 | .\} 123 | .IP -h 124 | Make the NFS report easier to read by a human. 125 | .IP -k 126 | Display statistics in kilobytes per second. 127 | .IP -m 128 | Display statistics in megabytes per second. 129 | .IP -t 130 | Print the time for each report displayed. The timestamp format may depend 131 | on the value of the S_TIME_FORMAT environment variable (see below). 132 | .IP -V 133 | Print version number then exit. 134 | 135 | .SH ENVIRONMENT 136 | The 137 | .B nfsiostat 138 | command takes into account the following environment variables: 139 | 140 | .IP S_TIME_FORMAT 141 | If this variable exists and its value is 142 | .BR ISO 143 | then the current locale will be ignored when printing the date in the report 144 | header. The 145 | .B nfsiostat 146 | command will use the ISO 8601 format (YYYY-MM-DD) instead. 147 | The timestamp displayed with option -t will also be compliant with ISO 8601 148 | format. 149 | 150 | .IP POSIXLY_CORRECT 151 | When this variable is set, transfer rates are shown in 512-byte blocks instead 152 | of the default 1K blocks. 153 | 154 | .SH BUG 155 | .I /proc 156 | filesystem must be mounted for 157 | .B nfsiostat 158 | to work. 159 | 160 | .SH FILE 161 | .I /proc/self/mountstats 162 | contains statistics for network filesystems. 163 | .SH AUTHORS 164 | Written by Ivana Varekova (varekova redhat.com) 165 | 166 | Maintained by Sebastien Godard (sysstat orange.fr) 167 | .SH SEE ALSO 168 | .BR sar (1), 169 | .BR pidstat (1), 170 | .BR mpstat (1), 171 | .BR vmstat (8), 172 | .BR iostat (1), 173 | .BR cifsiostat (1) 174 | 175 | .I http://pagesperso-orange.fr/sebastien.godard/ 176 | -------------------------------------------------------------------------------- /man/pidstat.1: -------------------------------------------------------------------------------- 1 | .TH PIDSTAT 1 "JUNE 2010" Linux "Linux User's Manual" -*- nroff -*- 2 | .SH NAME 3 | pidstat \- Report statistics for Linux tasks. 4 | .SH SYNOPSIS 5 | .B pidstat [ -C 6 | .I comm 7 | .B ] [ -d ] [ -h ] [ -I ] [ -l ] [ -p { 8 | .I pid 9 | .B [,...] | SELF | ALL } ] [ -r ] [ -s ] [ -t ] [ -T { TASK | CHILD | ALL } ] [ -u ] [ -V ] [ -w ] [ 10 | .I interval 11 | .B [ 12 | .I count 13 | .B ] ] 14 | .SH DESCRIPTION 15 | The 16 | .B pidstat 17 | command is used for monitoring individual tasks currently being managed 18 | by the Linux kernel. 19 | It writes to standard output activities for every task selected with option 20 | .B -p 21 | or for every task managed by the Linux kernel if option 22 | .B -p ALL 23 | has been used. Not selecting any tasks is equivalent to specifying 24 | .B -p ALL 25 | but only active tasks (tasks with non-zero statistics values) 26 | will appear in the report. 27 | 28 | The 29 | .B pidstat 30 | command can also be used for monitoring the child processes of selected tasks. 31 | Read about option 32 | .B -T 33 | below. 34 | 35 | The 36 | .I interval 37 | parameter specifies the amount of time in seconds between each report. 38 | A value of 0 (or no parameters at all) indicates that tasks statistics are 39 | to be reported for the time since system startup (boot). 40 | The 41 | .I count 42 | parameter can be specified in conjunction with the 43 | .I interval 44 | parameter if this one is not set to zero. The value of 45 | .I count 46 | determines the number of reports generated at 47 | .I interval 48 | seconds apart. If the 49 | .I interval 50 | parameter is specified without the 51 | .I count 52 | parameter, the 53 | .B pidstat 54 | command generates reports continuously. 55 | 56 | You can select information about specific task activities using flags. 57 | Not specifying any flags selects only CPU activity. 58 | 59 | .SH OPTIONS 60 | .IP "-C comm" 61 | Display only tasks whose command name includes the string 62 | .IR comm . 63 | This string can be a regular expression. 64 | .IP -d 65 | Report I/O statistics (kernels 2.6.20 and later only). 66 | The following values are displayed: 67 | 68 | .B PID 69 | .RS 70 | .RS 71 | The identification number of the task being monitored. 72 | .RE 73 | 74 | .B kB_rd/s 75 | .RS 76 | Number of kilobytes the task has caused to be read from disk 77 | per second. 78 | .RE 79 | 80 | .B kB_wr/s 81 | .RS 82 | Number of kilobytes the task has caused, or shall cause to be 83 | written to disk per second. 84 | .RE 85 | 86 | .B kB_ccwr/s 87 | .RS 88 | Number of kilobytes whose writing to disk has been cancelled by 89 | the task. This may occur when the task truncates some 90 | dirty pagecache. In this case, some IO which another task has 91 | been accounted for will not be happening. 92 | .RE 93 | 94 | .B Command 95 | .RS 96 | The command name of the task. 97 | .RE 98 | .RE 99 | .IP -h 100 | Display all activities horizontally on a single line. This is 101 | intended to make it easier to be parsed by other programs. 102 | .IP -I 103 | In an SMP environment, indicate that tasks CPU usage 104 | (as displayed by option 105 | .B -u 106 | ) should be divided by the total number of processors. 107 | .IP -l 108 | Display the process command name and all its arguments. 109 | .IP "-p { pid [,...] | SELF | ALL }" 110 | Select tasks (processes) for which statistics are to be reported. 111 | .B pid 112 | is the process identification number. The 113 | .B SELF 114 | keyword indicates that statistics are to be reported for the 115 | .B pidstat 116 | process itself, whereas the 117 | .B ALL 118 | keyword indicates that statistics are to be reported for all the 119 | tasks managed by the system. 120 | .IP -r 121 | Report page faults and memory utilization. 122 | 123 | When reporting statistics for individual tasks, 124 | the following values are displayed: 125 | 126 | .B PID 127 | .RS 128 | .RS 129 | The identification number of the task being monitored. 130 | .RE 131 | 132 | .B minflt/s 133 | .RS 134 | Total number of minor faults the task has made per second, those 135 | which have not required loading a memory page from disk. 136 | .RE 137 | 138 | .B majflt/s 139 | .RS 140 | Total number of major faults the task has made per second, those 141 | which have required loading a memory page from disk. 142 | .RE 143 | 144 | .B VSZ 145 | .RS 146 | Virtual Size: The virtual memory usage of entire task in kilobytes. 147 | .RE 148 | 149 | .B RSS 150 | .RS 151 | Resident Set Size: The non-swapped physical memory 152 | used by the task in kilobytes. 153 | .RE 154 | 155 | .B Command 156 | .RS 157 | The command name of the task. 158 | .RE 159 | 160 | When reporting global statistics for tasks and all their children, 161 | the following values are displayed: 162 | 163 | .B PID 164 | .RS 165 | The identification number of the task which is being monitored 166 | together with its children. 167 | .RE 168 | 169 | .B minflt-nr 170 | .RS 171 | Total number of minor faults made by the task and all its children, 172 | and collected during the interval of time. 173 | .RE 174 | 175 | .B majflt-nr 176 | .RS 177 | Total number of major faults made by the task and all its children, 178 | and collected during the interval of time. 179 | .RE 180 | 181 | .B Command 182 | .RS 183 | The command name of the task which is being monitored 184 | together with its children. 185 | .RE 186 | .RE 187 | .IP -s 188 | Report stack utilization. 189 | The following values are displayed: 190 | 191 | .B PID 192 | .RS 193 | .RS 194 | The identification number of the task being monitored. 195 | .RE 196 | 197 | .B StkSize 198 | .RS 199 | The amount of memory in kilobytes reserved for the task as stack, 200 | but not necessarily used. 201 | .RE 202 | 203 | .B StkRef 204 | .RS 205 | The amount of memory in kilobytes used as stack, referenced by the task. 206 | .RE 207 | 208 | .B Command 209 | .RS 210 | The command name of the task. 211 | .RE 212 | .RE 213 | .IP -t 214 | Also display statistics for threads associated with selected tasks. 215 | 216 | This option adds the following values to the reports: 217 | 218 | .B TGID 219 | .RS 220 | .RS 221 | The identification number of the thread group leader. 222 | .RE 223 | 224 | .B TID 225 | .RS 226 | The identification number of the thread being monitored. 227 | .RE 228 | .RE 229 | .IP "-T { TASK | CHILD | ALL }" 230 | This option specifies what has to be monitored by the 231 | .B pidstat 232 | command. The 233 | .B TASK 234 | keyword indicates that statistics are to be reported for individual tasks 235 | (this is the default option) whereas the 236 | .B CHILD 237 | keyword indicates that statistics are to be globally reported for the 238 | selected tasks and all their children. The 239 | .B ALL 240 | keyword indicates that statistics are to be reported for 241 | individual tasks and globally for the selected 242 | tasks and their children. 243 | 244 | Note: Global statistics for tasks and all their children are not available 245 | for all options of 246 | .B pidstat. 247 | Also these statistics are not necessarily relevant to current time interval: 248 | The statistics of a child process are collected only when it finishes or 249 | it is killed. 250 | .IP -u 251 | Report CPU utilization. 252 | 253 | When reporting statistics for individual tasks, 254 | the following values are displayed: 255 | 256 | .B PID 257 | .RS 258 | .RS 259 | The identification number of the task being monitored. 260 | .RE 261 | 262 | .B %usr 263 | .RS 264 | Percentage of CPU used by the task while executing at the user level 265 | (application), with or without nice priority. Note that this field 266 | does NOT include time spent running a virtual processor. 267 | .RE 268 | 269 | .B %system 270 | .RS 271 | Percentage of CPU used by the task while executing at the system level 272 | (kernel). 273 | .RE 274 | 275 | .B %guest 276 | .RS 277 | Percentage of CPU spent by the task in virtual machine (running a virtual 278 | processor). 279 | .RE 280 | 281 | .B %CPU 282 | .RS 283 | Total percentage of CPU time used by the task. In an SMP environment, 284 | the task's CPU usage will be divided by the total number of CPU's if 285 | option 286 | .B -I 287 | has been entered on the command line. 288 | .RE 289 | 290 | .B CPU 291 | .RS 292 | Processor number to which the task is attached. 293 | .RE 294 | 295 | .B Command 296 | .RS 297 | The command name of the task. 298 | .RE 299 | 300 | When reporting global statistics for tasks and all their children, 301 | the following values are displayed: 302 | 303 | .B PID 304 | .RS 305 | The identification number of the task which is being monitored 306 | together with its children. 307 | .RE 308 | 309 | .B usr-ms 310 | .RS 311 | Total number of milliseconds spent 312 | by the task and all its children while executing at the 313 | user level (application), with or without nice priority, and 314 | collected during the interval of time. Note that this field does 315 | NOT include time spent running a virtual processor. 316 | .RE 317 | 318 | .B system-ms 319 | .RS 320 | Total number of milliseconds spent 321 | by the task and all its children while executing at the 322 | system level (kernel), and collected during the interval of time. 323 | .RE 324 | 325 | .B guest-ms 326 | .RS 327 | Total number of milliseconds spent 328 | by the task and all its children in virtual machine (running a virtual 329 | processor). 330 | .RE 331 | 332 | .B Command 333 | .RS 334 | The command name of the task which is being monitored 335 | together with its children. 336 | .RE 337 | .RE 338 | .IP -V 339 | Print version number then exit. 340 | .IP -w 341 | Report task switching activity (kernels 2.6.23 and later only). 342 | The following values are displayed: 343 | 344 | .B PID 345 | .RS 346 | .RS 347 | The identification number of the task being monitored. 348 | .RE 349 | 350 | .B cswch/s 351 | .RS 352 | Total number of voluntary context switches the task made per second. 353 | A voluntary context switch occurs when a task blocks because it 354 | requires a resource that is unavailable. 355 | .RE 356 | 357 | .B nvcswch/s 358 | .RS 359 | Total number of non voluntary context switches the task made per second. 360 | A involuntary context switch takes place when a task executes 361 | for the duration of its time slice and then is forced to relinquish the 362 | processor. 363 | .RE 364 | 365 | .B Command 366 | .RS 367 | The command name of the task. 368 | .RE 369 | .RE 370 | .SH ENVIRONMENT 371 | The 372 | .B pidstat 373 | command takes into account the following environment variable: 374 | 375 | .IP S_TIME_FORMAT 376 | If this variable exists and its value is 377 | .BR ISO 378 | then the current locale will be ignored when printing the date in the report header. 379 | The 380 | .B pidstat 381 | command will use the ISO 8601 format (YYYY-MM-DD) instead. 382 | 383 | .SH EXAMPLES 384 | .B pidstat 2 5 385 | .RS 386 | Display five reports of CPU statistics for every active task in the system 387 | at two second intervals. 388 | .RE 389 | 390 | .B pidstat -r -p 1643 2 5 391 | .RS 392 | Display five reports of page faults and memory statistics for 393 | PID 1643 at two second intervals. 394 | .RE 395 | 396 | .B pidstat -C """fox|bird"" -r -p ALL 397 | .RS 398 | Display global page faults and memory statistics for all the 399 | processes whose command name includes the string "fox" or "bird". 400 | .RE 401 | 402 | .B pidstat -T CHILD -r 2 5 403 | .RS 404 | Display five reports of page faults statistics at two second intervals 405 | for the child processes of all tasks in the system. Only child processes 406 | with non-zero statistics values are displayed. 407 | .SH BUGS 408 | .I /proc 409 | filesystem must be mounted for the 410 | .B pidstat 411 | command to work. 412 | 413 | .SH FILES 414 | .IR /proc 415 | contains various files with system statistics. 416 | 417 | .SH AUTHOR 418 | Sebastien Godard (sysstat orange.fr) 419 | .SH SEE ALSO 420 | .BR sar (1), 421 | .BR top (1), 422 | .BR ps (1), 423 | .BR mpstat (1), 424 | .BR iostat (1), 425 | .BR vmstat (8) 426 | 427 | .I http://pagesperso-orange.fr/sebastien.godard/ 428 | -------------------------------------------------------------------------------- /man/sa1.in: -------------------------------------------------------------------------------- 1 | .TH SA1 8 "SEPTEMBER 2010" Linux "Linux User's Manual" -*- nroff -*- 2 | .SH NAME 3 | sa1 \- Collect and store binary data in the system activity daily data file. 4 | .SH SYNOPSIS 5 | .B @SA_LIB_DIR@/sa1 [ --boot | 6 | .I interval 7 | .I count 8 | .B ] 9 | .SH DESCRIPTION 10 | The 11 | .B sa1 12 | command is a shell procedure variant of the 13 | .B sadc 14 | command and handles all of the flags and parameters of that command. The 15 | .B sa1 16 | command collects and stores binary data in the 17 | .IR @SA_DIR@/sa dd 18 | file, where the dd parameter indicates the current day. The 19 | .I interval 20 | and 21 | .I count 22 | parameters specify that the record should be written 23 | .I count 24 | times at 25 | .I interval 26 | seconds. If no arguments are given to 27 | .B sa1 28 | then a single record is written. 29 | 30 | The 31 | .B sa1 32 | command is designed to be started automatically by the cron command. 33 | 34 | .SH OPTIONS 35 | .IP --boot 36 | This option tells 37 | .B sa1 38 | that the 39 | .B sadc 40 | command should be called without specifying the 41 | .I interval 42 | and 43 | .I count 44 | parameters in order to insert a dummy record, marking the time when the counters 45 | restarts from 0. 46 | 47 | .SH EXAMPLES 48 | To create a daily record of 49 | .B sar 50 | activities, place the following entry in your root or adm crontab file: 51 | 52 | .B 0 8-18 * * 1-5 @SA_LIB_DIR@/sa1 1200 3 & 53 | 54 | .SH FILES 55 | .IR @SA_DIR@/sa dd 56 | .RS 57 | Indicate the daily data file, where the 58 | .B dd 59 | parameter is a number representing the day of the month. 60 | .SH AUTHOR 61 | Sebastien Godard (sysstat orange.fr) 62 | .SH SEE ALSO 63 | .BR sar (1), 64 | .BR sadc (8), 65 | .BR sa2 (8), 66 | .BR sadf (1), 67 | .BR sysstat (5) 68 | 69 | .I http://pagesperso-orange.fr/sebastien.godard/ 70 | -------------------------------------------------------------------------------- /man/sa2.in: -------------------------------------------------------------------------------- 1 | .TH SA2 8 "AUGUST 2010" Linux "Linux User's Manual" -*- nroff -*- 2 | .SH NAME 3 | sa2 \- Write a daily report in the @SA_DIR@ directory. 4 | .SH SYNOPSIS 5 | .B @SA_LIB_DIR@/sa2 6 | .SH DESCRIPTION 7 | The 8 | .B sa2 9 | command is a shell procedure variant of the 10 | .B sar 11 | command which writes a daily report in the 12 | .IR @SA_DIR@/sar dd 13 | file, where the dd parameter indicates the current day. The 14 | .B sa2 15 | command handles all of the flags and parameters of the 16 | .B sar 17 | command. 18 | 19 | The 20 | .B sa2 21 | command is designed to be started automatically by the cron command. 22 | 23 | .SH EXAMPLES 24 | To run the 25 | .B sa2 26 | command daily, place the following entry in your root or adm crontab file: 27 | 28 | .B 5 19 * * 1-5 @SA_LIB_DIR@/sa2 -A & 29 | 30 | This will generate a daily report called 31 | .IR @SA_DIR@/sar dd 32 | It will also remove reports more than one week old. 33 | .SH FILES 34 | .IR @SA_DIR@/sar dd 35 | .RS 36 | Indicate the daily report file, where the 37 | .B dd 38 | parameter is a number representing the day of the month. 39 | .SH AUTHOR 40 | Sebastien Godard (sysstat orange.fr) 41 | .SH SEE ALSO 42 | .BR sar (1), 43 | .BR sadc (8), 44 | .BR sa1 (8), 45 | .BR sadf (1) 46 | 47 | .I http://pagesperso-orange.fr/sebastien.godard/ 48 | -------------------------------------------------------------------------------- /man/sadc.in: -------------------------------------------------------------------------------- 1 | .TH SADC 8 "SEPTEMBER 2010" Linux "Linux User's Manual" -*- nroff -*- 2 | .SH NAME 3 | sadc \- System activity data collector. 4 | .SH SYNOPSIS 5 | .B @SA_LIB_DIR@/sadc [ -C 6 | .I comment 7 | .B ] [ -S { INT | DISK | SNMP | IPV6 | POWER | XDISK | ALL | XALL } ] [ -F ] [ -L ] [ -V ] [ 8 | .I interval 9 | .B [ 10 | .I count 11 | .B ] ] [ 12 | .I outfile 13 | .B ] 14 | .SH DESCRIPTION 15 | The 16 | .B sadc 17 | command samples system data a specified number of times 18 | (\fIcount\fR) at a specified interval measured in seconds 19 | (\fIinterval\fR). It writes in binary format to the specified 20 | .I outfile 21 | or to standard output. If 22 | .I outfile 23 | is set to -, then 24 | .B sadc 25 | uses the standard system activity daily data file, the 26 | .IR @SA_DIR@/sa dd 27 | file, where the dd parameter indicates the current day. 28 | By default 29 | .B sadc 30 | collects all the data available from the kernel. 31 | Exceptions are interrupts and disk data, for which the 32 | relevant options must be explicitly passed to 33 | .B sadc 34 | (see options below). 35 | 36 | When the 37 | .I count 38 | parameter is not specified, 39 | .B sadc 40 | writes its data endlessly. 41 | When both 42 | .I interval 43 | and 44 | .I count 45 | are not specified, and option -C is not used, 46 | a dummy record, which is used at system startup to mark 47 | the time when the counter restarts from 0, will be written. 48 | For example, one of the system startup script may write the restart mark to 49 | the daily data file by the command entry: 50 | 51 | .B "@SA_LIB_DIR@/sadc -" 52 | 53 | The 54 | .B sadc 55 | command is intended to be used as a backend to the 56 | .B sar 57 | command. 58 | 59 | Note: The 60 | .B sadc 61 | command only reports on local activities. 62 | 63 | .SH OPTIONS 64 | .IP "-C comment" 65 | When neither the 66 | .I interval 67 | nor the 68 | .I count 69 | parameters are specified, this option tells 70 | .B sadc 71 | to write a dummy record containing the specified 72 | .I comment 73 | string. 74 | This comment can then be displayed with option -C of 75 | .BR sar . 76 | .IP -F 77 | The creation of 78 | .I outfile 79 | will be forced. If the file already exists and has a format unknown to 80 | .B sadc 81 | then it will be truncated. This may be useful for daily data files 82 | created by an older version of 83 | .B sadc 84 | and whose format is no longer compatible with current one. 85 | .IP -L 86 | .B sadc 87 | will try to get an exclusive lock on the 88 | .I outfile 89 | before writing to it or truncating it. Failure to get the lock is fatal, 90 | except in the case of trying to write a normal (i.e. not a dummy and not 91 | a header) record to an existing file, in which case 92 | .B sadc 93 | will try again at the next interval. Usually, the only reason a lock 94 | would fail would be if another 95 | .B sadc 96 | process were also writing to the file. This can happen when cron is used 97 | to launch 98 | .BR sadc . 99 | If the system is under heavy load, an old 100 | .B sadc 101 | might still be running when cron starts a new one. Without locking, 102 | this situation can result in a corrupted system activity file. 103 | .IP "-S { INT | DISK | SNMP | IPV6 | POWER | XDISK | ALL | XALL }" 104 | Specify which optional activities should be collected by 105 | .BR sadc . 106 | Some activities are optional to prevent data files from growing too large. 107 | The 108 | .B INT 109 | keyword indicates that 110 | .B sadc 111 | should collect data for system interrupts. 112 | The 113 | .B DISK 114 | keyword indicates that 115 | .B sadc 116 | should collect data for block devices. 117 | The 118 | .B SNMP 119 | and 120 | .B IPV6 121 | keywords indicate respectively that SNMP and IPv6 statistics should be 122 | collected by 123 | .BR sadc . 124 | The 125 | .B POWER 126 | keyword indicates that 127 | .B sadc 128 | should collect power management statistics. 129 | The 130 | .B ALL 131 | keyword is equivalent to specifying all the keywords above and therefore 132 | all previous activities are collected. 133 | 134 | The 135 | .B XDISK 136 | keyword is an extension to the 137 | .B DISK 138 | one and indicates that partition statistics should be collected by 139 | .B sadc 140 | in addition to disk statistics. This option works only with kernels 2.6.25 141 | and later. 142 | The 143 | .B XALL 144 | keyword is equivalent to specifying all the keywords above (including 145 | keyword extensions) and therefore all possible activities are collected. 146 | 147 | Important note: The activities (including optional ones) saved in an existing 148 | data file prevail over those selected with option -S. 149 | As a consequence, appending data to an existing data file will result in 150 | option -S being ignored. 151 | .IP -V 152 | Print version number then exit. 153 | 154 | .SH ENVIRONMENT 155 | The 156 | .B sadc 157 | command takes into account the following environment variable: 158 | 159 | .IP S_TIME_DEF_TIME 160 | If this variable exists and its value is 161 | .BR UTC 162 | then 163 | .B sadc 164 | will save its data in UTC time. 165 | .B sadc 166 | will also use UTC time instead of local time to determine the current 167 | daily data file located in the 168 | .IR @SA_DIR@ 169 | directory. 170 | .SH EXAMPLES 171 | .B @SA_LIB_DIR@/sadc 1 10 /tmp/datafile 172 | .RS 173 | Write 10 records of one second intervals to the /tmp/datafile binary file. 174 | .RE 175 | 176 | .B @SA_LIB_DIR@/sadc -C Backup_Start /tmp/datafile 177 | .RS 178 | Insert the comment Backup_Start into the file /tmp/datafile. 179 | .RE 180 | .SH BUGS 181 | The 182 | .I /proc 183 | filesystem must be mounted for the 184 | .B sadc 185 | command to work. 186 | 187 | All the statistics are not necessarily available, depending on the kernel version used. 188 | .B sadc 189 | assumes that you are using at least a 2.6 kernel. 190 | .SH FILES 191 | .IR @SA_DIR@/sa dd 192 | .RS 193 | Indicate the daily data file, where the 194 | .B dd 195 | parameter is a number representing the day of the month. 196 | 197 | .RE 198 | .IR /proc 199 | contains various files with system statistics. 200 | .SH AUTHOR 201 | Sebastien Godard (sysstat orange.fr) 202 | .SH SEE ALSO 203 | .BR sar (1), 204 | .BR sa1 (8), 205 | .BR sa2 (8), 206 | .BR sadf (1), 207 | .BR sysstat (5) 208 | 209 | .I http://pagesperso-orange.fr/sebastien.godard/ 210 | -------------------------------------------------------------------------------- /man/sadf.in: -------------------------------------------------------------------------------- 1 | .TH SADF 1 "AUGUST 2010" Linux "Linux User's Manual" -*- nroff -*- 2 | .SH NAME 3 | sadf \- Display data collected by sar in multiple formats. 4 | .SH SYNOPSIS 5 | .B sadf [ -d | -D | -H | -p | -x ] [ -C ] [ -h ] [ -t ] [ -V ] [ -P { 6 | .I cpu 7 | .B [,...] | ALL } ] [ -s [ 8 | .I hh:mm:ss 9 | .B ] ] [ -e [ 10 | .I hh:mm:ss 11 | .B ] ] [ -- 12 | .I sar_options 13 | .B ] [ 14 | .I interval 15 | .B [ 16 | .I count 17 | .B ] ] [ 18 | .I datafile 19 | .B ] 20 | .SH DESCRIPTION 21 | The 22 | .B sadf 23 | command is used for displaying the contents of data files created by the 24 | .B sar(1) 25 | command. But unlike sar, 26 | .B sadf 27 | can write its data in many different formats (CSV, XML, etc.) 28 | The default format is one that can 29 | easily be handled by pattern processing commands like awk (see option -p). 30 | 31 | The 32 | .B sadf 33 | command extracts and writes to standard output records saved in the 34 | .I datafile 35 | file. This file must have been created by a version of 36 | .B sar 37 | which is compatible with that of 38 | .B sadf. 39 | If 40 | .I datafile 41 | is omitted, 42 | .B sadf 43 | uses the standard system activity file, the 44 | .IR @SA_DIR@/sa dd 45 | file, where the dd parameter indicates the current day. 46 | 47 | The 48 | .I interval 49 | and 50 | .I count 51 | parameters are used to tell 52 | .B sadf 53 | to select 54 | .I count 55 | records at 56 | .I interval 57 | seconds apart. If the 58 | .I count 59 | parameter is not set, then all the records saved in the data file will be 60 | displayed. 61 | 62 | All the activity flags of 63 | .B sar 64 | may be entered on the command line to indicate which 65 | activities are to be reported. Before specifying them, put a pair of 66 | dashes (--) on the command line in order not to confuse the flags 67 | with those of 68 | .B sadf. 69 | Not specifying any flags selects only CPU activity. 70 | 71 | .SH OPTIONS 72 | .IP -C 73 | Tell 74 | .B sadf 75 | to display comments present in file. 76 | .IP -D 77 | This option is equivalent to option -d below, except that the timestamp 78 | is always expressed in seconds since the epoch (00:00:00 UTC 01/01/1970). 79 | .IP -d 80 | Print the contents of the data file in a format that can easily 81 | be ingested by a relational database system. The output consists 82 | of fields separated by a semicolon. Each record contains 83 | the hostname of the host where the file was created, the interval value 84 | (or -1 if not applicable), the timestamp in a form easily acceptable by 85 | most databases, and additional semicolon separated data fields as specified 86 | by 87 | .I sar_options 88 | command line options. 89 | Note that the timestamp is displayed in UTC (Coordinated Universal Time) 90 | unless option -t is used. In this latter case, the timestamp is displayed 91 | in local time. 92 | .IP "-e [ hh:mm:ss ]" 93 | Set the ending time of the report, given in local time. The default ending 94 | time is 18:00:00. Hours must be given in 24-hour format. 95 | This option is ignored when option -x is used. 96 | .IP -h 97 | When used in conjunction with option -d or -D, all activities 98 | will be displayed horizontally on a single line. 99 | .IP -H 100 | Display the header of the data file. 101 | .IP "-P { cpu [,...] | ALL }" 102 | Tell 103 | .B sadf 104 | that processor dependent statistics are to be reported only for the 105 | specified processor or processors. Specifying the 106 | .B ALL 107 | keyword reports statistics for each individual processor, and globally for 108 | all processors. Note that processor 0 is the first processor. 109 | .IP -p 110 | Print the contents of the data file in a format that can 111 | easily be handled by pattern processing commands like awk. 112 | The output consists of fields separated by a tab. Each record contains the 113 | hostname of the host where the file was created, the interval value 114 | (or -1 if not applicable), the timestamp (UTC value - Coordinated Universal 115 | Time) in seconds from the epoch, the device name (or - if not applicable), 116 | the field name and its value. 117 | .IP "-s [ hh:mm:ss ]" 118 | Set the starting time of the data (given in local time), causing the 119 | .B sadf 120 | command to extract records time-tagged at, or following, the time 121 | specified. The default starting time is 08:00:00. 122 | Hours must be given in 24-hour format. This option is ignored when 123 | option -x is used. 124 | .IP -t 125 | When this option is used together with options -d or -x, the timestamp 126 | is displayed in local time instead of UTC (Coordinated Universal Time). 127 | This option is ignored when options -p or -D are used. 128 | .IP -V 129 | Print version number then exit. 130 | .IP -x 131 | Print the contents of the data file in XML format. 132 | Timestamps are displayed in UTC (Coordinated Universal Time) 133 | unless option -t is used, in which case they are displayed 134 | in local time. The corresponding 135 | DTD (Document Type Definition) and XML Schema are included in the sysstat 136 | source package. They are also available at 137 | .I http://pagesperso-orange.fr/sebastien.godard/download.html 138 | 139 | .SH ENVIRONMENT 140 | The 141 | .B sadf 142 | command takes into account the following environment variable: 143 | 144 | .IP S_TIME_DEF_TIME 145 | If this variable exists and its value is 146 | .BR UTC 147 | then 148 | .B sadf 149 | will use UTC time instead of local time to determine the current daily data 150 | file located in the 151 | .IR @SA_DIR@ 152 | directory. 153 | .SH EXAMPLES 154 | .B sadf -d @SA_DIR@/sa21 -- -r -n DEV 155 | .RS 156 | Extract memory, swap space and network statistics from system activity 157 | file 'sa21', and display them in a format that can be ingested by a 158 | database. 159 | .RE 160 | 161 | .B sadf -p -P 1 162 | .RS 163 | Extract CPU statistics for processor 1 (the second processor) from current 164 | daily data file, and display them in a format that can easily be handled 165 | by a pattern processing command. 166 | .RE 167 | 168 | .SH FILES 169 | .IR @SA_DIR@/sa dd 170 | .RS 171 | Indicate the daily data file, where the 172 | .B dd 173 | parameter is a number representing the day of the month. 174 | 175 | .RE 176 | .SH AUTHOR 177 | Sebastien Godard (sysstat orange.fr) 178 | .SH SEE ALSO 179 | .BR sar (1), 180 | .BR sadc (8), 181 | .BR sa1 (8), 182 | .BR sa2 (8) 183 | 184 | .I http://pagesperso-orange.fr/sebastien.godard/ 185 | -------------------------------------------------------------------------------- /man/sysstat.in: -------------------------------------------------------------------------------- 1 | .TH SYSSTAT 5 "SEPTEMBER 2010" Linux "Linux User's Manual" -*- nroff -*- 2 | .SH NAME 3 | sysstat \- sysstat configuration file. 4 | .SH DESCRIPTION 5 | This file is read by 6 | .BR sa1 (8) 7 | and 8 | .BR sa2 (8) 9 | shell scripts from the sysstat's set of tools. 10 | It consists of a sequence of shell variable assignments used to 11 | configure sysstat logging. 12 | The variables and their meanings are: 13 | .TP 14 | .B HISTORY 15 | The number of days during which a daily data file or a report 16 | should be kept. Data files or reports older than this number of 17 | days will be removed by the 18 | .BR sa2 (8) 19 | shell script. 20 | 21 | .TP 22 | .B COMPRESSAFTER 23 | Number of days after which daily data files are to be compressed, 24 | either by gzip or bzip2. 25 | 26 | .TP 27 | .B SADC_OPTIONS 28 | Options that should be passed to 29 | .BR sadc (8). 30 | With these options (see 31 | .BR sadc (8) 32 | manual page), you can select some additional data which are going to be saved in 33 | daily data files. 34 | These options are used only when a new data file is created. They will be 35 | ignored with an already existing one. 36 | 37 | .SH FILES 38 | .IR @SYSCONFIG_DIR@/sysstat 39 | 40 | .SH AUTHOR 41 | Sebastien Godard (sysstat orange.fr) 42 | .SH SEE ALSO 43 | .BR sadc (8), 44 | .BR sa1 (8), 45 | .BR sa2 (8) 46 | 47 | .I http://pagesperso-orange.fr/sebastien.godard/ 48 | -------------------------------------------------------------------------------- /mpstat.h: -------------------------------------------------------------------------------- 1 | /* 2 | * mpstat: per-processor statistics 3 | * (C) 2000-2011 by Sebastien Godard (sysstat orange.fr) 4 | */ 5 | 6 | #ifndef _MPSTAT_H 7 | #define _MPSTAT_H 8 | 9 | /* 10 | *************************************************************************** 11 | * mpstat's specific system files. 12 | *************************************************************************** 13 | */ 14 | 15 | #define SOFTIRQS "/proc/softirqs" 16 | 17 | /* 18 | *************************************************************************** 19 | * Activities definitions. 20 | *************************************************************************** 21 | */ 22 | 23 | #define M_D_CPU 0x0001 24 | #define M_D_IRQ_SUM 0x0002 25 | #define M_D_IRQ_CPU 0x0004 26 | #define M_D_SOFTIRQS 0x0008 27 | 28 | #define DISPLAY_CPU(m) (((m) & M_D_CPU) == M_D_CPU) 29 | #define DISPLAY_IRQ_SUM(m) (((m) & M_D_IRQ_SUM) == M_D_IRQ_SUM) 30 | #define DISPLAY_IRQ_CPU(m) (((m) & M_D_IRQ_CPU) == M_D_IRQ_CPU) 31 | #define DISPLAY_SOFTIRQS(m) (((m) & M_D_SOFTIRQS) == M_D_SOFTIRQS) 32 | 33 | /* 34 | *************************************************************************** 35 | * Keywords and constants. 36 | *************************************************************************** 37 | */ 38 | 39 | /* Indicate that option -P has been used */ 40 | #define F_P_OPTION 0x01 41 | 42 | #define USE_P_OPTION(m) (((m) & F_P_OPTION) == F_P_OPTION) 43 | 44 | #define K_SUM "SUM" 45 | #define K_CPU "CPU" 46 | #define K_SCPU "SCPU" 47 | 48 | #define NR_IRQCPU_PREALLOC 3 49 | 50 | #define MAX_IRQ_LEN 16 51 | 52 | /* 53 | *************************************************************************** 54 | * Structures used to store statistics. 55 | *************************************************************************** 56 | */ 57 | 58 | /* 59 | * stats_irqcpu->irq: IRQ#-A 60 | * stats_irqcpu->interrupt: number of IRQ#-A for proc 0 61 | * stats_irqcpu->irq: IRQ#-B 62 | * stats_irqcpu->interrupt: number of IRQ#-B for proc 0 63 | * ... 64 | * stats_irqcpu->irq: (undef'd) 65 | * stats_irqcpu->interrupt: number of IRQ#-A for proc 1 66 | * stats_irqcpu->irq: (undef'd) 67 | * stats_irqcpu->interrupt: number of IRQ#-B for proc 1 68 | * ... 69 | */ 70 | struct stats_irqcpu { 71 | unsigned int interrupt __attribute__ ((aligned (4))); 72 | char irq_name[MAX_IRQ_LEN]; 73 | }; 74 | 75 | #define STATS_IRQCPU_SIZE (sizeof(struct stats_irqcpu)) 76 | 77 | #endif 78 | -------------------------------------------------------------------------------- /nfsiostat.h: -------------------------------------------------------------------------------- 1 | /* 2 | * nfsiostat: Report NFS I/O statistics 3 | * Copyright (C) 2010 Red Hat, Inc. All Rights Reserved 4 | * Written by Ivana Varekova 5 | */ 6 | 7 | #ifndef _NFSIOSTAT_H 8 | #define _NFSIOSTAT_H 9 | 10 | #include "common.h" 11 | 12 | #define NFSMOUNTSTATS "/proc/self/mountstats" 13 | 14 | /* I_: iostat - D_: Display - F_: Flag */ 15 | #define I_D_TIMESTAMP 0x001 16 | #define I_D_KILOBYTES 0x002 17 | #define I_D_MEGABYTES 0x004 18 | #define I_D_ISO 0x008 19 | #define I_D_HUMAN_READ 0x010 20 | #define I_D_DEBUG 0x020 21 | 22 | #define DISPLAY_TIMESTAMP(m) (((m) & I_D_TIMESTAMP) == I_D_TIMESTAMP) 23 | #define DISPLAY_KILOBYTES(m) (((m) & I_D_KILOBYTES) == I_D_KILOBYTES) 24 | #define DISPLAY_MEGABYTES(m) (((m) & I_D_MEGABYTES) == I_D_MEGABYTES) 25 | #define DISPLAY_ISO(m) (((m) & I_D_ISO) == I_D_ISO) 26 | #define DISPLAY_HUMAN_READ(m) (((m) & I_D_HUMAN_READ) == I_D_HUMAN_READ) 27 | #define DISPLAY_DEBUG(m) (((m) & I_D_DEBUG) == I_D_DEBUG) 28 | 29 | /* Environment variable */ 30 | #define ENV_POSIXLY_CORRECT "POSIXLY_CORRECT" 31 | 32 | /* Preallocation constats */ 33 | #define NR_NFS_PREALLOC 2 34 | 35 | struct io_nfs_stats { 36 | unsigned long long rd_normal_bytes __attribute__ ((aligned (8))); 37 | unsigned long long wr_normal_bytes __attribute__ ((packed)); 38 | unsigned long long rd_direct_bytes __attribute__ ((packed)); 39 | unsigned long long wr_direct_bytes __attribute__ ((packed)); 40 | unsigned long long rd_server_bytes __attribute__ ((packed)); 41 | unsigned long long wr_server_bytes __attribute__ ((packed)); 42 | unsigned long rpc_sends __attribute__ ((packed)); 43 | unsigned long nfs_rops __attribute__ ((packed)); 44 | unsigned long nfs_wops __attribute__ ((packed)); 45 | }; 46 | 47 | #define IO_NFS_STATS_SIZE (sizeof(struct io_nfs_stats)) 48 | 49 | struct io_hdr_stats { 50 | unsigned int active __attribute__ ((aligned (4))); 51 | unsigned int used __attribute__ ((packed)); 52 | char name[MAX_NAME_LEN]; 53 | }; 54 | 55 | #define IO_HDR_STATS_SIZE (sizeof(struct io_hdr_stats)) 56 | 57 | #endif /* _NFSIOSTAT_H */ 58 | -------------------------------------------------------------------------------- /nls/README-nls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jahrome/sysstat-android/dfab1951b42ca6ad991d6d9e792df48b419d8869/nls/README-nls -------------------------------------------------------------------------------- /nls/af.po: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jahrome/sysstat-android/dfab1951b42ca6ad991d6d9e792df48b419d8869/nls/af.po -------------------------------------------------------------------------------- /nls/de.po: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jahrome/sysstat-android/dfab1951b42ca6ad991d6d9e792df48b419d8869/nls/de.po -------------------------------------------------------------------------------- /nls/es.po: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jahrome/sysstat-android/dfab1951b42ca6ad991d6d9e792df48b419d8869/nls/es.po -------------------------------------------------------------------------------- /nls/fr.po: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jahrome/sysstat-android/dfab1951b42ca6ad991d6d9e792df48b419d8869/nls/fr.po -------------------------------------------------------------------------------- /nls/ky.po: -------------------------------------------------------------------------------- 1 | # Translation of 'sysstat' messages to Kirghiz. 2 | # Copyright (C) 1999 Free Software Foundation, Inc. 3 | # Ilyas Bakirov , 2007. 4 | # 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: sysstat 8.0.4\n" 8 | "Report-Msgid-Bugs-To: sysstat orange.fr\n" 9 | "POT-Creation-Date: 2007-12-19 14:02+0100\n" 10 | "PO-Revision-Date: 2007-12-21 16:53+0600\n" 11 | "Last-Translator: Ilyas Bakirov \n" 12 | "Language-Team: Kirghiz \n" 13 | "MIME-Version: 1.0\n" 14 | "Content-Type: text/plain; charset=utf-8\n" 15 | "Content-Transfer-Encoding: 8bit\n" 16 | "X-Poedit-Language: Kyrgyz\n" 17 | "X-Poedit-Country: KYRGYZSTAN\n" 18 | 19 | #: common.c:57 20 | #, c-format 21 | msgid "sysstat version %s\n" 22 | msgstr "sysstat версиясы %s\n" 23 | 24 | #: common.c:160 common.c:385 ioconf.c:459 mpstat.c:265 sa_common.c:601 25 | #: sadc.c:476 sadc.c:485 sadc.c:530 sadc.c:620 26 | #, c-format 27 | msgid "Cannot open %s: %s\n" 28 | msgstr "Cannot open %s: %s\n" 29 | 30 | #: common.c:199 31 | #, fuzzy, c-format 32 | msgid "Cannot handle so many processors!\n" 33 | msgstr "Мынча көп процессор аткыраалынбайт!\n" 34 | 35 | #: iostat.c:74 36 | #, c-format 37 | msgid "" 38 | "Usage: %s [ options... ] [ [ ] ]\n" 39 | "Options are:\n" 40 | "[ -c ] [ -d ] [ -N ] [ -n ] [ -k | -m ] [ -t ] [ -V ] [ -x ]\n" 41 | "[ [ ... ] | ALL ] [ -p [ | ALL ] ]\n" 42 | msgstr "" 43 | "Колдонуу: %s [ опциялар... ] [ <интервал> [ <эсептегич> ] ]\n" 44 | "Опциялар төмөнкүдөй:\n" 45 | "[ -c ] [ -d ] [ -N ] [ -n ] [ -k | -m ] [ -t ] [ -V ] [ -x ]\n" 46 | "[ <жабдык> [ ... ] | ALL ] [ -p [ <жабдык> | ALL ] ]\n" 47 | 48 | #: iostat.c:1119 49 | #, c-format 50 | msgid "Time: %s\n" 51 | msgstr "Убакыт: %s\n" 52 | 53 | #: iostat.c:1435 54 | #, fuzzy, c-format 55 | msgid "-x and -p options are mutually exclusive\n" 56 | msgstr "-x and -p options are mutually exclusive\n" 57 | 58 | #: mpstat.c:66 59 | #, c-format 60 | msgid "" 61 | "Usage: %s [ options... ] [ [ ] ]\n" 62 | "Options are:\n" 63 | "[ -P { | ALL } ] [ -V ]\n" 64 | msgstr "" 65 | "Колдонуу: %s [ опциялар... ] [ <интервал> [ <эсептегич> ] ]\n" 66 | "Опциялар төмөнкүдөй:\n" 67 | "[ -P { | ALL } ] [ -V ]\n" 68 | 69 | #: mpstat.c:226 pidstat.c:1148 sar.c:740 70 | msgid "Average:" 71 | msgstr "Орточо:" 72 | 73 | #: mpstat.c:563 sar.c:157 74 | #, c-format 75 | msgid "Not that many processors!\n" 76 | msgstr "Мынча көп процессор эмес!\n" 77 | 78 | #: pidstat.c:72 79 | #, c-format 80 | msgid "" 81 | "Usage: %s [ options... ] [ [ ] ]\n" 82 | "Options are:\n" 83 | "[ -C ] [ -d ] [ -I ] [ -r ] [ -t ] [ -u ] [ -V ] [ -w ]\n" 84 | "[ -p { | SELF | ALL } ] [ -T { TASK | CHILD | ALL } ]\n" 85 | msgstr "" 86 | "Колдонуу: %s [ опциялар... ] [ <интервал> [ <эсептегич> ] ]\n" 87 | "Опциялар төмөнкүдөй:\n" 88 | "[ -C ] [ -d ] [ -I ] [ -r ] [ -t ] [ -u ] [ -V ] [ -w ]\n" 89 | "[ -p { | SELF | ALL } ] [ -T { TASK | CHILD | ALL } ]\n" 90 | 91 | #: pidstat.c:166 sar.c:1419 92 | #, c-format 93 | msgid "Requested activities not available\n" 94 | msgstr "Талап кылынган активдүүлүктөр жок\n" 95 | 96 | #: sa_common.c:572 97 | #, c-format 98 | msgid "Error while reading system activity file: %s\n" 99 | msgstr "Системдик активдүүлүктү окууда ката чыкты: %s\n" 100 | 101 | #: sa_common.c:581 102 | #, c-format 103 | msgid "End of system activity file unexpected\n" 104 | msgstr "Системдик активдүүлүк файлдын күтүлбөгөн соңу\n" 105 | 106 | #: sa_common.c:608 sadc.c:549 107 | #, c-format 108 | msgid "Invalid system activity file: %s (%#x)\n" 109 | msgstr "Системдик активдүүлүк файлы туура эмес: %s (%#x)\n" 110 | 111 | #: sa_common.c:632 112 | #, c-format 113 | msgid "Requested activities not available in file\n" 114 | msgstr "Талап кылынган активдүүлүктөр жок\n" 115 | 116 | #: sadc.c:83 117 | #, c-format 118 | msgid "" 119 | "Usage: %s [ options... ] [ [ ] ] [ ]\n" 120 | "Options are:\n" 121 | "[ -C ] [ -d ] [ -F ] [ -I ] [ -V ]\n" 122 | msgstr "" 123 | "Колдонуу: %s [ опциялар... ] [ <интервал> [ <эсептегич> ] ] [ <чыгыш_файлы> ]\n" 124 | "Опциялар төмөнкүдөй:\n" 125 | "[ -C <комментарий> ] [ -d ] [ -F ] [ -I ] [ -V ]\n" 126 | 127 | #: sadc.c:110 128 | #, c-format 129 | msgid "Cannot write data to system activity file: %s\n" 130 | msgstr "Берилиштер системдик активдүүлүк файлга жазаалынган жок: %s\n" 131 | 132 | #: sadc.c:361 133 | #, c-format 134 | msgid "Cannot write system activity file header: %s\n" 135 | msgstr "Системдик активдүүлүктүн башат файлы жазаалынган жок: %s\n" 136 | 137 | #: sadc.c:568 138 | #, c-format 139 | msgid "Cannot append data to that file\n" 140 | msgstr "Берилиштер тиги файлга кошоалынган жок\n" 141 | 142 | #: sadf.c:78 143 | #, c-format 144 | msgid "" 145 | "Usage: %s [ options... ] [ [ ] ] [ ]\n" 146 | "Options are:\n" 147 | "[ -d | -D | -H | -p | -x ] [ -t ] [ -V ]\n" 148 | "[ -P { | ALL } ] [ -s [ ] ] [ -e [ ] ]\n" 149 | "[ -- ]\n" 150 | msgstr "" 151 | "Колдонуу: %s [ опциялар... ] [ <интервал> [ <эсептегич> ] ] [ <файл_аты> ]\n" 152 | "Опциялар төмөнкүдөй:\n" 153 | "[ -d | -D | -H | -p | -x ] [ -t ] [ -V ]\n" 154 | "[ -P { | ALL } ] [ -s [ ] ] [ -e [ ] ]\n" 155 | "[ -- ]\n" 156 | 157 | #: sar.c:76 158 | #, c-format 159 | msgid "" 160 | "Usage: %s [ options... ] [ [ ] ]\n" 161 | "Options are:\n" 162 | "[ -A ] [ -b ] [ -B ] [ -c ] [ -C ] [ -d ] [ -i ] [ -p ] [ -q ]\n" 163 | "[ -r ] [ -R ] [ -t ] [ -u ] [ -v ] [ -V ] [ -w ] [ -W ] [ -y ]\n" 164 | "[ -I { | SUM | ALL | XALL } ] [ -P { | ALL } ]\n" 165 | "[ -n { DEV | EDEV | NFS | NFSD | SOCK | ALL } ]\n" 166 | "[ -o [ ] | -f [ ] ]\n" 167 | "[ -s [ ] ] [ -e [ ] ]\n" 168 | msgstr "" 169 | "Колдонуу: %s [ опциялар... ] [ <интервал> [ <эсептегич> ] ]\n" 170 | "Опциялар төмөнкүдөй:\n" 171 | "[ -A ] [ -b ] [ -B ] [ -c ] [ -C ] [ -d ] [ -i <интервал> ] [ -p ] [ -q ]\n" 172 | "[ -r ] [ -R ] [ -t ] [ -u ] [ -v ] [ -V ] [ -w ] [ -W ] [ -y ]\n" 173 | "[ -I { | SUM | ALL | XALL } ] [ -P { | ALL } ]\n" 174 | "[ -n { DEV | EDEV | NFS | NFSD | SOCK | ALL } ]\n" 175 | "[ -o [ <файл_аты> ] | -f [ <файл_аты> ] ]\n" 176 | "[ -s [ ] ] [ -e [ ] ]\n" 177 | 178 | #: sar.c:149 179 | #, c-format 180 | msgid "Not an SMP machine...\n" 181 | msgstr "Көп процессорлуу машина эмес...\n" 182 | 183 | #: sar.c:1261 184 | #, c-format 185 | msgid "Invalid data format\n" 186 | msgstr "Берилиштердин форматы туура эмес\n" 187 | 188 | #: sar.c:1633 189 | #, c-format 190 | msgid "-f and -o options are mutually exclusive\n" 191 | msgstr "-f жана -o опциялар бир бирин жойюшат\n" 192 | 193 | #: sar.c:1639 194 | #, c-format 195 | msgid "Not reading from a system activity file (use -f option)\n" 196 | msgstr "Системдик активдүүлүктөн окуубай жатабыз (-f опциясын колдонуңуз)\n" 197 | -------------------------------------------------------------------------------- /nls/lv.po: -------------------------------------------------------------------------------- 1 | # translation of sysstat to Latvian 2 | # Copyright (C) 2009 sysstat 3 | # This file is distributed under the same license as the sysstat package. 4 | # 5 | # Rihards Prieditis , 2009, 2010. 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: sysstat-9.1.3\n" 9 | "Report-Msgid-Bugs-To: sysstat orange.fr\n" 10 | "POT-Creation-Date: 2010-06-26 09:01+0200\n" 11 | "PO-Revision-Date: 2010-07-07 10:50+0100\n" 12 | "Last-Translator: Rihards Priedītis \n" 13 | "Language-Team: Latvian \n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "X-Generator: Lokalize 1.0\n" 18 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n" 19 | 20 | #: cifsiostat.c:69 iostat.c:79 mpstat.c:86 nfsiostat.c:68 pidstat.c:78 21 | #: sar.c:88 22 | #, c-format 23 | msgid "Usage: %s [ options ] [ [ ] ]\n" 24 | msgstr "Lietošana: %s [izvēles] [ []]\n" 25 | 26 | #: cifsiostat.c:72 nfsiostat.c:71 27 | #, c-format 28 | msgid "" 29 | "Options are:\n" 30 | "[ -h ] [ -k | -m ] [ -t ] [ -V ]\n" 31 | msgstr "" 32 | "Izvēles ir:\n" 33 | "[ -h ] [ -k | -m ] [ -t ] [ -V ]\n" 34 | 35 | #: common.c:57 36 | #, c-format 37 | msgid "sysstat version %s\n" 38 | msgstr "sysstat versija %s\n" 39 | 40 | #: ioconf.c:490 rd_stats.c:69 rd_stats.c:1842 sa_common.c:1052 sadc.c:586 41 | #: sadc.c:595 sadc.c:655 42 | #, c-format 43 | msgid "Cannot open %s: %s\n" 44 | msgstr "Nevar atvērt %s: %s\n" 45 | 46 | #: iostat.c:82 47 | #, c-format 48 | msgid "" 49 | "Options are:\n" 50 | "[ -c ] [ -d ] [ -N ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -z ]\n" 51 | "[ [...] | ALL ] [ -p [ [,...] | ALL ] ] [ --debuginfo ]\n" 52 | msgstr "" 53 | "Izvēles ir:\n" 54 | "[ -c ] [ -d ] [ -N ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -z ]\n" 55 | "[ [...] | ALL ] [ -p [ [,...] | ALL ] ] [ --debuginfo ]\n" 56 | 57 | #: iostat.c:86 58 | #, c-format 59 | msgid "" 60 | "Options are:\n" 61 | "[ -c ] [ -d ] [ -N ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -z ]\n" 62 | "[ [...] | ALL ] [ -p [ [,...] | ALL ] ]\n" 63 | msgstr "" 64 | "Izvēles ir:\n" 65 | "[ -c ] [ -d ] [ -N ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -z ]\n" 66 | "[ [...] | ALL ] [ -p [ [,...] | ALL ] ]\n" 67 | 68 | #: iostat.c:312 69 | #, c-format 70 | msgid "Cannot find disk data\n" 71 | msgstr "Nevar atrast diska datus\n" 72 | 73 | #: mpstat.c:89 74 | #, c-format 75 | msgid "" 76 | "Options are:\n" 77 | "[ -A ] [ -I { SUM | CPU | SCPU | ALL } ] [ -u ] [ -P { [,...] | ALL } ] [ -V ]\n" 78 | msgstr "" 79 | "Izvēles ir:\n" 80 | "[ -A ] [ -I { SUM | CPU | SCPU | ALL } ] [ -u ] [ -P { [,...] | ALL } ] [ -V ]\n" 81 | 82 | #: mpstat.c:530 pidstat.c:1806 sar.c:354 83 | msgid "Average:" 84 | msgstr "Vidēji:" 85 | 86 | #: mpstat.c:873 87 | #, c-format 88 | msgid "Not that many processors!\n" 89 | msgstr "Ne tik daudz procesoru!\n" 90 | 91 | #: pidstat.c:81 92 | #, c-format 93 | msgid "" 94 | "Options are:\n" 95 | "[ -C ] [ -d ] [ -h ] [ -I ] [ -l ] [ -r ] [ -s ]\n" 96 | "[ -t ] [ -u ] [ -V ] [ -w ]\n" 97 | "[ -p { [,...] | SELF | ALL } ] [ -T { TASK | CHILD | ALL } ]\n" 98 | msgstr "" 99 | "Izvēles ir:\n" 100 | "[ -C ] [ -d ] [ -h ] [ -I ] [ -l ] [ -r ] [ -s ]\n" 101 | "[ -t ] [ -u ] [ -V ] [ -w ]\n" 102 | "[ -p { [,...] | SELF | ALL } ] [ -T { TASK | CHILD | ALL } ]\n" 103 | 104 | #: pidstat.c:199 sar.c:972 105 | #, c-format 106 | msgid "Requested activities not available\n" 107 | msgstr "Pieprasītās darbības nav pieejamas\n" 108 | 109 | #: rd_stats.c:1888 110 | #, c-format 111 | msgid "Cannot handle so many processors!\n" 112 | msgstr "Nevar vadīt tik daudz procesoru!\n" 113 | 114 | #: sa_common.c:866 115 | #, c-format 116 | msgid "Error while reading system activity file: %s\n" 117 | msgstr "Kļūda lasot sistēmas aktivitātes failu: %s\n" 118 | 119 | #: sa_common.c:876 120 | #, c-format 121 | msgid "End of system activity file unexpected\n" 122 | msgstr "Negaidītas beigas sistēmas aktivitātes failam\n" 123 | 124 | #: sa_common.c:894 125 | #, c-format 126 | msgid "File created using sar/sadc from sysstat version %d.%d.%d" 127 | msgstr "Fails izveidots izmantojot sar/sadc no sysstat versijas %d.%d.%d" 128 | 129 | #: sa_common.c:925 130 | #, c-format 131 | msgid "Invalid system activity file: %s\n" 132 | msgstr "Nederīgs sistēmas aktivitātes fails: %s\n" 133 | 134 | #: sa_common.c:932 135 | #, c-format 136 | msgid "Current sysstat version can no longer read the format of this file (%#x)\n" 137 | msgstr "Patreizējā sysstat versija nav spējīga lasīt formātu šim failam (%#x)\n" 138 | 139 | #: sa_common.c:1135 140 | #, c-format 141 | msgid "Requested activities not available in file %s\n" 142 | msgstr "Pieprasītās darbības nav pieejamas failā %s\n" 143 | 144 | #: sadc.c:76 145 | #, c-format 146 | msgid "Usage: %s [ options ] [ [ ] ] [ ]\n" 147 | msgstr "Lietošana: %s [ izvēles ] [ [ ] ] [ ]\n" 148 | 149 | #: sadc.c:79 150 | #, c-format 151 | msgid "" 152 | "Options are:\n" 153 | "[ -C ] [ -F ] [ -L ] [ -V ]\n" 154 | "[ -S { INT | DISK | IPV6 | POWER | SNMP | XDISK | ALL | XALL } ]\n" 155 | msgstr "" 156 | "Izvēles ir:\n" 157 | "[ -C ] [ -F ] [ -L ] [ -V ]\n" 158 | "[ -S { INT | DISK | IPV6 | POWER | SNMP | XDISK | ALL | XALL } ]\n" 159 | 160 | #: sadc.c:199 161 | #, c-format 162 | msgid "Cannot write data to system activity file: %s\n" 163 | msgstr "Nevar ierakstīt datus sistēmas aktivitātes failā: %s\n" 164 | 165 | #: sadc.c:473 166 | #, c-format 167 | msgid "Cannot write system activity file header: %s\n" 168 | msgstr "Nevar ierakstīt virsrakstu sistēmas aktivitātes failā: %s\n" 169 | 170 | #: sadc.c:749 171 | #, c-format 172 | msgid "Cannot append data to that file (%s)\n" 173 | msgstr "Nevar apvienot datus sistēmas aktivitātes failā: %s\n" 174 | 175 | #: sadf.c:85 176 | #, c-format 177 | msgid "Usage: %s [ options ] [ [ ] ] [ ]\n" 178 | msgstr "Lietošana: %s [ Izvēles ] [ [ ] ] [ ]\n" 179 | 180 | #: sadf.c:88 181 | #, c-format 182 | msgid "" 183 | "Options are:\n" 184 | "[ -d | -D | -H | -p | -x ] [ -C ] [ -h ] [ -t ] [ -V ]\n" 185 | "[ -P { [,...] | ALL } ] [ -s [ ] ] [ -e [ ] ]\n" 186 | "[ -- ]\n" 187 | msgstr "" 188 | "Izvēles ir:\n" 189 | "[ -d | -D | -H | -p | -x ] [ -C ] [ -h ] [ -t ] [ -V ]\n" 190 | "[ -P { [,...] | ALL } ] [ -s [ ] ] [ -e [ ] ]\n" 191 | "[ -- ]\n" 192 | 193 | #: sadf.c:609 194 | #, c-format 195 | msgid "System activity data file: %s (%#x)\n" 196 | msgstr "Sistēmas aktivitātes datu fails: %s (%#x)\n" 197 | 198 | #: sadf.c:618 199 | #, c-format 200 | msgid "Host: " 201 | msgstr "Resursdators:" 202 | 203 | #: sadf.c:624 204 | #, c-format 205 | msgid "Size of a long int: %d\n" 206 | msgstr "Izmērs lielajam int: %d\n" 207 | 208 | #: sadf.c:626 209 | #, c-format 210 | msgid "List of activities:\n" 211 | msgstr "Darbību saraksts:\n" 212 | 213 | #: sar.c:104 214 | #, c-format 215 | msgid "" 216 | "Options are:\n" 217 | "[ -A ] [ -b ] [ -B ] [ -C ] [ -d ] [ -h ] [ -m ] [ -p ] [ -q ] [ -r ]\n" 218 | "[ -R ] [ -S ] [ -t ] [ -u [ ALL ] ] [ -v ] [ -V ] [ -w ] [ -W ] [ -y ]\n" 219 | "[ -I { [,...] | SUM | ALL | XALL } ] [ -P { [,...] | ALL } ]\n" 220 | "[ -n { [,...] | ALL } ]\n" 221 | "[ -o [ ] | -f [ ] ]\n" 222 | "[ -i ] [ -s [ ] ] [ -e [ ] ]\n" 223 | msgstr "" 224 | "Izvēles ir:\n" 225 | "[ -A ] [ -b ] [ -B ] [ -C ] [ -d ] [ -h ] [ -m ] [ -p ] [ -q ] [ -r ]\n" 226 | "[ -R ] [ -S ] [ -t ] [ -u [ ALL ] ] [ -v ] [ -V ] [ -w ] [ -W ] [ -y ]\n" 227 | "[ -I { [,...] | SUM | ALL | XALL } ] [ -P { [,...] | ALL } ]\n" 228 | "[ -n { [,...] | ALL } ]\n" 229 | "[ -o [ ] | -f [ ] ]\n" 230 | "[ -i ] [ -s [ ] ] [ -e [ ] ]\n" 231 | 232 | #: sar.c:126 233 | #, c-format 234 | msgid "Main options and reports:\n" 235 | msgstr "Galvenās iespējas un ziņojumi:\n" 236 | 237 | #: sar.c:127 238 | #, c-format 239 | msgid "\t-b\tI/O and transfer rate statistics\n" 240 | msgstr "\t-b\tI/O un pārraides ātrums statistika\n" 241 | 242 | #: sar.c:128 243 | #, c-format 244 | msgid "\t-B\tPaging statistics\n" 245 | msgstr "\t-B\tLapošanas statistika\n" 246 | 247 | #: sar.c:129 248 | #, c-format 249 | msgid "\t-d\tBlock device statistics\n" 250 | msgstr "\t-d\tBloku ierīces statistika\n" 251 | 252 | #: sar.c:130 253 | #, c-format 254 | msgid "" 255 | "\t-I { | SUM | ALL | XALL }\n" 256 | "\t\tInterrupts statistics\n" 257 | msgstr "" 258 | "\t-I { | SUM | ALL | XALL }\n" 259 | "\t\tPārtraukumu statistika\n" 260 | 261 | #: sar.c:132 262 | #, c-format 263 | msgid "\t-m\tPower management statistics\n" 264 | msgstr "\t-m\tEnerģijas pārvaldības statistika\n" 265 | 266 | #: sar.c:133 267 | #, c-format 268 | msgid "" 269 | "\t-n { [,...] | ALL }\n" 270 | "\t\tNetwork statistics\n" 271 | "\t\tKeywords are:\n" 272 | "\t\tDEV\tNetwork interfaces\n" 273 | "\t\tEDEV\tNetwork interfaces (errors)\n" 274 | "\t\tNFS\tNFS client\n" 275 | "\t\tNFSD\tNFS server\n" 276 | "\t\tSOCK\tSockets\t(v4)\n" 277 | "\t\tIP\tIP traffic\t(v4)\n" 278 | "\t\tEIP\tIP traffic\t(v4) (errors)\n" 279 | "\t\tICMP\tICMP traffic\t(v4)\n" 280 | "\t\tEICMP\tICMP traffic\t(v4) (errors)\n" 281 | "\t\tTCP\tTCP traffic\t(v4)\n" 282 | "\t\tETCP\tTCP traffic\t(v4) (errors)\n" 283 | "\t\tUDP\tUDP traffic\t(v4)\n" 284 | "\t\tSOCK6\tSockets\t(v6)\n" 285 | "\t\tIP6\tIP traffic\t(v6)\n" 286 | "\t\tEIP6\tIP traffic\t(v6) (errors)\n" 287 | "\t\tICMP6\tICMP traffic\t(v6)\n" 288 | "\t\tEICMP6\tICMP traffic\t(v6) (errors)\n" 289 | "\t\tUDP6\tUDP traffic\t(v6)\n" 290 | msgstr "" 291 | "\t-n { [,...] | ALL }\n" 292 | "\t\tTīkla statistika\n" 293 | "\t\tAtslēgas vārdi ir:\n" 294 | "\t\tDEV\tTīkla interfeisi\n" 295 | "\t\tEDEV\tTīkla interfeisi (kļūdas)\n" 296 | "\t\tNFS\tNFS klienti\n" 297 | "\t\tNFSD\tNFS serveri\n" 298 | "\t\tSOCK\tSoketi\t(v4)\n" 299 | "\t\tIP\tIP plūsma\t(v4)\n" 300 | "\t\tEIP\tIP plūsma\t(v4) (kļūdas)\n" 301 | "\t\tICMP\tICMP plūsma\t(v4)\n" 302 | "\t\tEICMP\tICMP plūsma\t(v4) (kļūdas)\n" 303 | "\t\tTCP\tTCP plūsma\t(v4)\n" 304 | "\t\tETCP\tTCP plūsma\t(v4) (kļūdas)\n" 305 | "\t\tUDP\tUDP plūsma\t(v4)\n" 306 | "\t\tSOCK6\tSoketi\t(v6)\n" 307 | "\t\tIP6\tIP plūsma\t(v6)\n" 308 | "\t\tEIP6\tIP plūsma\t(v6) (kļūdas)\n" 309 | "\t\tICMP6\tICMP plūsma\t(v6)\n" 310 | "\t\tEICMP6\tICMP plūsam\t(v6) (kļūdas)\n" 311 | "\t\tUDP6\tUDP plūsmas\t(v6)\n" 312 | 313 | #: sar.c:154 314 | #, c-format 315 | msgid "\t-q\tQueue length and load average statistics\n" 316 | msgstr "\t-q\tRindas garums un vidējās noslodzes statistika\n" 317 | 318 | #: sar.c:155 319 | #, c-format 320 | msgid "\t-r\tMemory utilization statistics\n" 321 | msgstr "\t-r\tAtmiņas izmantošanas statistika\n" 322 | 323 | #: sar.c:156 324 | #, c-format 325 | msgid "\t-R\tMemory statistics\n" 326 | msgstr "\t-R\tAtmiņas statistika\n" 327 | 328 | #: sar.c:157 329 | #, c-format 330 | msgid "\t-S\tSwap space utilization statistics\n" 331 | msgstr "\t-S\tApmaiņas vietas izmantošanas statistika\n" 332 | 333 | #: sar.c:158 334 | #, c-format 335 | msgid "" 336 | "\t-u [ ALL ]\n" 337 | "\t\tCPU utilization statistics\n" 338 | msgstr "" 339 | "\t-u [ ALL ]\n" 340 | "\t\tCPU izmantošanas statistika\n" 341 | 342 | #: sar.c:160 343 | #, c-format 344 | msgid "\t-v\tKernel table statistics\n" 345 | msgstr "\t-v\tKodola tabulas statistika\n" 346 | 347 | #: sar.c:161 348 | #, c-format 349 | msgid "\t-w\tTask creation and system switching statistics\n" 350 | msgstr "\t-w\tUzdevumu izveidošanas un sistemas pārslēgšanas statistika\n" 351 | 352 | #: sar.c:162 353 | #, c-format 354 | msgid "\t-W\tSwapping statistics\n" 355 | msgstr "\t-W\tApmaiņas statistika\n" 356 | 357 | #: sar.c:163 358 | #, c-format 359 | msgid "\t-y\tTTY device statistics\n" 360 | msgstr "\t-y\tTTY ierīces statistika\n" 361 | 362 | #: sar.c:206 363 | #, c-format 364 | msgid "End of data collecting unexpected\n" 365 | msgstr "Negaidītas datu vākšanas beigas\n" 366 | 367 | #: sar.c:774 368 | #, c-format 369 | msgid "Invalid data format\n" 370 | msgstr "Nederīgs datu formāts\n" 371 | 372 | #: sar.c:778 373 | #, c-format 374 | msgid "Using a wrong data collector from a different sysstat version\n" 375 | msgstr "Tiek izmantots nepareizs datu vācējs, no iepriekšējās sysstat versijas\n" 376 | 377 | #: sar.c:798 378 | #, c-format 379 | msgid "Inconsistent input data\n" 380 | msgstr "Nesaderīgs datu ievads\n" 381 | 382 | #: sar.c:1207 383 | #, c-format 384 | msgid "-f and -o options are mutually exclusive\n" 385 | msgstr "-f un -o iespējas ir savstarpēji izslēdzošas\n" 386 | 387 | #: sar.c:1213 388 | #, c-format 389 | msgid "Not reading from a system activity file (use -f option)\n" 390 | msgstr "Netiek lasīts no sistēmas aktivitātes faila (izmantojies -f iespēju)\n" 391 | 392 | #: sar.c:1314 393 | #, c-format 394 | msgid "Cannot find the data collector (%s)\n" 395 | msgstr "Nevar atrast datu vācēju (%s)\n" 396 | -------------------------------------------------------------------------------- /nls/mt.po: -------------------------------------------------------------------------------- 1 | # Maltese translation for sysstat. 2 | # This file is distributed under the same license as the sysstat package. 3 | # NAME OF AUTHOR , 2008. 4 | msgid "" 5 | msgstr "" 6 | "Project-Id-Version: sysstat-8.1.7\n" 7 | "Report-Msgid-Bugs-To: sysstat orange.fr\n" 8 | "POT-Creation-Date: 2008-11-12 13:38+0100\n" 9 | "PO-Revision-Date: 2008-11-13 20:16+0100\n" 10 | "Last-Translator: Michel Bugeja \n" 11 | "Language-Team: Maltese \n" 12 | "MIME-Version: 1.0\n" 13 | "Content-Type: text/plain; charset=UTF-8\n" 14 | "Content-Transfer-Encoding: 8bit\n" 15 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 16 | "X-Poedit-Language: Maltese\n" 17 | "X-Poedit-Country: Malta\n" 18 | "X-Poedit-SourceCharset: UTF-8\n" 19 | 20 | #: common.c:57 21 | #, c-format 22 | msgid "sysstat version %s\n" 23 | msgstr "sysstat Verżjoni %s\n" 24 | 25 | #: ioconf.c:479 iostat.c:509 rd_stats.c:69 rd_stats.c:1791 rd_stats.c:1898 26 | #: sa_common.c:1033 sadc.c:498 sadc.c:507 sadc.c:567 27 | #, c-format 28 | msgid "Cannot open %s: %s\n" 29 | msgstr "Ma nistax niftaħ %s: %s\n" 30 | 31 | #: iostat.c:80 mpstat.c:83 pidstat.c:77 sar.c:88 32 | #, c-format 33 | msgid "Usage: %s [ options ] [ [ ] ]\n" 34 | msgstr "Użu: %s [ opzjonijiet ] [ [ ] ]\n" 35 | 36 | #: iostat.c:83 37 | #, c-format 38 | msgid "" 39 | "Options are:\n" 40 | "[ -c ] [ -d ] [ -N ] [ -n ] [ -h ] [ -k | -m ] [ -t ] [ -V ] [ -x ]\n" 41 | "[ [ ... ] | ALL ] [ -p [ | ALL ] ]\n" 42 | msgstr "" 43 | "Opzjonijiet:\n" 44 | "[ -c ] [ -d ] [ -N ] [ -n ] [ -h ] [ -k | -m ] [ -t ] [ -V ] [ -x ]\n" 45 | "[ [ ... ] | ALL ] [ -p [ | ALL ] ]\n" 46 | 47 | #: iostat.c:1692 48 | #, c-format 49 | msgid "-x and -p options are mutually exclusive\n" 50 | msgstr "opzjonijiet -x u -p huma eskulissivi għal xulxin\n" 51 | 52 | #: mpstat.c:86 53 | #, c-format 54 | msgid "" 55 | "Options are:\n" 56 | "[ -A ] [ -I { SUM | CPU | ALL } ] [ -u ] [ -P { | ALL } ] [ -V ]\n" 57 | msgstr "" 58 | "Opzjonijiet:\n" 59 | "[ -A ] [ -I { SUM | CPU | ALL } ] [ -u ] [ -P { | ALL } ] [ -V ]\n" 60 | 61 | #: mpstat.c:433 pidstat.c:1681 sar.c:333 62 | msgid "Average:" 63 | msgstr "Medja:" 64 | 65 | #: mpstat.c:742 66 | #, c-format 67 | msgid "Not that many processors!\n" 68 | msgstr "Mhux daqstant processors!\n" 69 | 70 | #: pidstat.c:80 71 | #, c-format 72 | msgid "" 73 | "Options are:\n" 74 | "[ -C ] [ -d ] [ -h ] [ -I ] [ -l ] [ -r ] [ -t ] [ -u ] [ -V ] [ -w ]\n" 75 | "[ -p { | SELF | ALL } ] [ -T { TASK | CHILD | ALL } ]\n" 76 | msgstr "" 77 | "Opzjonijiet:\n" 78 | "[ -C ] [ -d ] [ -h ] [ -I ] [ -l ] [ -r ] [ -t ] [ -u ] [ -V ] [ -w ]\n" 79 | "[ -p { | SELF | ALL } ] [ -T { TASK | CHILD | ALL } ]\n" 80 | 81 | #: pidstat.c:197 sar.c:943 82 | #, c-format 83 | msgid "Requested activities not available\n" 84 | msgstr "L-attivita' rikjesti mhux disponibbli\n" 85 | 86 | #: rd_stats.c:1944 87 | #, c-format 88 | msgid "Cannot handle so many processors!\n" 89 | msgstr "Ma nistax inlaħħaq ma dawn il-processors kollha!\n" 90 | 91 | #: sa_common.c:847 92 | #, c-format 93 | msgid "Error while reading system activity file: %s\n" 94 | msgstr "Problema waqt il-qari tal-fajl tal-attivita' tas-sistema: %s\n" 95 | 96 | #: sa_common.c:857 97 | #, c-format 98 | msgid "End of system activity file unexpected\n" 99 | msgstr "Tmiem tal-fajl tal-attivita' tas-sistema bla mistenni\n" 100 | 101 | #: sa_common.c:875 102 | #, c-format 103 | msgid "File created using sar/sadc from sysstat version %d.%d.%d" 104 | msgstr "Fajl maħluq minn sar/sadc minn sysstat verżjoni %d.%d.%d" 105 | 106 | #: sa_common.c:906 107 | #, c-format 108 | msgid "Invalid system activity file: %s\n" 109 | msgstr "Fajl tal-attivita' tas-sistema mhux validu: %s\n" 110 | 111 | #: sa_common.c:913 112 | #, c-format 113 | msgid "Current sysstat version can no longer read the format of this file (%#x)\n" 114 | msgstr "Il-verżjoni kurrenti ta' sysstat mhux kapaċi taqra aktar format ta' dan il-fajl (%#x)\n" 115 | 116 | #: sa_common.c:1116 117 | #, c-format 118 | msgid "Requested activities not available in file %s\n" 119 | msgstr "Attivitajiet rikjesti mhux disponibbil fil-fajl %s\n" 120 | 121 | #: sadc.c:78 122 | #, c-format 123 | msgid "Usage: %s [ options ] [ [ ] ] [ ]\n" 124 | msgstr "Użu: %s [ opzjonijiet ] [ [ ] ] [ ]\n" 125 | 126 | #: sadc.c:81 127 | #, c-format 128 | msgid "" 129 | "Options are:\n" 130 | "[ -C ] [ -S { INT | DISK | SNMP | ALL } ] [ -F ] [ -L ] [ -V ]\n" 131 | msgstr "" 132 | "Opzjonijiet:\n" 133 | "[ -C ] [ -S { INT | DISK | SNMP | ALL } ] [ -F ] [ -L ] [ -V ]\n" 134 | 135 | #: sadc.c:107 136 | #, c-format 137 | msgid "Cannot write data to system activity file: %s\n" 138 | msgstr "Ma nistax nikteb data fil-fajl tal-attivita' tas-sistema: %s\n" 139 | 140 | #: sadc.c:385 141 | #, c-format 142 | msgid "Cannot write system activity file header: %s\n" 143 | msgstr "Ma nistax nikteb it-titlu fir-ras tal-fajl tal-attivita' tas-sistema: %s\n" 144 | 145 | #: sadc.c:661 146 | #, c-format 147 | msgid "Cannot append data to that file (%s)\n" 148 | msgstr "Ma nistax inżid data ġo dak il-fajl (%s)\n" 149 | 150 | #: sadf.c:85 151 | #, c-format 152 | msgid "Usage: %s [ options ] [ [ ] ] [ ]\n" 153 | msgstr "Użu: %s [ opzjonijiet ] [ [ ] ] [ ]\n" 154 | 155 | #: sadf.c:88 156 | #, c-format 157 | msgid "" 158 | "Options are:\n" 159 | "[ -d | -D | -H | -p | -x ] [ -h ] [ -t ] [ -V ]\n" 160 | "[ -P { | ALL } ] [ -s [ ] ] [ -e [ ] ]\n" 161 | "[ -- ]\n" 162 | msgstr "" 163 | "Opzjonijiet:\n" 164 | "[ -d | -D | -H | -p | -x ] [ -h ] [ -t ] [ -V ]\n" 165 | "[ -P { | ALL } ] [ -s [ ] ] [ -e [ ] ]\n" 166 | "[ -- ]\n" 167 | 168 | #: sadf.c:527 169 | #, c-format 170 | msgid "System activity data file: %s (%#x)\n" 171 | msgstr "Fajl tad-data tal-attivita' tas-sistema: %s (%#x)\n" 172 | 173 | #: sadf.c:536 174 | #, c-format 175 | msgid "Host: " 176 | msgstr "Host: " 177 | 178 | #: sadf.c:542 179 | #, c-format 180 | msgid "Size of a long int: %d\n" 181 | msgstr "Qis ta' long int: %d\n" 182 | 183 | #: sadf.c:544 184 | #, c-format 185 | msgid "List of activities:\n" 186 | msgstr "Lista ta' attivita':\n" 187 | 188 | #: sar.c:104 189 | #, c-format 190 | msgid "" 191 | "Options are:\n" 192 | "[ -A ] [ -b ] [ -B ] [ -C ] [ -d ] [ -h ] [ -p ] [ -q ] [ -r ] [ -R ]\n" 193 | "[ -S ] [ -t ] [ -u [ ALL ] ] [ -v ] [ -V ] [ -w ] [ -W ] [ -y ]\n" 194 | "[ -I { | SUM | ALL | XALL } ] [ -P { | ALL } ]\n" 195 | "[ -n { DEV | EDEV | NFS | NFSD | SOCK | IP | EIP | ICMP | EICMP | TCP | ETCP | UDP | ALL } ]\n" 196 | "[ -o [ ] | -f [ ] ]\n" 197 | "[ -i ] [ -s [ ] ] [ -e [ ] ]\n" 198 | msgstr "" 199 | "Opzjonijiet:\n" 200 | "[ -A ] [ -b ] [ -B ] [ -C ] [ -d ] [ -h ] [ -p ] [ -q ] [ -r ] [ -R ]\n" 201 | "[ -S ] [ -t ] [ -u [ ALL ] ] [ -v ] [ -V ] [ -w ] [ -W ] [ -y ]\n" 202 | "[ -I { | SUM | ALL | XALL } ] [ -P { | ALL } ]\n" 203 | "[ -n { DEV | EDEV | NFS | NFSD | SOCK | IP | EIP | ICMP | EICMP | TCP | ETCP | UDP | ALL } ]\n" 204 | "[ -o [ ] | -f [ ] ]\n" 205 | "[ -i ] [ -s [ ] ] [ -e [ ] ]\n" 206 | 207 | #: sar.c:126 208 | #, c-format 209 | msgid "" 210 | "\n" 211 | "Main options and reports:\n" 212 | msgstr "" 213 | "\n" 214 | "Opzjonijiet prinċipali u rapporti:\n" 215 | 216 | #: sar.c:127 217 | #, c-format 218 | msgid "\t-b\tI/O and transfer rate statistics\n" 219 | msgstr "\t-b\tStatistika fuq I/O u rata ta' transferiment\n" 220 | 221 | #: sar.c:128 222 | #, c-format 223 | msgid "\t-B\tPaging statistics\n" 224 | msgstr "\t-B\tStatistika fuq Paging\n" 225 | 226 | #: sar.c:129 227 | #, c-format 228 | msgid "\t-d\tBlock device statistics\n" 229 | msgstr "\t-d\tStatistika fuq block device\n" 230 | 231 | #: sar.c:130 232 | #, c-format 233 | msgid "" 234 | "\t-I { | SUM | ALL | XALL }\n" 235 | "\t\tInterrupts statistics\n" 236 | msgstr "" 237 | "\t-I { | SUM | ALL | XALL }\n" 238 | "\t\tStatistika fuq Interrupts\n" 239 | 240 | #: sar.c:132 241 | #, c-format 242 | msgid "" 243 | "\t-n { DEV | EDEV | NFS | NFSD | SOCK |\n" 244 | "\t IP | EIP | ICMP | EICMP | TCP | ETCP | UDP | ALL }\n" 245 | "\t\tNetwork statistics\n" 246 | msgstr "" 247 | "\t-n { DEV | EDEV | NFS | NFSD | SOCK |\n" 248 | "\t IP | EIP | ICMP | EICMP | TCP | ETCP | UDP | ALL }\n" 249 | "\t\tStatistika fuq Network\n" 250 | 251 | #: sar.c:135 252 | #, c-format 253 | msgid "\t-q\tQueue length and load average statistics\n" 254 | msgstr "\t-q\tStatistika fuq Queue length and load average\n" 255 | 256 | #: sar.c:136 257 | #, c-format 258 | msgid "\t-r\tMemory utilization statistics\n" 259 | msgstr "\t-r\tStatistika fuq użu tal-memorja\n" 260 | 261 | #: sar.c:137 262 | #, c-format 263 | msgid "\t-R\tMemory statistics\n" 264 | msgstr "\t-R\tStatistika fuq Memorja\n" 265 | 266 | #: sar.c:138 267 | #, c-format 268 | msgid "\t-S\tSwap space utilization statistics\n" 269 | msgstr "\t-S\tStatistika fuq użu ta' Swap space\n" 270 | 271 | #: sar.c:139 272 | #, c-format 273 | msgid "" 274 | "\t-u [ ALL ]\n" 275 | "\t\tCPU utilization statistics\n" 276 | msgstr "" 277 | "\t-u [ ALL ]\n" 278 | "\t\tStatistika fuq użu ta' CPU\n" 279 | 280 | #: sar.c:141 281 | #, c-format 282 | msgid "\t-v\tKernel table statistics\n" 283 | msgstr "\t-v\tStatistika fuq Kernel table\n" 284 | 285 | #: sar.c:142 286 | #, c-format 287 | msgid "\t-w\tTask creation and system switching statistics\n" 288 | msgstr "\t-w\tStatistika fuq Task creation and system switching\n" 289 | 290 | #: sar.c:143 291 | #, c-format 292 | msgid "\t-W\tSwapping statistics\n" 293 | msgstr "\t-W\tStatistika fuq swapping\n" 294 | 295 | #: sar.c:144 296 | #, c-format 297 | msgid "\t-y\tTTY device statistics\n" 298 | msgstr "\t-y\tStatistika fuq apparat TTY\n" 299 | 300 | #: sar.c:189 301 | #, c-format 302 | msgid "End of data collecting unexpected\n" 303 | msgstr "Tmiem ta' ġbir tad-data bla mistenni\n" 304 | 305 | #: sar.c:749 306 | #, c-format 307 | msgid "Invalid data format\n" 308 | msgstr "Format tad-data huwa nvalidu\n" 309 | 310 | #: sar.c:753 311 | #, c-format 312 | msgid "Using a wrong data collector from a different sysstat version\n" 313 | msgstr "Nuża data collector ħażin minn verżjoni differenti ta' sysstat\n" 314 | 315 | #: sar.c:773 316 | #, c-format 317 | msgid "Inconsistent input data\n" 318 | msgstr "Data mdaħħla mijhiex konsistenti\n" 319 | 320 | #: sar.c:1178 321 | #, c-format 322 | msgid "-f and -o options are mutually exclusive\n" 323 | msgstr "Opzjoni -f and -o huma esklussivi fil-konfront ta' xulxin\n" 324 | 325 | #: sar.c:1184 326 | #, c-format 327 | msgid "Not reading from a system activity file (use -f option)\n" 328 | msgstr "Mhux naqra minn fajl ta' attivita tas-sistema (uża opzjoni -f)\n" 329 | 330 | #: sar.c:1285 331 | #, c-format 332 | msgid "Cannot find the data collector (%s)\n" 333 | msgstr "Ma nistax insib id-data collector (%s)\n" 334 | -------------------------------------------------------------------------------- /nls/nb.po: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jahrome/sysstat-android/dfab1951b42ca6ad991d6d9e792df48b419d8869/nls/nb.po -------------------------------------------------------------------------------- /nls/nn.po: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jahrome/sysstat-android/dfab1951b42ca6ad991d6d9e792df48b419d8869/nls/nn.po -------------------------------------------------------------------------------- /nls/pt.po: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jahrome/sysstat-android/dfab1951b42ca6ad991d6d9e792df48b419d8869/nls/pt.po -------------------------------------------------------------------------------- /nls/ro.po: -------------------------------------------------------------------------------- 1 | # NLS support for the sysstat package. 2 | # Copyright (C) 2003 Free Software Foundation, Inc. 3 | # Eugen Hoanca , 2003. 4 | # 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: sysstat 4.1.2\n" 8 | "Report-Msgid-Bugs-To: sysstat orange.fr\n" 9 | "POT-Creation-Date: 2007-12-19 14:02+0100\n" 10 | "PO-Revision-Date: 2003-03-12 10:21+0200\n" 11 | "Last-Translator: Eugen Hoanca \n" 12 | "Language-Team: Romanian\n" 13 | "MIME-Version: 1.0\n" 14 | "Content-Type: text/plain; charset=ISO-8859-2\n" 15 | "Content-Transfer-Encoding: 8bit\n" 16 | 17 | #: common.c:57 18 | #, c-format 19 | msgid "sysstat version %s\n" 20 | msgstr "sysstat versiunea %s\n" 21 | 22 | #: common.c:160 common.c:385 ioconf.c:459 mpstat.c:265 sa_common.c:601 23 | #: sadc.c:476 sadc.c:485 sadc.c:530 sadc.c:620 24 | #, c-format 25 | msgid "Cannot open %s: %s\n" 26 | msgstr "Nu se poate deschide %s: %s\n" 27 | 28 | #: common.c:199 29 | #, c-format 30 | msgid "Cannot handle so many processors!\n" 31 | msgstr "Numar prea mare de procesoare!\n" 32 | 33 | #: iostat.c:74 34 | #, c-format 35 | msgid "" 36 | "Usage: %s [ options... ] [ [ ] ]\n" 37 | "Options are:\n" 38 | "[ -c ] [ -d ] [ -N ] [ -n ] [ -k | -m ] [ -t ] [ -V ] [ -x ]\n" 39 | "[ [ ... ] | ALL ] [ -p [ | ALL ] ]\n" 40 | msgstr "" 41 | "Utilizare: %s [ optiuni... ] [ [ ] ]\n" 42 | "Optiuni disponibile:\n" 43 | "[ -c ] [ -d ] [ -N ] [ -n ] [ -k | -m ] [ -t ] [ -V ] [ -x ]\n" 44 | "[ [ ... ] | ALL ] [ -p [ | ALL ] ]\n" 45 | 46 | #: iostat.c:1119 47 | #, c-format 48 | msgid "Time: %s\n" 49 | msgstr "Ora: %s\n" 50 | 51 | #: iostat.c:1435 52 | #, c-format 53 | msgid "-x and -p options are mutually exclusive\n" 54 | msgstr "Optiunile -x si -p se exclud reciproc\n" 55 | 56 | #: mpstat.c:66 57 | #, c-format 58 | msgid "" 59 | "Usage: %s [ options... ] [ [ ] ]\n" 60 | "Options are:\n" 61 | "[ -P { | ALL } ] [ -V ]\n" 62 | msgstr "" 63 | "Utilizare: %s [ optiuni... ] [ [ ] ]\n" 64 | "Optiuni disponibile:\n" 65 | "[ -P { | ALL } ] [ -V ]\n" 66 | 67 | # sar.c: 68 | #: mpstat.c:226 pidstat.c:1148 sar.c:740 69 | msgid "Average:" 70 | msgstr "Media:" 71 | 72 | #: mpstat.c:563 sar.c:157 73 | #, c-format 74 | msgid "Not that many processors!\n" 75 | msgstr "Prea multe procesoare specificate!\n" 76 | 77 | #: pidstat.c:72 78 | #, c-format 79 | msgid "" 80 | "Usage: %s [ options... ] [ [ ] ]\n" 81 | "Options are:\n" 82 | "[ -C ] [ -d ] [ -I ] [ -r ] [ -t ] [ -u ] [ -V ] [ -w ]\n" 83 | "[ -p { | SELF | ALL } ] [ -T { TASK | CHILD | ALL } ]\n" 84 | msgstr "" 85 | "Utilizare: %s [ optiuni... ] [ [ ] ]\n" 86 | "Optiuni disponibile:\n" 87 | "[ -C ] [ -d ] [ -I ] [ -r ] [ -t ] [ -u ] [ -V ] [ -w ]\n" 88 | "[ -p { | SELF | ALL } ] [ -T { TASK | CHILD | ALL } ]\n" 89 | 90 | #: pidstat.c:166 sar.c:1419 91 | #, c-format 92 | msgid "Requested activities not available\n" 93 | msgstr "Statistica solicitata nu este disponibila\n" 94 | 95 | #: sa_common.c:572 96 | #, c-format 97 | msgid "Error while reading system activity file: %s\n" 98 | msgstr "A aparut o eroare la citirea fisierului de activitate al sistemului: %s\n" 99 | 100 | #: sa_common.c:581 101 | #, c-format 102 | msgid "End of system activity file unexpected\n" 103 | msgstr "Sfarsit neasteptat al fisierului de activitate al sistemului\n" 104 | 105 | #: sa_common.c:608 sadc.c:549 106 | #, c-format 107 | msgid "Invalid system activity file: %s (%#x)\n" 108 | msgstr "Fisier de activitate a sistemului invalid: %s (%#x)\n" 109 | 110 | #: sa_common.c:632 111 | #, c-format 112 | msgid "Requested activities not available in file\n" 113 | msgstr "Activitatile solicitate nu se regasesc in fisier\n" 114 | 115 | #: sadc.c:83 116 | #, c-format 117 | msgid "" 118 | "Usage: %s [ options... ] [ [ ] ] [ ]\n" 119 | "Options are:\n" 120 | "[ -C ] [ -d ] [ -F ] [ -I ] [ -V ]\n" 121 | msgstr "" 122 | "Utilizare: %s [ optiuni... ] [ [ ] ] [ ]\n" 123 | "Optiuni disponibile:\n" 124 | "[ -C ] [ -d ] [ -F ] [ -I ] [ -V ]\n" 125 | 126 | #: sadc.c:110 127 | #, c-format 128 | msgid "Cannot write data to system activity file: %s\n" 129 | msgstr "Nu se poate scrie in fisierul de activitate sistem: %s\n" 130 | 131 | #: sadc.c:361 132 | #, c-format 133 | msgid "Cannot write system activity file header: %s\n" 134 | msgstr "Nu se poate scrie headerul fisierului de activitate sistem: %s\n" 135 | 136 | #: sadc.c:568 137 | #, c-format 138 | msgid "Cannot append data to that file\n" 139 | msgstr "Nu se pot adauga date in acel fisier\n" 140 | 141 | #: sadf.c:78 142 | #, c-format 143 | msgid "" 144 | "Usage: %s [ options... ] [ [ ] ] [ ]\n" 145 | "Options are:\n" 146 | "[ -d | -D | -H | -p | -x ] [ -t ] [ -V ]\n" 147 | "[ -P { | ALL } ] [ -s [ ] ] [ -e [ ] ]\n" 148 | "[ -- ]\n" 149 | msgstr "" 150 | "Utilizare: %s [ optiuni... ] [ [ ] ] [ ]\n" 151 | "Optiuni disponibile:\n" 152 | "[ -d | -D | -H | -p | -x ] [ -t ] [ -V ]\n" 153 | "[ -P { | ALL } ] [ -s [ ] ] [ -e [ ] ]\n" 154 | "[ -- ]\n" 155 | 156 | #: sar.c:76 157 | #, c-format 158 | msgid "" 159 | "Usage: %s [ options... ] [ [ ] ]\n" 160 | "Options are:\n" 161 | "[ -A ] [ -b ] [ -B ] [ -c ] [ -C ] [ -d ] [ -i ] [ -p ] [ -q ]\n" 162 | "[ -r ] [ -R ] [ -t ] [ -u ] [ -v ] [ -V ] [ -w ] [ -W ] [ -y ]\n" 163 | "[ -I { | SUM | ALL | XALL } ] [ -P { | ALL } ]\n" 164 | "[ -n { DEV | EDEV | NFS | NFSD | SOCK | ALL } ]\n" 165 | "[ -o [ ] | -f [ ] ]\n" 166 | "[ -s [ ] ] [ -e [ ] ]\n" 167 | msgstr "" 168 | "Utilizare: %s [ optiuni... ] [ [ ] ]\n" 169 | "Optiuni disponibile:\n" 170 | "[ -A ] [ -b ] [ -B ] [ -c ] [ -C ] [ -d ] [ -i ] [ -p ] [ -q ]\n" 171 | "[ -r ] [ -R ] [ -t ] [ -u ] [ -v ] [ -V ] [ -w ] [ -W ] [ -y ]\n" 172 | "[ -I { | SUM | ALL | XALL } ] [ -P { | ALL } ]\n" 173 | "[ -n { DEV | EDEV | NFS | NFSD | SOCK | ALL } ]\n" 174 | "[ -o [ ] | -f [ ] ]\n" 175 | "[ -s [ ] ] [ -e [ ] ]\n" 176 | 177 | #: sar.c:149 178 | #, c-format 179 | msgid "Not an SMP machine...\n" 180 | msgstr "Nu este sistem multiprocesor...\n" 181 | 182 | #: sar.c:1261 183 | #, c-format 184 | msgid "Invalid data format\n" 185 | msgstr "Format invalid de data\n" 186 | 187 | #: sar.c:1633 188 | #, c-format 189 | msgid "-f and -o options are mutually exclusive\n" 190 | msgstr "Optiunile -f si -o se exclud reciproc\n" 191 | 192 | #: sar.c:1639 193 | #, c-format 194 | msgid "Not reading from a system activity file (use -f option)\n" 195 | msgstr "Nu se citeste dintr-un fisier activitate sistem (utilizati -f)\n" 196 | -------------------------------------------------------------------------------- /nls/sv.po: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jahrome/sysstat-android/dfab1951b42ca6ad991d6d9e792df48b419d8869/nls/sv.po -------------------------------------------------------------------------------- /nls/sysstat.pot: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PACKAGE VERSION\n" 10 | "Report-Msgid-Bugs-To: sysstat orange.fr\n" 11 | "POT-Creation-Date: 2011-03-13 20:39+0100\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=CHARSET\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | 19 | #: cifsiostat.c:69 iostat.c:80 mpstat.c:86 nfsiostat.c:68 pidstat.c:78 20 | #: sar.c:90 21 | #, c-format 22 | msgid "Usage: %s [ options ] [ [ ] ]\n" 23 | msgstr "" 24 | 25 | #: cifsiostat.c:73 nfsiostat.c:72 26 | #, c-format 27 | msgid "" 28 | "Options are:\n" 29 | "[ --debuginfo ] [ -h ] [ -k | -m ] [ -t ] [ -V ]\n" 30 | msgstr "" 31 | 32 | #: cifsiostat.c:76 nfsiostat.c:75 33 | #, c-format 34 | msgid "" 35 | "Options are:\n" 36 | "[ -h ] [ -k | -m ] [ -t ] [ -V ]\n" 37 | msgstr "" 38 | 39 | #: common.c:57 40 | #, c-format 41 | msgid "sysstat version %s\n" 42 | msgstr "" 43 | 44 | #: ioconf.c:490 rd_stats.c:68 rd_stats.c:2003 sa_common.c:1061 sadc.c:623 45 | #: sadc.c:632 sadc.c:692 46 | #, c-format 47 | msgid "Cannot open %s: %s\n" 48 | msgstr "" 49 | 50 | #: iostat.c:83 51 | #, c-format 52 | msgid "" 53 | "Options are:\n" 54 | "[ -c ] [ -d ] [ -N ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -z ]\n" 55 | "[ [...] | ALL ] [ -p [ [,...] | ALL ] ] [ --debuginfo ]\n" 56 | msgstr "" 57 | 58 | #: iostat.c:87 59 | #, c-format 60 | msgid "" 61 | "Options are:\n" 62 | "[ -c ] [ -d ] [ -N ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -z ]\n" 63 | "[ [...] | ALL ] [ -p [ [,...] | ALL ] ]\n" 64 | msgstr "" 65 | 66 | #: iostat.c:313 67 | #, c-format 68 | msgid "Cannot find disk data\n" 69 | msgstr "" 70 | 71 | #: mpstat.c:89 72 | #, c-format 73 | msgid "" 74 | "Options are:\n" 75 | "[ -A ] [ -I { SUM | CPU | SCPU | ALL } ] [ -u ] [ -P { [,...] | " 76 | "ALL } ] [ -V ]\n" 77 | msgstr "" 78 | 79 | #: mpstat.c:535 pidstat.c:1819 sar.c:380 80 | msgid "Average:" 81 | msgstr "" 82 | 83 | #: mpstat.c:878 84 | #, c-format 85 | msgid "Not that many processors!\n" 86 | msgstr "" 87 | 88 | #: pidstat.c:81 89 | #, c-format 90 | msgid "" 91 | "Options are:\n" 92 | "[ -C ] [ -d ] [ -h ] [ -I ] [ -l ] [ -r ] [ -s ]\n" 93 | "[ -t ] [ -u ] [ -V ] [ -w ]\n" 94 | "[ -p { [,...] | SELF | ALL } ] [ -T { TASK | CHILD | ALL } ]\n" 95 | msgstr "" 96 | 97 | #: pidstat.c:199 sar.c:1015 98 | #, c-format 99 | msgid "Requested activities not available\n" 100 | msgstr "" 101 | 102 | #: rd_stats.c:2049 103 | #, c-format 104 | msgid "Cannot handle so many processors!\n" 105 | msgstr "" 106 | 107 | #: sa_common.c:870 108 | #, c-format 109 | msgid "Error while reading system activity file: %s\n" 110 | msgstr "" 111 | 112 | #: sa_common.c:880 113 | #, c-format 114 | msgid "End of system activity file unexpected\n" 115 | msgstr "" 116 | 117 | #: sa_common.c:898 118 | #, c-format 119 | msgid "File created using sar/sadc from sysstat version %d.%d.%d" 120 | msgstr "" 121 | 122 | #: sa_common.c:929 123 | #, c-format 124 | msgid "Invalid system activity file: %s\n" 125 | msgstr "" 126 | 127 | #: sa_common.c:936 128 | #, c-format 129 | msgid "" 130 | "Current sysstat version can no longer read the format of this file (%#x)\n" 131 | msgstr "" 132 | 133 | #: sa_common.c:1168 134 | #, c-format 135 | msgid "Requested activities not available in file %s\n" 136 | msgstr "" 137 | 138 | #: sadc.c:81 139 | #, c-format 140 | msgid "Usage: %s [ options ] [ [ ] ] [ ]\n" 141 | msgstr "" 142 | 143 | #: sadc.c:84 144 | #, c-format 145 | msgid "" 146 | "Options are:\n" 147 | "[ -C ] [ -F ] [ -L ] [ -V ]\n" 148 | "[ -S { INT | DISK | IPV6 | POWER | SNMP | XDISK | ALL | XALL } ]\n" 149 | msgstr "" 150 | 151 | #: sadc.c:223 152 | #, c-format 153 | msgid "Cannot write data to system activity file: %s\n" 154 | msgstr "" 155 | 156 | #: sadc.c:510 157 | #, c-format 158 | msgid "Cannot write system activity file header: %s\n" 159 | msgstr "" 160 | 161 | #: sadc.c:791 162 | #, c-format 163 | msgid "Cannot append data to that file (%s)\n" 164 | msgstr "" 165 | 166 | #: sadf.c:87 167 | #, c-format 168 | msgid "Usage: %s [ options ] [ [ ] ] [ ]\n" 169 | msgstr "" 170 | 171 | #: sadf.c:90 172 | #, c-format 173 | msgid "" 174 | "Options are:\n" 175 | "[ -d | -D | -H | -p | -x ] [ -C ] [ -h ] [ -t ] [ -V ]\n" 176 | "[ -P { [,...] | ALL } ] [ -s [ ] ] [ -e [ ] ]\n" 177 | "[ -- ]\n" 178 | msgstr "" 179 | 180 | #: sadf.c:614 181 | #, c-format 182 | msgid "System activity data file: %s (%#x)\n" 183 | msgstr "" 184 | 185 | #: sadf.c:623 186 | #, c-format 187 | msgid "Host: " 188 | msgstr "" 189 | 190 | #: sadf.c:629 191 | #, c-format 192 | msgid "Size of a long int: %d\n" 193 | msgstr "" 194 | 195 | #: sadf.c:631 196 | #, c-format 197 | msgid "List of activities:\n" 198 | msgstr "" 199 | 200 | #: sadf.c:643 201 | #, c-format 202 | msgid "\t[Unknown activity format]" 203 | msgstr "" 204 | 205 | #: sar.c:105 206 | #, c-format 207 | msgid "" 208 | "Options are:\n" 209 | "[ -A ] [ -b ] [ -B ] [ -C ] [ -d ] [ -h ] [ -H ] [ -p ] [ -q ] [ -r ]\n" 210 | "[ -R ] [ -S ] [ -t ] [ -u [ ALL ] ] [ -v ] [ -V ] [ -w ] [ -W ] [ -y ]\n" 211 | "[ -I { [,...] | SUM | ALL | XALL } ] [ -P { [,...] | ALL } ]\n" 212 | "[ -m { [,...] | ALL } ] [ -n { [,...] | ALL } ]\n" 213 | "[ -o [ ] | -f [ ] ]\n" 214 | "[ -i ] [ -s [ ] ] [ -e [ ] ]\n" 215 | msgstr "" 216 | 217 | #: sar.c:126 218 | #, c-format 219 | msgid "Main options and reports:\n" 220 | msgstr "" 221 | 222 | #: sar.c:127 223 | #, c-format 224 | msgid "\t-b\tI/O and transfer rate statistics\n" 225 | msgstr "" 226 | 227 | #: sar.c:128 228 | #, c-format 229 | msgid "\t-B\tPaging statistics\n" 230 | msgstr "" 231 | 232 | #: sar.c:129 233 | #, c-format 234 | msgid "\t-d\tBlock device statistics\n" 235 | msgstr "" 236 | 237 | #: sar.c:130 238 | #, c-format 239 | msgid "\t-H\tHugepages utilization statistics\n" 240 | msgstr "" 241 | 242 | #: sar.c:131 243 | #, c-format 244 | msgid "" 245 | "\t-I { | SUM | ALL | XALL }\n" 246 | "\t\tInterrupts statistics\n" 247 | msgstr "" 248 | 249 | #: sar.c:133 250 | #, c-format 251 | msgid "" 252 | "\t-m { [,...] | ALL }\n" 253 | "\t\tPower management statistics\n" 254 | "\t\tKeywords are:\n" 255 | "\t\tCPU\tCPU instantaneous clock frequency\n" 256 | "\t\tFAN\tFans speed\n" 257 | "\t\tFREQ\tCPU average clock frequency\n" 258 | "\t\tIN\tVoltage inputs\n" 259 | "\t\tTEMP\tDevices temperature\n" 260 | msgstr "" 261 | 262 | #: sar.c:141 263 | #, c-format 264 | msgid "" 265 | "\t-n { [,...] | ALL }\n" 266 | "\t\tNetwork statistics\n" 267 | "\t\tKeywords are:\n" 268 | "\t\tDEV\tNetwork interfaces\n" 269 | "\t\tEDEV\tNetwork interfaces (errors)\n" 270 | "\t\tNFS\tNFS client\n" 271 | "\t\tNFSD\tNFS server\n" 272 | "\t\tSOCK\tSockets\t(v4)\n" 273 | "\t\tIP\tIP traffic\t(v4)\n" 274 | "\t\tEIP\tIP traffic\t(v4) (errors)\n" 275 | "\t\tICMP\tICMP traffic\t(v4)\n" 276 | "\t\tEICMP\tICMP traffic\t(v4) (errors)\n" 277 | "\t\tTCP\tTCP traffic\t(v4)\n" 278 | "\t\tETCP\tTCP traffic\t(v4) (errors)\n" 279 | "\t\tUDP\tUDP traffic\t(v4)\n" 280 | "\t\tSOCK6\tSockets\t(v6)\n" 281 | "\t\tIP6\tIP traffic\t(v6)\n" 282 | "\t\tEIP6\tIP traffic\t(v6) (errors)\n" 283 | "\t\tICMP6\tICMP traffic\t(v6)\n" 284 | "\t\tEICMP6\tICMP traffic\t(v6) (errors)\n" 285 | "\t\tUDP6\tUDP traffic\t(v6)\n" 286 | msgstr "" 287 | 288 | #: sar.c:162 289 | #, c-format 290 | msgid "\t-q\tQueue length and load average statistics\n" 291 | msgstr "" 292 | 293 | #: sar.c:163 294 | #, c-format 295 | msgid "\t-r\tMemory utilization statistics\n" 296 | msgstr "" 297 | 298 | #: sar.c:164 299 | #, c-format 300 | msgid "\t-R\tMemory statistics\n" 301 | msgstr "" 302 | 303 | #: sar.c:165 304 | #, c-format 305 | msgid "\t-S\tSwap space utilization statistics\n" 306 | msgstr "" 307 | 308 | #: sar.c:166 309 | #, c-format 310 | msgid "" 311 | "\t-u [ ALL ]\n" 312 | "\t\tCPU utilization statistics\n" 313 | msgstr "" 314 | 315 | #: sar.c:168 316 | #, c-format 317 | msgid "\t-v\tKernel table statistics\n" 318 | msgstr "" 319 | 320 | #: sar.c:169 321 | #, c-format 322 | msgid "\t-w\tTask creation and system switching statistics\n" 323 | msgstr "" 324 | 325 | #: sar.c:170 326 | #, c-format 327 | msgid "\t-W\tSwapping statistics\n" 328 | msgstr "" 329 | 330 | #: sar.c:171 331 | #, c-format 332 | msgid "\t-y\tTTY device statistics\n" 333 | msgstr "" 334 | 335 | #: sar.c:214 336 | #, c-format 337 | msgid "End of data collecting unexpected\n" 338 | msgstr "" 339 | 340 | #: sar.c:804 341 | #, c-format 342 | msgid "Invalid data format\n" 343 | msgstr "" 344 | 345 | #: sar.c:808 346 | #, c-format 347 | msgid "Using a wrong data collector from a different sysstat version\n" 348 | msgstr "" 349 | 350 | #: sar.c:832 351 | #, c-format 352 | msgid "Inconsistent input data\n" 353 | msgstr "" 354 | 355 | #: sar.c:1262 356 | #, c-format 357 | msgid "-f and -o options are mutually exclusive\n" 358 | msgstr "" 359 | 360 | #: sar.c:1268 361 | #, c-format 362 | msgid "Not reading from a system activity file (use -f option)\n" 363 | msgstr "" 364 | 365 | #: sar.c:1395 366 | #, c-format 367 | msgid "Cannot find the data collector (%s)\n" 368 | msgstr "" 369 | -------------------------------------------------------------------------------- /nls/zh_TW.po: -------------------------------------------------------------------------------- 1 | # Chinese (traditional) translations for sysstat. 2 | # Copyright (C) 2008 THE sysstat'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the sysstat package. 4 | # Zi-You Dai , 2008. 5 | # 6 | # 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: sysstat 8.1.5\n" 10 | "Report-Msgid-Bugs-To: sysstat orange.fr\n" 11 | "POT-Creation-Date: 2008-07-12 18:20+0200\n" 12 | "PO-Revision-Date: 2008-08-18 18:49+0800\n" 13 | "Last-Translator: Zi-You Dai \n" 14 | "Language-Team: Chinese (traditional) \n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=1; plural=0;\n" 19 | 20 | #: common.c:57 21 | #, c-format 22 | msgid "sysstat version %s\n" 23 | msgstr "sysstat 版本 %s\n" 24 | 25 | #: ioconf.c:479 iostat.c:462 rd_stats.c:69 rd_stats.c:1469 rd_stats.c:1576 26 | #: sa_common.c:984 sadc.c:478 sadc.c:487 sadc.c:547 27 | #, c-format 28 | msgid "Cannot open %s: %s\n" 29 | msgstr "無法打開 %s: %s\n" 30 | 31 | #: iostat.c:80 mpstat.c:83 pidstat.c:77 sar.c:89 32 | #, c-format 33 | msgid "Usage: %s [ options ] [ [ ] ]\n" 34 | msgstr "用法: %s [ 選項 ] [ <時間間隔> [ <計算> ] ]\n" 35 | 36 | #: iostat.c:83 37 | #, c-format 38 | msgid "" 39 | "Options are:\n" 40 | "[ -c ] [ -d ] [ -N ] [ -n ] [ -h ] [ -k | -m ] [ -t ] [ -V ] [ -x ]\n" 41 | "[ [ ... ] | ALL ] [ -p [ | ALL ] ]\n" 42 | msgstr "" 43 | "選項是:\n" 44 | "[-c ]·[ -d ] [ -N ] [ -n ] [ -h ] [ -k | -m ] [ -t ] [ -V ] [ -x ]\n" 45 | "[·<裝置> ·[...]·|· ALL ]·[ -p [ <裝置> | ALL ] ]\n" 46 | 47 | #: iostat.c:1268 48 | #, c-format 49 | msgid "Time: %s\n" 50 | msgstr "時間: %s\n" 51 | 52 | #: iostat.c:1645 53 | #, c-format 54 | msgid "-x and -p options are mutually exclusive\n" 55 | msgstr "-x 和 -p 選項互相排斥\n" 56 | 57 | #: mpstat.c:86 58 | #, c-format 59 | msgid "" 60 | "Options are:\n" 61 | "[ -A ] [ -I { SUM | CPU | ALL } ] [ -u ] [ -P { | ALL } ] [ -V ]\n" 62 | msgstr "" 63 | "選項是:\n" 64 | "[ -A ] [ -I { SUM | CPU | ALL } ] [ -u ] [ -P { | ALL } ] [ -V ]\n" 65 | 66 | #: mpstat.c:403 pidstat.c:1362 sar.c:287 67 | msgid "Average:" 68 | msgstr "平均時間:" 69 | 70 | #: mpstat.c:708 71 | #, c-format 72 | msgid "Not that many processors!\n" 73 | msgstr "沒有那麼多處理器!\n" 74 | 75 | #: pidstat.c:80 76 | #, c-format 77 | msgid "" 78 | "Options are:\n" 79 | "[ -C ] [ -d ] [ -I ] [ -r ] [ -t ] [ -u ] [ -V ] [ -w ]\n" 80 | "[ -p { | SELF | ALL } ] [ -T { TASK | CHILD | ALL } ]\n" 81 | msgstr "" 82 | "選項是:\n" 83 | "[ -C <命令> ] [ -d ] [ -I ] [ -r ] [ -t ] [ -u ] [ -V ] [ -w ]\n" 84 | "[ -p { | SELF | ALL } ] [ -T { TASK | CHILD | ALL } ]\n" 85 | 86 | #: pidstat.c:181 sar.c:892 87 | #, c-format 88 | msgid "Requested activities not available\n" 89 | msgstr "所需的運行記錄無法取得\n" 90 | 91 | #: rd_stats.c:1622 92 | #, c-format 93 | msgid "Cannot handle so many processors!\n" 94 | msgstr "處理器太多無法處理!\n" 95 | 96 | #: sa_common.c:800 97 | #, c-format 98 | msgid "Error while reading system activity file: %s\n" 99 | msgstr "讀取系統運行記錄時出錯: %s\n" 100 | 101 | #: sa_common.c:810 102 | #, c-format 103 | msgid "End of system activity file unexpected\n" 104 | msgstr "系統運行記錄文件的結尾有未知錯誤\n" 105 | 106 | #: sa_common.c:828 107 | #, c-format 108 | msgid "File created using sar/sadc from sysstat version %d.%d.%d" 109 | msgstr "從 sysstat 版本 %d,%d,%d 使用 sar/sadc 建立檔案" 110 | 111 | #: sa_common.c:858 112 | #, c-format 113 | msgid "Invalid system activity file: %s\n" 114 | msgstr "無效的系統運行記錄檔案: %s\n" 115 | 116 | #: sa_common.c:865 117 | #, c-format 118 | msgid "Current sysstat version can no longer read the format of this file (%#x)\n" 119 | msgstr "目前的 sysstat 版本已無法讀取此檔案格式 (%#x)\n" 120 | 121 | #: sa_common.c:1058 122 | #, c-format 123 | msgid "Requested activities not available in file %s\n" 124 | msgstr "所需的運行記錄在此檔案 %s 中無法獲得\n" 125 | 126 | #: sadc.c:78 127 | #, c-format 128 | msgid "Usage: %s [ options ] [ [ ] ] [ ]\n" 129 | msgstr "用法: %s [ 選項 ] [ <時間間隔> [ <計算> ] ] [ <輸出檔> ]\n" 130 | 131 | #: sadc.c:81 132 | #, c-format 133 | msgid "" 134 | "Options are:\n" 135 | "[ -C ] [ -S { INT | DISK | ALL } ] [ -F ] [ -L ] [ -V ]\n" 136 | msgstr "" 137 | "選項是:\n" 138 | "[ -C <命令> ] [ -S { INT | DISK | ALL } ] [ -F ] [ -L ] [ -V ]\n" 139 | 140 | #: sadc.c:107 141 | #, c-format 142 | msgid "Cannot write data to system activity file: %s\n" 143 | msgstr "無法將數據寫入系統運行記錄檔案: %s\n" 144 | 145 | #: sadc.c:364 146 | #, c-format 147 | msgid "Cannot write system activity file header: %s\n" 148 | msgstr "無法寫入系統運行記錄檔案的檔頭: %s\n" 149 | 150 | #: sadc.c:641 151 | #, c-format 152 | msgid "Cannot append data to that file (%s)\n" 153 | msgstr "不能增加數據到該檔案 (%s)\n" 154 | 155 | #: sadf.c:85 156 | #, c-format 157 | msgid "Usage: %s [ options ] [ [ ] ] [ ]\n" 158 | msgstr "用法: %s [ 選項 ] [ <時間間隔> [ <計算> ] ] [ <數據檔> ]\n" 159 | 160 | #: sadf.c:88 161 | #, c-format 162 | msgid "" 163 | "Options are:\n" 164 | "[ -d | -D | -H | -p | -x ] [ -h ] [ -t ] [ -V ]\n" 165 | "[ -P { | ALL } ] [ -s [ ] ] [ -e [ ] ]\n" 166 | "[ -- ]\n" 167 | msgstr "" 168 | "選項是:\n" 169 | "[ -d | -D | -H | -p | -x ] [ -h ] [ -t ] [ -V ]\n" 170 | "[ -P { | ALL } ] [ -s [ ] ] [ -e [ ·] ]\n" 171 | "[·--··]\n" 172 | 173 | #: sadf.c:526 174 | #, c-format 175 | msgid "System activity data file: %s (%#x)\n" 176 | msgstr "系統運行記錄數據檔: %s (%#x)\n" 177 | 178 | #: sadf.c:535 179 | #, c-format 180 | msgid "Host: " 181 | msgstr "主機:" 182 | 183 | #: sadf.c:540 184 | #, fuzzy, c-format 185 | msgid "Size of a long int: %d\n" 186 | msgstr "整數大小過長: %d\n" 187 | 188 | #: sadf.c:542 189 | #, c-format 190 | msgid "List of activities:\n" 191 | msgstr "運行記錄清單:\n" 192 | 193 | #: sar.c:92 194 | #, c-format 195 | msgid "" 196 | "Options are:\n" 197 | "[ -A ] [ -b ] [ -B ] [ -C ] [ -d ] [ -p ] [ -q ] [ -r ] [ -R ]\n" 198 | "[ -S ] [ -t ] [ -u [ ALL ] ] [ -v ] [ -V ] [ -w ] [ -W ] [ -y ]\n" 199 | "[ -I { | SUM | ALL | XALL } ] [ -P { | ALL } ]\n" 200 | "[ -n { DEV | EDEV | NFS | NFSD | SOCK | ALL } ]\n" 201 | "[ -o [ ] | -f [ ] ]\n" 202 | "[ -i ] [ -s [ ] ] [ -e [ ] ]\n" 203 | msgstr "" 204 | "選項是:\n" 205 | "[ -A ] [ -b ] [ -B ] [ -C ] [ -d ] [ -p ] [ -q ] [ -r ] [ -R ]\n" 206 | "[ -S ] [ -t ] [ -u [ ALL ] ] [ -v ] [ -V ] [ -w ] [ -W ] [ -y ]\n" 207 | "[ -I { | SUM | ALL | XALL } ] [ -P { | ALL } ]\n" 208 | "[ -n { DEV | EDEV | NFS | NFSD | SOCK | ALL } ]\n" 209 | "[ -o [ <檔名> ] | -f [ <檔名> ] ]\n" 210 | "[ -i <時間間隔> ] [ -s [ ] ] [ -e [ ] ]\n" 211 | 212 | #: sar.c:143 213 | #, c-format 214 | msgid "End of data collecting unexpected\n" 215 | msgstr "數據結尾有未知錯誤\n" 216 | 217 | #: sar.c:703 218 | #, c-format 219 | msgid "Invalid data format\n" 220 | msgstr "無效的數據格式\n" 221 | 222 | #: sar.c:707 223 | #, c-format 224 | msgid "Using a wrong data collector from a different sysstat version\n" 225 | msgstr "從一個不同的 sysstat 版本,使用了錯誤的數據收集器\n" 226 | 227 | #: sar.c:727 228 | #, c-format 229 | msgid "Inconsistent input data\n" 230 | msgstr "不一致的數據輸入\n" 231 | 232 | #: sar.c:1121 233 | #, c-format 234 | msgid "-f and -o options are mutually exclusive\n" 235 | msgstr "-f 和 -o選項是互相排斥的\n" 236 | 237 | #: sar.c:1127 238 | #, c-format 239 | msgid "Not reading from a system activity file (use -f option)\n" 240 | msgstr "無法查看系統活動記錄檔 (使用 -f 選項)\n" 241 | 242 | #: sar.c:1224 243 | #, c-format 244 | msgid "Cannot find the data collector (%s)\n" 245 | msgstr "無法找到數據收集器 (%s)\n" 246 | -------------------------------------------------------------------------------- /pidstat.h: -------------------------------------------------------------------------------- 1 | /* 2 | * pidstat: Display per-process statistics. 3 | * (C) 2007-2011 by Sebastien Godard (sysstat orange.fr) 4 | */ 5 | 6 | #ifndef _PIDSTAT_H 7 | #define _PIDSTAT_H 8 | 9 | 10 | #define K_SELF "SELF" 11 | 12 | #define K_P_TASK "TASK" 13 | #define K_P_CHILD "CHILD" 14 | #define K_P_ALL "ALL" 15 | 16 | #define NR_PID_PREALLOC 10 17 | 18 | #define MAX_COMM_LEN 128 19 | #define MAX_CMDLINE_LEN 128 20 | 21 | /* Activities */ 22 | #define P_A_CPU 0x01 23 | #define P_A_MEM 0x02 24 | #define P_A_IO 0x04 25 | #define P_A_CTXSW 0x08 26 | #define P_A_STACK 0x10 27 | 28 | #define DISPLAY_CPU(m) (((m) & P_A_CPU) == P_A_CPU) 29 | #define DISPLAY_MEM(m) (((m) & P_A_MEM) == P_A_MEM) 30 | #define DISPLAY_IO(m) (((m) & P_A_IO) == P_A_IO) 31 | #define DISPLAY_CTXSW(m) (((m) & P_A_CTXSW) == P_A_CTXSW) 32 | #define DISPLAY_STACK(m) (((m) & P_A_STACK) == P_A_STACK) 33 | 34 | /* TASK/CHILD */ 35 | #define P_NULL 0x00 36 | #define P_TASK 0x01 37 | #define P_CHILD 0x02 38 | 39 | #define DISPLAY_TASK_STATS(m) (((m) & P_TASK) == P_TASK) 40 | #define DISPLAY_CHILD_STATS(m) (((m) & P_CHILD) == P_CHILD) 41 | 42 | #define P_D_PID 0x001 43 | #define P_D_ALL_PID 0x002 44 | #define P_F_IRIX_MODE 0x004 45 | #define P_F_COMMSTR 0x008 46 | #define P_D_ACTIVE_PID 0x010 47 | #define P_D_TID 0x020 48 | #define P_D_ONELINE 0x040 49 | #define P_D_CMDLINE 0x080 50 | 51 | #define DISPLAY_PID(m) (((m) & P_D_PID) == P_D_PID) 52 | #define DISPLAY_ALL_PID(m) (((m) & P_D_ALL_PID) == P_D_ALL_PID) 53 | #define IRIX_MODE_OFF(m) (((m) & P_F_IRIX_MODE) == P_F_IRIX_MODE) 54 | #define COMMAND_STRING(m) (((m) & P_F_COMMSTR) == P_F_COMMSTR) 55 | #define DISPLAY_ACTIVE_PID(m) (((m) & P_D_ACTIVE_PID) == P_D_ACTIVE_PID) 56 | #define DISPLAY_TID(m) (((m) & P_D_TID) == P_D_TID) 57 | #define DISPLAY_ONELINE(m) (((m) & P_D_ONELINE) == P_D_ONELINE) 58 | #define DISPLAY_CMDLINE(m) (((m) & P_D_CMDLINE) == P_D_CMDLINE) 59 | 60 | #define F_NO_PID_IO 0x01 61 | 62 | #define NO_PID_IO(m) (((m) & F_NO_PID_IO) == F_NO_PID_IO) 63 | 64 | #define PROC "/proc" 65 | 66 | #define PROC_PID "/proc/%u" 67 | #define PID_STAT "/proc/%u/stat" 68 | #define PID_STATUS "/proc/%u/status" 69 | #define PID_IO "/proc/%u/io" 70 | #define PID_CMDLINE "/proc/%u/cmdline" 71 | #define PID_SMAP "/proc/%u/smaps" 72 | 73 | #define PROC_TASK "/proc/%u/task" 74 | #define TASK_STAT "/proc/%u/task/%u/stat" 75 | #define TASK_STATUS "/proc/%u/task/%u/status" 76 | #define TASK_IO "/proc/%u/task/%u/io" 77 | #define TASK_CMDLINE "/proc/%u/task/%u/cmdline" 78 | #define TASK_SMAP "/proc/%u/task/%u/smaps" 79 | 80 | #define PRINT_ID_HDR(_timestamp_, _flag_) do { \ 81 | printf("\n%-11s", _timestamp_); \ 82 | if (DISPLAY_TID(_flag_)) { \ 83 | printf(" TGID TID"); \ 84 | } \ 85 | else { \ 86 | printf(" PID"); \ 87 | } \ 88 | } while (0) 89 | 90 | struct pid_stats { 91 | unsigned long long read_bytes __attribute__ ((aligned (8))); 92 | unsigned long long write_bytes __attribute__ ((packed)); 93 | unsigned long long cancelled_write_bytes __attribute__ ((packed)); 94 | unsigned long long total_vsz __attribute__ ((packed)); 95 | unsigned long long total_rss __attribute__ ((packed)); 96 | unsigned long long total_stack_size __attribute__ ((packed)); 97 | unsigned long long total_stack_ref __attribute__ ((packed)); 98 | unsigned long minflt __attribute__ ((packed)); 99 | unsigned long cminflt __attribute__ ((packed)); 100 | unsigned long majflt __attribute__ ((packed)); 101 | unsigned long cmajflt __attribute__ ((packed)); 102 | unsigned long utime __attribute__ ((packed)); 103 | unsigned long cutime __attribute__ ((packed)); 104 | unsigned long stime __attribute__ ((packed)); 105 | unsigned long cstime __attribute__ ((packed)); 106 | unsigned long gtime __attribute__ ((packed)); 107 | unsigned long cgtime __attribute__ ((packed)); 108 | unsigned long vsz __attribute__ ((packed)); 109 | unsigned long rss __attribute__ ((packed)); 110 | unsigned long nvcsw __attribute__ ((packed)); 111 | unsigned long nivcsw __attribute__ ((packed)); 112 | unsigned long stack_size __attribute__ ((packed)); 113 | unsigned long stack_ref __attribute__ ((packed)); 114 | /* If pid is null, the process has terminated */ 115 | unsigned int pid __attribute__ ((packed)); 116 | /* If tgid is not null, then this PID is in fact a TID */ 117 | unsigned int tgid __attribute__ ((packed)); 118 | unsigned int rt_asum_count __attribute__ ((packed)); 119 | unsigned int rc_asum_count __attribute__ ((packed)); 120 | unsigned int uc_asum_count __attribute__ ((packed)); 121 | unsigned int processor __attribute__ ((packed)); 122 | unsigned int flags __attribute__ ((packed)); 123 | char comm[MAX_COMM_LEN]; 124 | char cmdline[MAX_CMDLINE_LEN]; 125 | }; 126 | 127 | #define PID_STATS_SIZE (sizeof(struct pid_stats)) 128 | 129 | #endif /* _PIDSTAT_H */ 130 | -------------------------------------------------------------------------------- /pr_stats.h: -------------------------------------------------------------------------------- 1 | /* 2 | * pr_stats.h: Include file used to display system statistics 3 | * (C) 1999-2011 by Sebastien Godard (sysstat orange.fr) 4 | */ 5 | 6 | #ifndef _PR_STATS_H 7 | #define _PR_STATS_H 8 | 9 | #include "common.h" 10 | 11 | 12 | /* 13 | *************************************************************************** 14 | * Prototypes for functions used to display system statistics 15 | *************************************************************************** 16 | */ 17 | 18 | /* Functions used to display instantaneous statistics */ 19 | extern __print_funct_t print_cpu_stats 20 | (struct activity *, int, int, unsigned long long); 21 | extern __print_funct_t print_pcsw_stats 22 | (struct activity *, int, int, unsigned long long); 23 | extern __print_funct_t print_irq_stats 24 | (struct activity *, int, int, unsigned long long); 25 | extern __print_funct_t print_swap_stats 26 | (struct activity *, int, int, unsigned long long); 27 | extern __print_funct_t print_paging_stats 28 | (struct activity *, int, int, unsigned long long); 29 | extern __print_funct_t print_io_stats 30 | (struct activity *, int, int, unsigned long long); 31 | extern __print_funct_t print_memory_stats 32 | (struct activity *, int, int, unsigned long long); 33 | extern __print_funct_t print_ktables_stats 34 | (struct activity *, int, int, unsigned long long); 35 | extern __print_funct_t print_queue_stats 36 | (struct activity *, int, int, unsigned long long); 37 | extern __print_funct_t print_serial_stats 38 | (struct activity *, int, int, unsigned long long); 39 | extern __print_funct_t print_disk_stats 40 | (struct activity *, int, int, unsigned long long); 41 | extern __print_funct_t print_net_dev_stats 42 | (struct activity *, int, int, unsigned long long); 43 | extern __print_funct_t print_net_edev_stats 44 | (struct activity *, int, int, unsigned long long); 45 | extern __print_funct_t print_net_nfs_stats 46 | (struct activity *, int, int, unsigned long long); 47 | extern __print_funct_t print_net_nfsd_stats 48 | (struct activity *, int, int, unsigned long long); 49 | extern __print_funct_t print_net_sock_stats 50 | (struct activity *, int, int, unsigned long long); 51 | extern __print_funct_t print_net_ip_stats 52 | (struct activity *, int, int, unsigned long long); 53 | extern __print_funct_t print_net_eip_stats 54 | (struct activity *, int, int, unsigned long long); 55 | extern __print_funct_t print_net_icmp_stats 56 | (struct activity *, int, int, unsigned long long); 57 | extern __print_funct_t print_net_eicmp_stats 58 | (struct activity *, int, int, unsigned long long); 59 | extern __print_funct_t print_net_tcp_stats 60 | (struct activity *, int, int, unsigned long long); 61 | extern __print_funct_t print_net_etcp_stats 62 | (struct activity *, int, int, unsigned long long); 63 | extern __print_funct_t print_net_udp_stats 64 | (struct activity *, int, int, unsigned long long); 65 | extern __print_funct_t print_net_sock6_stats 66 | (struct activity *, int, int, unsigned long long); 67 | extern __print_funct_t print_net_ip6_stats 68 | (struct activity *, int, int, unsigned long long); 69 | extern __print_funct_t print_net_eip6_stats 70 | (struct activity *, int, int, unsigned long long); 71 | extern __print_funct_t print_net_icmp6_stats 72 | (struct activity *, int, int, unsigned long long); 73 | extern __print_funct_t print_net_eicmp6_stats 74 | (struct activity *, int, int, unsigned long long); 75 | extern __print_funct_t print_net_udp6_stats 76 | (struct activity *, int, int, unsigned long long); 77 | extern __print_funct_t print_pwr_cpufreq_stats 78 | (struct activity *, int, int, unsigned long long); 79 | extern __print_funct_t print_pwr_fan_stats 80 | (struct activity *, int, int, unsigned long long); 81 | extern __print_funct_t print_pwr_temp_stats 82 | (struct activity *, int, int, unsigned long long); 83 | extern __print_funct_t print_pwr_in_stats 84 | (struct activity *, int, int, unsigned long long); 85 | extern __print_funct_t print_huge_stats 86 | (struct activity *, int, int, unsigned long long); 87 | extern __print_funct_t print_pwr_wghfreq_stats 88 | (struct activity *, int, int, unsigned long long); 89 | 90 | /* Functions used to display average statistics */ 91 | extern __print_funct_t print_avg_memory_stats 92 | (struct activity *, int, int, unsigned long long); 93 | extern __print_funct_t print_avg_ktables_stats 94 | (struct activity *, int, int, unsigned long long); 95 | extern __print_funct_t print_avg_queue_stats 96 | (struct activity *, int, int, unsigned long long); 97 | extern __print_funct_t print_avg_net_sock_stats 98 | (struct activity *, int, int, unsigned long long); 99 | extern __print_funct_t print_avg_net_sock6_stats 100 | (struct activity *, int, int, unsigned long long); 101 | extern __print_funct_t print_avg_pwr_cpufreq_stats 102 | (struct activity *, int, int, unsigned long long); 103 | extern __print_funct_t print_avg_pwr_fan_stats 104 | (struct activity *, int, int, unsigned long long); 105 | extern __print_funct_t print_avg_pwr_temp_stats 106 | (struct activity *, int, int, unsigned long long); 107 | extern __print_funct_t print_avg_pwr_in_stats 108 | (struct activity *, int, int, unsigned long long); 109 | extern __print_funct_t print_avg_huge_stats 110 | (struct activity *, int, int, unsigned long long); 111 | 112 | #endif /* _PR_STATS_H */ 113 | -------------------------------------------------------------------------------- /rd_sensors.c: -------------------------------------------------------------------------------- 1 | /* 2 | * rd_sensors.c: Read sensors statistics 3 | * (C) 1999-2011 by Sebastien GODARD (sysstat orange.fr) 4 | * 5 | *************************************************************************** 6 | * This program is free software; you can redistribute it and/or modify it * 7 | * under the terms of the GNU General Public License as published by the * 8 | * Free Software Foundation; either version 2 of the License, or (at your * 9 | * option) any later version. * 10 | * * 11 | * This program is distributed in the hope that it will be useful, but * 12 | * WITHOUT ANY WARRANTY; without the implied warranty of MERCHANTABILITY * 13 | * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * 14 | * for more details. * 15 | * * 16 | * You should have received a copy of the GNU General Public License along * 17 | * with this program; if not, write to the Free Software Foundation, Inc., * 18 | * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * 19 | *************************************************************************** 20 | */ 21 | 22 | #include 23 | #include 24 | 25 | #include "common.h" 26 | #include "rd_sensors.h" 27 | 28 | #ifdef USE_NLS 29 | #include 30 | #include 31 | #define _(string) gettext(string) 32 | #else 33 | #define _(string) (string) 34 | #endif 35 | 36 | #ifdef HAVE_SENSORS 37 | #include "sensors/sensors.h" 38 | #endif 39 | 40 | /* 41 | *************************************************************************** 42 | * Read fan statistics. 43 | * 44 | * IN: 45 | * @st_pwr_fan Structure where stats will be saved. 46 | * @nbr Total number of fans. 47 | * 48 | * OUT: 49 | * @st_pwr_fan Structure with statistics. 50 | *************************************************************************** 51 | */ 52 | void read_fan(struct stats_pwr_fan *st_pwr_fan, int nbr) 53 | { 54 | #ifdef HAVE_SENSORS 55 | int count = 0; 56 | const sensors_chip_name *chip; 57 | const sensors_feature *feature; 58 | const sensors_subfeature *sub; 59 | struct stats_pwr_fan *st_pwr_fan_i; 60 | int chip_nr = 0; 61 | int i, j; 62 | 63 | memset(st_pwr_fan, 0, STATS_PWR_FAN_SIZE); 64 | int err = 0; 65 | 66 | while ((chip = sensors_get_detected_chips(NULL, &chip_nr))) { 67 | i = 0; 68 | while ((feature = sensors_get_features(chip, &i))) { 69 | if ((feature->type == SENSORS_FEATURE_FAN) && (count < nbr)) { 70 | j = 0; 71 | st_pwr_fan_i = st_pwr_fan + count; 72 | sensors_snprintf_chip_name(st_pwr_fan_i->device, MAX_SENSORS_DEV_LEN, chip); 73 | 74 | while ((sub = sensors_get_all_subfeatures(chip, feature, &j))) { 75 | if ((sub->type == SENSORS_SUBFEATURE_FAN_INPUT) && 76 | (sub->flags & SENSORS_MODE_R)) { 77 | if ((err = sensors_get_value(chip, sub->number, &st_pwr_fan_i->rpm))) { 78 | st_pwr_fan_i->rpm = 0; 79 | } 80 | } 81 | else if ((sub->type == SENSORS_SUBFEATURE_FAN_MIN)) { 82 | if ((err = sensors_get_value(chip, sub->number, &st_pwr_fan_i->rpm_min))) { 83 | st_pwr_fan_i->rpm_min = 0; 84 | } 85 | } 86 | } 87 | count++; 88 | } 89 | } 90 | } 91 | #endif /* HAVE_SENSORS */ 92 | } 93 | 94 | /* 95 | *************************************************************************** 96 | * Read device temperature statistics. 97 | * 98 | * IN: 99 | * @st_pwr_temp Structure where stats will be saved. 100 | * @nbr Total number of fans. 101 | * 102 | * OUT: 103 | * @st_pwr_temp Structure with statistics. 104 | *************************************************************************** 105 | */ 106 | void read_temp(struct stats_pwr_temp *st_pwr_temp, int nbr) 107 | { 108 | #ifdef HAVE_SENSORS 109 | int count = 0; 110 | const sensors_chip_name *chip; 111 | const sensors_feature *feature; 112 | const sensors_subfeature *sub; 113 | struct stats_pwr_temp *st_pwr_temp_i; 114 | int chip_nr = 0; 115 | int i, j; 116 | 117 | memset(st_pwr_temp, 0, STATS_PWR_TEMP_SIZE); 118 | int err = 0; 119 | 120 | while ((chip = sensors_get_detected_chips(NULL, &chip_nr))) { 121 | i = 0; 122 | while ((feature = sensors_get_features(chip, &i))) { 123 | if ((feature->type == SENSORS_FEATURE_TEMP) && (count < nbr)) { 124 | j = 0; 125 | st_pwr_temp_i = st_pwr_temp + count; 126 | sensors_snprintf_chip_name(st_pwr_temp_i->device, MAX_SENSORS_DEV_LEN, chip); 127 | 128 | while ((sub = sensors_get_all_subfeatures(chip, feature, &j))) { 129 | if ((sub->type == SENSORS_SUBFEATURE_TEMP_INPUT) && 130 | (sub->flags & SENSORS_MODE_R)) { 131 | if ((err = sensors_get_value(chip, sub->number, &st_pwr_temp_i->temp))) { 132 | st_pwr_temp_i->temp = 0; 133 | } 134 | } 135 | else if ((sub->type == SENSORS_SUBFEATURE_TEMP_MIN)) { 136 | if ((err = sensors_get_value(chip, sub->number, &st_pwr_temp_i->temp_min))) { 137 | st_pwr_temp_i->temp_min = 0; 138 | } 139 | } 140 | else if ((sub->type == SENSORS_SUBFEATURE_TEMP_MAX)) { 141 | if ((err = sensors_get_value(chip, sub->number, &st_pwr_temp_i->temp_max))) { 142 | st_pwr_temp_i->temp_max = 0; 143 | } 144 | } 145 | } 146 | count++; 147 | } 148 | } 149 | } 150 | #endif /* HAVE_SENSORS */ 151 | } 152 | 153 | /* 154 | *************************************************************************** 155 | * Read voltage inputs statistics. 156 | * 157 | * IN: 158 | * @st_pwr_in Structure where stats will be saved. 159 | * @nbr Total number of voltage inputs. 160 | * 161 | * OUT: 162 | * @st_pwr_in Structure with statistics. 163 | *************************************************************************** 164 | */ 165 | void read_in(struct stats_pwr_in *st_pwr_in, int nbr) 166 | { 167 | #ifdef HAVE_SENSORS 168 | int count = 0; 169 | const sensors_chip_name *chip; 170 | const sensors_feature *feature; 171 | const sensors_subfeature *sub; 172 | struct stats_pwr_in *st_pwr_in_i; 173 | int chip_nr = 0; 174 | int i, j; 175 | 176 | memset(st_pwr_in, 0, STATS_PWR_IN_SIZE); 177 | int err = 0; 178 | 179 | while ((chip = sensors_get_detected_chips(NULL, &chip_nr))) { 180 | i = 0; 181 | while ((feature = sensors_get_features(chip, &i))) { 182 | if ((feature->type == SENSORS_FEATURE_IN) && (count < nbr)) { 183 | j = 0; 184 | st_pwr_in_i = st_pwr_in + count; 185 | sensors_snprintf_chip_name(st_pwr_in_i->device, MAX_SENSORS_DEV_LEN, chip); 186 | 187 | while ((sub = sensors_get_all_subfeatures(chip, feature, &j))) { 188 | if ((sub->type == SENSORS_SUBFEATURE_IN_INPUT) && 189 | (sub->flags & SENSORS_MODE_R)) { 190 | if ((err = sensors_get_value(chip, sub->number, &st_pwr_in_i->in))) { 191 | st_pwr_in_i->in = 0; 192 | } 193 | } 194 | else if ((sub->type == SENSORS_SUBFEATURE_IN_MIN)) { 195 | if ((err = sensors_get_value(chip, sub->number, &st_pwr_in_i->in_min))) { 196 | st_pwr_in_i->in_min = 0; 197 | } 198 | } 199 | else if ((sub->type == SENSORS_SUBFEATURE_IN_MAX)) { 200 | if ((err = sensors_get_value(chip, sub->number, &st_pwr_in_i->in_max))) { 201 | st_pwr_in_i->in_max = 0; 202 | } 203 | } 204 | } 205 | count++; 206 | } 207 | } 208 | } 209 | #endif /* HAVE_SENSORS */ 210 | } 211 | 212 | #ifdef HAVE_SENSORS 213 | /* 214 | *************************************************************************** 215 | * Count the number of sensors of given type on the machine. 216 | * 217 | * IN: 218 | * @type Type of sensors. 219 | * 220 | * RETURNS: 221 | * Number of sensors. 222 | *************************************************************************** 223 | */ 224 | int get_sensors_nr(sensors_feature_type type) { 225 | int count = 0; 226 | const sensors_chip_name *chip; 227 | const sensors_feature *feature; 228 | int chip_nr = 0; 229 | int i; 230 | 231 | while ((chip = sensors_get_detected_chips(NULL, &chip_nr))) { 232 | i = 0; 233 | while ((feature = sensors_get_features(chip, &i))) { 234 | if (feature->type == type) { 235 | count++; 236 | } 237 | } 238 | } 239 | 240 | return count; 241 | } 242 | #endif /* HAVE_SENSORS */ 243 | 244 | /* 245 | *************************************************************************** 246 | * Count the number of fans on the machine. 247 | * 248 | * RETURNS: 249 | * Number of fans. 250 | *************************************************************************** 251 | */ 252 | int get_fan_nr(void) 253 | { 254 | #ifdef HAVE_SENSORS 255 | return get_sensors_nr(SENSORS_FEATURE_FAN); 256 | #else 257 | return 0; 258 | #endif /* HAVE_SENSORS */ 259 | } 260 | 261 | /* 262 | *************************************************************************** 263 | * Count the number of temperature sensors on the machine. 264 | * 265 | * RETURNS: 266 | * Number of temperature sensors. 267 | *************************************************************************** 268 | */ 269 | int get_temp_nr(void) 270 | { 271 | #ifdef HAVE_SENSORS 272 | return get_sensors_nr(SENSORS_FEATURE_TEMP); 273 | #else 274 | return 0; 275 | #endif /* HAVE_SENSORS */ 276 | 277 | } 278 | 279 | /* 280 | *************************************************************************** 281 | * Count the number of voltage inputs on the machine. 282 | * 283 | * RETURNS: 284 | * Number of voltage inputs. 285 | *************************************************************************** 286 | */ 287 | int get_in_nr(void) 288 | { 289 | #ifdef HAVE_SENSORS 290 | return get_sensors_nr(SENSORS_FEATURE_IN); 291 | #else 292 | return 0; 293 | #endif /* HAVE_SENSORS */ 294 | 295 | } 296 | -------------------------------------------------------------------------------- /rd_sensors.h: -------------------------------------------------------------------------------- 1 | /* 2 | * rd_sensors.h: Include file used to read sensors statistics 3 | * (C) 1999-2011 by Sebastien Godard (sysstat orange.fr) 4 | */ 5 | 6 | #ifndef _RD_SENSORS_H 7 | #define _RD_SENSORS_H 8 | 9 | #include "common.h" 10 | 11 | /* 12 | *************************************************************************** 13 | * Definitions of structures for sensors statistics 14 | *************************************************************************** 15 | */ 16 | 17 | /* 18 | * Structure for fan statistics. 19 | */ 20 | struct stats_pwr_fan { 21 | double rpm __attribute__ ((aligned (8))); 22 | double rpm_min __attribute__ ((aligned (8))); 23 | char device[MAX_SENSORS_DEV_LEN] __attribute__ ((aligned (8))); 24 | }; 25 | 26 | #define STATS_PWR_FAN_SIZE (sizeof(struct stats_pwr_fan)) 27 | 28 | /* 29 | * Structure for device temperature statistics. 30 | */ 31 | struct stats_pwr_temp { 32 | double temp __attribute__ ((aligned (8))); 33 | double temp_min __attribute__ ((aligned (8))); 34 | double temp_max __attribute__ ((aligned (8))); 35 | char device[MAX_SENSORS_DEV_LEN] __attribute__ ((aligned (8))); 36 | }; 37 | 38 | #define STATS_PWR_TEMP_SIZE (sizeof(struct stats_pwr_temp)) 39 | 40 | /* 41 | * Structure for voltage inputs statistics. 42 | */ 43 | struct stats_pwr_in { 44 | double in __attribute__ ((aligned (8))); 45 | double in_min __attribute__ ((aligned (8))); 46 | double in_max __attribute__ ((aligned (8))); 47 | char device[MAX_SENSORS_DEV_LEN] __attribute__ ((aligned (8))); 48 | }; 49 | 50 | #define STATS_PWR_IN_SIZE (sizeof(struct stats_pwr_in)) 51 | 52 | /* 53 | *************************************************************************** 54 | * Prototypes for functions used to read sensors statistics 55 | *************************************************************************** 56 | */ 57 | 58 | extern void 59 | read_fan(struct stats_pwr_fan *, int); 60 | extern void 61 | read_temp(struct stats_pwr_temp *, int); 62 | extern void 63 | read_in(struct stats_pwr_in *, int); 64 | 65 | /* 66 | *************************************************************************** 67 | * Prototypes for functions used to count number of items 68 | *************************************************************************** 69 | */ 70 | 71 | extern int 72 | get_fan_nr(void); 73 | extern int 74 | get_temp_nr(void); 75 | extern int 76 | get_in_nr(void); 77 | 78 | #endif /* _RD_SENSORS_H */ 79 | -------------------------------------------------------------------------------- /rndr_stats.h: -------------------------------------------------------------------------------- 1 | /* 2 | * rndr_stats.h: Include file used to display system statistics in selected format. 3 | * (C) 1999-2011 by Sebastien Godard (sysstat orange.fr) 4 | */ 5 | 6 | #ifndef _RNDR_STATS_H 7 | #define _RNDR_STATS_H 8 | 9 | #include "common.h" 10 | 11 | /* 12 | *************************************************************************** 13 | * Definitions for functions used by sadf. 14 | *************************************************************************** 15 | */ 16 | 17 | #define PT_NOFLAG 0x0000 /* Prevent undescribed '0' in render calls */ 18 | #define PT_USEINT 0x0001 /* Use the integer final arg, not double */ 19 | #define PT_NEWLIN 0x0002 /* Terminate the current output line */ 20 | 21 | #define NOVAL 0 /* For placeholder zeros */ 22 | #define DNOVAL 0.0 /* Wilma! */ 23 | 24 | /* 25 | * Conses are used to type independent passing 26 | * of variable optional data into our rendering routine. 27 | */ 28 | 29 | typedef enum e_tcons {iv, sv} tcons; /* Types of conses */ 30 | 31 | typedef struct { 32 | tcons t; /* Type in {iv,sv} */ 33 | union { 34 | unsigned long int i; 35 | char *s; 36 | } a, b; /* Value pair, either ints or char *s */ 37 | } Cons; 38 | 39 | /* 40 | *************************************************************************** 41 | * Prototypes for functions used to display system statistics in selected 42 | * format. 43 | *************************************************************************** 44 | */ 45 | 46 | /* Functions used to display statistics in the format selected by sadf */ 47 | extern __print_funct_t render_pcsw_stats 48 | (struct activity *, int, char *, int, unsigned long long); 49 | extern __print_funct_t render_cpu_stats 50 | (struct activity *, int, char *, int, unsigned long long); 51 | extern __print_funct_t render_irq_stats 52 | (struct activity *, int, char *, int, unsigned long long); 53 | extern __print_funct_t render_swap_stats 54 | (struct activity *, int, char *, int, unsigned long long); 55 | extern __print_funct_t render_paging_stats 56 | (struct activity *, int, char *, int, unsigned long long); 57 | extern __print_funct_t render_io_stats 58 | (struct activity *, int, char *, int, unsigned long long); 59 | extern __print_funct_t render_memory_stats 60 | (struct activity *, int, char *, int, unsigned long long); 61 | extern __print_funct_t render_ktables_stats 62 | (struct activity *, int, char *, int, unsigned long long); 63 | extern __print_funct_t render_queue_stats 64 | (struct activity *, int, char *, int, unsigned long long); 65 | extern __print_funct_t render_serial_stats 66 | (struct activity *, int, char *, int, unsigned long long); 67 | extern __print_funct_t render_disk_stats 68 | (struct activity *, int, char *, int, unsigned long long); 69 | extern __print_funct_t render_net_dev_stats 70 | (struct activity *, int, char *, int, unsigned long long); 71 | extern __print_funct_t render_net_edev_stats 72 | (struct activity *, int, char *, int, unsigned long long); 73 | extern __print_funct_t render_net_nfs_stats 74 | (struct activity *, int, char *, int, unsigned long long); 75 | extern __print_funct_t render_net_nfsd_stats 76 | (struct activity *, int, char *, int, unsigned long long); 77 | extern __print_funct_t render_net_sock_stats 78 | (struct activity *, int, char *, int, unsigned long long); 79 | extern __print_funct_t render_net_ip_stats 80 | (struct activity *, int, char *, int, unsigned long long); 81 | extern __print_funct_t render_net_eip_stats 82 | (struct activity *, int, char *, int, unsigned long long); 83 | extern __print_funct_t render_net_icmp_stats 84 | (struct activity *, int, char *, int, unsigned long long); 85 | extern __print_funct_t render_net_eicmp_stats 86 | (struct activity *, int, char *, int, unsigned long long); 87 | extern __print_funct_t render_net_tcp_stats 88 | (struct activity *, int, char *, int, unsigned long long); 89 | extern __print_funct_t render_net_etcp_stats 90 | (struct activity *, int, char *, int, unsigned long long); 91 | extern __print_funct_t render_net_udp_stats 92 | (struct activity *, int, char *, int, unsigned long long); 93 | extern __print_funct_t render_net_sock6_stats 94 | (struct activity *, int, char *, int, unsigned long long); 95 | extern __print_funct_t render_net_ip6_stats 96 | (struct activity *, int, char *, int, unsigned long long); 97 | extern __print_funct_t render_net_eip6_stats 98 | (struct activity *, int, char *, int, unsigned long long); 99 | extern __print_funct_t render_net_icmp6_stats 100 | (struct activity *, int, char *, int, unsigned long long); 101 | extern __print_funct_t render_net_eicmp6_stats 102 | (struct activity *, int, char *, int, unsigned long long); 103 | extern __print_funct_t render_net_udp6_stats 104 | (struct activity *, int, char *, int, unsigned long long); 105 | extern __print_funct_t render_pwr_cpufreq_stats 106 | (struct activity *, int, char *, int, unsigned long long); 107 | extern __print_funct_t render_pwr_fan_stats 108 | (struct activity *, int, char *, int, unsigned long long); 109 | extern __print_funct_t render_pwr_temp_stats 110 | (struct activity *, int, char *, int, unsigned long long); 111 | extern __print_funct_t render_pwr_in_stats 112 | (struct activity *, int, char *, int, unsigned long long); 113 | extern __print_funct_t render_huge_stats 114 | (struct activity *, int, char *, int, unsigned long long); 115 | extern __print_funct_t render_pwr_wghfreq_stats 116 | (struct activity *, int, char *, int, unsigned long long); 117 | 118 | #endif /* _RNDR_STATS_H */ 119 | -------------------------------------------------------------------------------- /sa1.in: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # @SA_LIB_DIR@/sa1 3 | # (C) 1999-2011 Sebastien Godard (sysstat orange.fr) 4 | # 5 | #@(#) @PACKAGE_NAME@-@PACKAGE_VERSION@ 6 | #@(#) sa1: Collect and store binary data in system activity data file. 7 | # 8 | HISTORY=0 9 | SADC_OPTIONS="" 10 | SYSCONFIG_DIR=@SYSCONFIG_DIR@ 11 | [ -r ${SYSCONFIG_DIR}/sysstat ] && . ${SYSCONFIG_DIR}/sysstat 12 | if [ ${HISTORY} -gt 28 ] 13 | then 14 | CURRENTDIR=`date +%Y%m` 15 | DATE=`date +%d` 16 | CURRENTFILE=sa${DATE} 17 | DDIR=@SA_DIR@ 18 | cd ${DDIR} || exit 1 19 | [ -d ${CURRENTDIR} ] || mkdir -p ${CURRENTDIR} 20 | # If ${CURRENTFILE} exists and is a regular file, then make sure 21 | # the file was modified this day (and not e.g. month ago) 22 | # and move it to ${CURRENTDIR} 23 | [ ! -L ${CURRENTFILE} ] && 24 | [ -f ${CURRENTFILE} ] && 25 | [ "`date +%Y%m%d -r ${CURRENTFILE}`" = "${CURRENTDIR}${DATE}" ] && 26 | mv -f ${CURRENTFILE} ${CURRENTDIR}/${CURRENTFILE} 27 | touch ${CURRENTDIR}/${CURRENTFILE} 28 | # Remove the "compatibility" link and recreate it to point to 29 | # the (new) current file 30 | rm -f ${CURRENTFILE} 31 | ln -s ${CURRENTDIR}/${CURRENTFILE} ${CURRENTFILE} 32 | fi 33 | umask 0022 34 | ENDIR=@SA_LIB_DIR@ 35 | cd ${ENDIR} 36 | [ "$1" = "--boot" ] && shift && BOOT=y || BOOT=n 37 | if [ $# = 0 ] && [ "${BOOT}" = "n" ] 38 | then 39 | # Note: Stats are written at the end of previous file *and* at the 40 | # beginning of the new one (when there is a file rotation) only if 41 | # outfile has been specified as '-' on the command line... 42 | exec ${ENDIR}/sadc -F -L ${SADC_OPTIONS} 1 1 - 43 | else 44 | exec ${ENDIR}/sadc -F -L ${SADC_OPTIONS} $* - 45 | fi 46 | 47 | -------------------------------------------------------------------------------- /sa2.in: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # @SA_LIB_DIR@/sa2 3 | # (C) 1999-2011 Sebastien Godard (sysstat orange.fr) 4 | # 5 | #@(#) @PACKAGE_NAME@-@PACKAGE_VERSION@ 6 | #@(#) sa2: Write a daily report 7 | # 8 | S_TIME_FORMAT=ISO ; export S_TIME_FORMAT 9 | umask 0022 10 | prefix=@prefix@ 11 | exec_prefix=@exec_prefix@ 12 | # Add a trailing slash so that 'find' can go through this directory if it's a symlink 13 | DDIR=@SA_DIR@/ 14 | SYSCONFIG_DIR=@SYSCONFIG_DIR@ 15 | YESTERDAY=@YESTERDAY@ 16 | DATE=`date ${YESTERDAY} +%d` 17 | CURRENTFILE=sa${DATE} 18 | CURRENTRPT=sar${DATE} 19 | HISTORY=@HISTORY@ 20 | COMPRESSAFTER=@COMPRESSAFTER@ 21 | ZIP="@ZIP@" 22 | [ -r ${SYSCONFIG_DIR}/sysstat ] && . ${SYSCONFIG_DIR}/sysstat 23 | if [ ${HISTORY} -gt 28 ] 24 | then 25 | CURRENTDIR=`date ${YESTERDAY} +%Y%m` 26 | cd ${DDIR} || exit 1 27 | [ -d ${CURRENTDIR} ] || mkdir -p ${CURRENTDIR} 28 | # Check if ${CURRENTFILE} is the correct file created at ${DATE} 29 | # Note: using `-ge' instead of `=' since the file could have 30 | # the next day time stamp because of the file rotating feature of sadc 31 | [ -f ${CURRENTFILE} ] && 32 | [ "`date +%Y%m%d -r ${CURRENTFILE}`" -ge "${CURRENTDIR}${DATE}" ] || exit 0 33 | # If the file is a regular file, then move it to ${CURRENTDIR} 34 | [ ! -L ${CURRENTFILE} ] && 35 | mv -f ${CURRENTFILE} ${CURRENTDIR}/${CURRENTFILE} && 36 | ln -s ${CURRENTDIR}/${CURRENTFILE} ${CURRENTFILE} 37 | touch ${CURRENTDIR}/${CURRENTRPT} 38 | # Remove the "compatibility" link and recreate it to point to 39 | # the (new) current file 40 | rm -f ${CURRENTRPT} 41 | ln -s ${CURRENTDIR}/${CURRENTRPT} ${CURRENTRPT} 42 | CURRENTDIR=${DDIR}/${CURRENTDIR} 43 | else 44 | CURRENTDIR=${DDIR} 45 | fi 46 | RPT=${CURRENTDIR}/${CURRENTRPT} 47 | ENDIR=@bindir@ 48 | DFILE=${CURRENTDIR}/${CURRENTFILE} 49 | [ -f "$DFILE" ] || exit 0 50 | cd ${ENDIR} 51 | [ -L ${RPT} ] && rm -f ${RPT} 52 | ${ENDIR}/sar $* -f ${DFILE} > ${RPT} 53 | find ${DDIR} \( -name 'sar??' -o -name 'sa??' -o -name 'sar??.gz' -o -name 'sa??.gz' -o -name 'sar??.bz2' -o -name 'sa??.bz2' \) \ 54 | -mtime +"${HISTORY}" -exec rm -f {} \; 55 | find ${DDIR} \( -name 'sar??' -o -name 'sa??' \) -type f -mtime +"${COMPRESSAFTER}" \ 56 | -exec ${ZIP} {} \; > /dev/null 2>&1 57 | # Remove broken links 58 | for f in `find ${DDIR} \( -name 'sar??' -o -name 'sa??' \) -type l`; do 59 | [ -e $f ] || rm -f $f 60 | done 61 | cd ${DDIR} 62 | rmdir [0-9]????? > /dev/null 2>&1 63 | 64 | -------------------------------------------------------------------------------- /sadf.h: -------------------------------------------------------------------------------- 1 | /* 2 | * sadf: System activity data formatter 3 | * (C) 1999-2011 by Sebastien Godard (sysstat orange.fr) 4 | */ 5 | 6 | #ifndef _SADF_H 7 | #define _SADF_H 8 | 9 | /* Output formats (O_= Output) */ 10 | #define S_O_HDR_OPTION 1 11 | #define S_O_PPC_OPTION 2 12 | #define S_O_DB_OPTION 3 13 | #define S_O_XML_OPTION 4 14 | #define S_O_DBD_OPTION 5 15 | 16 | /* DTD version for XML output */ 17 | #define XML_DTD_VERSION "2.10" 18 | 19 | #endif /* _SADF_H */ 20 | -------------------------------------------------------------------------------- /sysconfig.in: -------------------------------------------------------------------------------- 1 | /* 2 | * sysstat: System performance tools for Linux 3 | * (C) 1999-2011 by Sebastien Godard (sysstat orange.fr) 4 | */ 5 | 6 | #ifndef _SYSCONFIG_H 7 | #define _SYSCONFIG_H 8 | 9 | /* sysstat configuration directory */ 10 | #define IOCONF "@SYSCONFIG_DIR@/sysstat.ioconf" 11 | #define LOCAL_IOCONF "./sysstat.ioconf" 12 | 13 | #endif /* _SYSCONFIG_H */ 14 | -------------------------------------------------------------------------------- /sysstat-10.0.0.lsm: -------------------------------------------------------------------------------- 1 | Begin4 2 | Title: sysstat - the sar, sadf, mpstat, iostat, nfsiostat, cifsiostat and pidstat commands for Linux 3 | Version: 10.0.0 4 | Entered-date: 2011-03-15 5 | Description: The sysstat package contains the sar, sadf, mpstat, iostat, 6 | pidstat, nfsiostat, cifsiostat and sa tools for Linux. 7 | The sar command collects and reports system activity 8 | information. 9 | The information collected by sar can be saved in a file 10 | in a binary format for future inspection. 11 | The statistics reported by sar concern I/O transfer rates, 12 | paging activity, process-related activities, interrupts, 13 | network activity, memory and swap space utilization, CPU 14 | utilization, kernel activities and TTY statistics, among 15 | others. Both UP and SMP machines are fully supported. 16 | The iostat command reports CPU utilization 17 | and I/O statistics for disks. The mpstat command reports 18 | global and per-processor statistics. The sadf command 19 | is used to display data collected by sar in various 20 | formats (XML, database-friendly, etc.). 21 | The pidstat command reports statistics for Linux tasks (processes). 22 | The nfsiostat command reports I/O statistics for network filesystems. 23 | The cifsiostat command reports I/O statistics for CIFS filesystems. 24 | NB: Send bugs, patches, suggestions and/or questions to 25 | (sysstat [at] orange.fr) and not to the address below! 26 | URL: http://pagesperso-orange.fr/sebastien.godard/ 27 | Keywords: system administration, sar, sadf, iostat, mpstat, pidstat, nfsiostat, cifsiostat, system accounting, performance, tuning 28 | Author: sebastien.godard@orange.fr (Sebastien Godard) 29 | Maintained-by: sebastien.godard@orange.fr (Sebastien Godard) 30 | Primary-site: http://pagesperso-orange.fr/sebastien.godard/ 31 | 323kB sysstat-10.0.0.tar.gz 32 | 256kB sysstat-10.0.0.tar.bz2 33 | 327kB sysstat-10.0.0-1.src.rpm 34 | 322kB sysstat-10.0.0-1.i586.rpm 35 | Alternate-site: ibiblio.org /pub/linux/system/status 36 | Copying-policy: GPL 37 | End 38 | -------------------------------------------------------------------------------- /sysstat-10.0.0.spec: -------------------------------------------------------------------------------- 1 | Summary: SAR, SADF, MPSTAT, IOSTAT, NFSIOSTAT, CIFSIOSTAT and PIDSTAT for Linux 2 | Name: sysstat 3 | Version: 10.0.0 4 | Release: 1 5 | License: GPL 6 | Group: Applications/System 7 | Source0: %{name}-%{version}.tar.gz 8 | URL: http://pagesperso-orange.fr/sebastien.godard/ 9 | Packager: Damien Faure 10 | BuildRoot: %{_tmppath}/%{name}-%{version}-root-%(id -u -n) 11 | Requires: gettext 12 | 13 | %description 14 | The sysstat package contains the sar, sadf, mpstat, iostat, pidstat, 15 | nfsiostat, cifsiostat and sa tools for Linux. 16 | The sar command collects and reports system activity information. 17 | The information collected by sar can be saved in a file in a binary 18 | format for future inspection. The statistics reported by sar concern 19 | I/O transfer rates, paging activity, process-related activities, 20 | interrupts, network activity, memory and swap space utilization, CPU 21 | utilization, kernel activities and TTY statistics, among others. Both 22 | UP and SMP machines are fully supported. 23 | The sadf command may be used to display data collected by sar in 24 | various formats (CSV, XML, etc.). 25 | The iostat command reports CPU utilization and I/O statistics for disks. 26 | The mpstat command reports global and per-processor statistics. 27 | The pidstat command reports statistics for Linux tasks (processes). 28 | The nfsiostat command reports I/O statistics for network filesystems. 29 | The cifsiostat command reports I/O statistics for CIFS filesystems. 30 | 31 | %prep 32 | %setup 33 | 34 | %build 35 | ./configure --prefix=%{_prefix} \ 36 | sa_lib_dir=%{_libdir}/sa \ 37 | --mandir=%{_mandir} \ 38 | DESTDIR=$RPM_BUILD_ROOT 39 | make 40 | 41 | %install 42 | rm -rf $RPM_BUILD_ROOT 43 | install -d $RPM_BUILD_ROOT/var/log/sa 44 | 45 | make install 46 | 47 | mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d 48 | install -m 755 sysstat $RPM_BUILD_ROOT/etc/rc.d/init.d/sysstat 49 | mkdir -p $RPM_BUILD_ROOT/etc/sysconfig 50 | install -m 644 sysstat.sysconfig $RPM_BUILD_ROOT/etc/sysconfig/sysstat 51 | install -m 644 sysstat.ioconf $RPM_BUILD_ROOT/etc/sysconfig/sysstat.ioconf 52 | mkdir -p $RPM_BUILD_ROOT/etc/cron.d 53 | install -m 644 cron/sysstat.crond.sample $RPM_BUILD_ROOT/etc/cron.d/sysstat 54 | mkdir -p $RPM_BUILD_ROOT/etc/rc2.d 55 | cd $RPM_BUILD_ROOT/etc/rc2.d && ln -sf ../init.d/sysstat S01sysstat 56 | mkdir -p $RPM_BUILD_ROOT/etc/rc3.d 57 | cd $RPM_BUILD_ROOT/etc/rc3.d && ln -sf ../init.d/sysstat S01sysstat 58 | mkdir -p $RPM_BUILD_ROOT/etc/rc5.d 59 | cd $RPM_BUILD_ROOT/etc/rc5.d && ln -sf ../init.d/sysstat S01sysstat 60 | 61 | %clean 62 | rm -rf $RPM_BUILD_ROOT 63 | 64 | %files 65 | %defattr(644,root,root,755) 66 | %doc %{_datadir}/doc/sysstat-%{version}/* 67 | %attr(755,root,root) %{_bindir}/* 68 | %attr(755,root,root) %{_libdir}/sa/* 69 | %attr(644,root,root) %{_mandir}/man*/* 70 | %attr(644,root,root) %{_datadir}/locale/*/LC_MESSAGES/sysstat.mo 71 | %attr(755,root,root) %dir /var/log/sa 72 | %attr(755,root,root) /etc/rc.d/init.d/sysstat 73 | %attr(644,root,root) /etc/sysconfig/sysstat 74 | %attr(644,root,root) /etc/sysconfig/sysstat.ioconf 75 | %attr(755,root,root) /etc/rc2.d/S01sysstat 76 | %attr(755,root,root) /etc/rc3.d/S01sysstat 77 | %attr(755,root,root) /etc/rc5.d/S01sysstat 78 | %config(noreplace) %attr(0644,root,root) /etc/cron.d/sysstat 79 | 80 | -------------------------------------------------------------------------------- /sysstat.in: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # chkconfig: 12345 01 99 4 | # @INIT_DIR@/sysstat 5 | # (C) 2000-2011 Sebastien Godard (sysstat orange.fr) 6 | # 7 | ### BEGIN INIT INFO 8 | # Provides: sysstat 9 | # Required-Start: 10 | # Required-Stop: 11 | # Default-Stop: 12 | # Description: Reset the system activity logs 13 | # Short-Description: Reset the system activity logs 14 | ### END INIT INFO 15 | #@(#) @PACKAGE_NAME@-@PACKAGE_VERSION@ startup script: 16 | #@(#) Insert a dummy record in current daily data file. 17 | #@(#) This indicates that the counters have restarted from 0. 18 | 19 | RETVAL=0 20 | 21 | # See how we were called. 22 | case "$1" in 23 | start) 24 | exitCodeIndicator="$(mktemp /tmp/sysstat-XXXXXX)" || exit 1 25 | echo -n "Calling the system activity data collector (sadc): " 26 | @SU_C_OWNER@ @QUOTE@ @SA_LIB_DIR@/sa1 --boot || rm -f ${exitCodeIndicator} @QUOTE@ 27 | 28 | # Try to guess if sadc was successfully launched. The difficulty 29 | # here is that the exit code is lost when the above command is 30 | # run via "su foo -c ..." 31 | if [ -f "${exitCodeIndicator}" ]; then 32 | rm -f ${exitCodeIndicator} 33 | else 34 | RETVAL=2 35 | fi 36 | echo 37 | ;; 38 | stop|status|restart|reload|force-reload|condrestart|try-restart) 39 | ;; 40 | *) 41 | echo "Usage: sysstat {start|stop|status|restart|reload|force-reload|condrestart|try-restart}" 42 | exit 2 43 | esac 44 | exit ${RETVAL} 45 | 46 | -------------------------------------------------------------------------------- /sysstat.ioconf: -------------------------------------------------------------------------------- 1 | # 2 | # sysstat.ioconf 3 | # 4 | # Copyright (C) 2004, Red Hat, Inc. 5 | # 6 | # Maintained by Sebastien Godard (sysstat [at] orange.fr) 7 | # 8 | # This file gives iostat and sadc a clue about how to find whole 9 | # disk devices in /proc/partitions and /proc/diskstats 10 | # Authoritative source is: linux/Documentation/devices.txt 11 | # 12 | # line format, general record: 13 | # major:name:ctrlpre:ctrlno:devfmt:devcnt:partpre:partcnt:description 14 | # 15 | # major: major # for device 16 | # name: base of device name 17 | # ctrlpre: string to use in generating controller designators 18 | # eg: the c in c0d2p6, decimal formatting implied 19 | # '*' means none or irrelevant 20 | # 'x': exception... record contains a specific name 21 | # for a specific minor #, stored in the ctrlno field 22 | # ctrlno: which controller of this type is this 23 | # devfmt: type of device naming convention 24 | # a: alpha: xxa, xxb, ... xxaa, xxab, ... xxzz 25 | # %string: string to use in generating drive designators, 26 | # eg: the 'd' in c0d2p6 , decimal formatting implied 27 | # d: no special translations (decimal formatting) 28 | # devcnt: how many whole devs per major number 29 | # partpre: appended to whole dev before part designator 30 | # eg. the p in c0d2p6, decimal formatting implied 31 | # '*' means none 32 | # partcnt: number of partitions per volume 33 | # or minor # for exception records 34 | # description: informative text 35 | # 36 | # line format, indirect record: 37 | # major:base_major:ctrlno[:[desc]] 38 | # 39 | # major: major number of the device 40 | # base_major: major number of the template for this type, 41 | # 0 for not supported 42 | # ctrlno: controller number of this type 43 | # desc: controller-specific description 44 | # if absent the desc from base_major will be 45 | # used in sprintf( buf, desc, ctrlno ) 46 | 47 | 48 | 1:ram:*:0:d:256:*:1:RAM disks (ram0..ram255) 49 | 1:initrd:x:250:d:256:*:1:Initial RAM Disk (initrd) 50 | 51 | #2:0:0:Floppy Devices 52 | 2:fd:*:0:d:4:*:1:Floppy Devices fd0,fd1,fd2,fd3 53 | 54 | 3:hd:*:0:a:2:*:64:IDE - Controller %d 55 | 22:3:1: 56 | 33:3:2: 57 | 34:3:3: 58 | 56:3:4: 59 | 57:3:5: 60 | 88:3:6: 61 | 89:3:7: 62 | 90:3:8: 63 | 91:3:9: 64 | 65 | #4:0:0:NODEV 66 | #5:0:0:NODEV 67 | #6:0:0:NODEV 68 | 7:loop:*:0:d:256:*:1:Loop Devices 69 | 70 | 8:sd:*:0:a:16:*:16:SCSI - Controller %d 71 | 65:8:1: 72 | 66:8:2: 73 | 67:8:3: 74 | 68:8:4: 75 | 69:8:5: 76 | 70:8:6: 77 | 71:8:7: 78 | 128:8:8: 79 | 129:8:9: 80 | 130:8:10: 81 | 131:8:11: 82 | 132:8:12: 83 | 133:8:13: 84 | 134:8:14: 85 | 135:8:15: 86 | 87 | 9:md:*:0:d:256:*:1:Metadisk (Software RAID) devices (md0..md255) 88 | 89 | #10:0:0:NODEV 90 | 91 | #11:sr:*:0:d:256:*:1:CDROM - CDROM (sr0..sr255) (deprecated) 92 | 11:scd:*:0:d:256:*:1:CDROM - CDROM (scd0..scd255) 93 | 94 | #12:0:0:MSCDEX CD-ROM Callback 95 | 96 | 13:xd:*:0:a:2:*:64:8-bit MFM/RLL/IDE controller (xda, xdb) 97 | 98 | #14:0:0:BIOS Hard Drive Callback 99 | #15:0:0:CDROM - Sony CDU-31A/CDU-33A 100 | #16:0:0:CDROM - Goldstar 101 | #17:0:0:CDROM - Optics Storage 102 | #18:0:0:CDROM - Sanyo 103 | 104 | 19:double:*:0:d:256:*:1:Compressed Disk (double0..double255) 105 | 106 | #20:0:0:CDROM - Hitachi 107 | 108 | 21:mfm:*:0:a:2:*:64:Acorn MFM Hard Drive (mfma, mfmb) 109 | 110 | # 22: see IDE, dev 3 111 | 112 | #23:0:0:CDROM - Mistumi Proprietary 113 | #24:0:0:CDROM - Sony CDU-535 114 | #25:0:0:CDROM - Matsushita (Panasonic/Soundblaster) #1 115 | #26:0:1:CDROM - Matsushita (Panasonic/Soundblaster) #2 116 | #27:0:2:CDROM - Matsushita (Panasonic/Soundblaster) #3 117 | #28:0:3:CDROM - Matsushita (Panasonic/Soundblaster) #4 118 | # 28:0:0:! ACSI (Atari) Disk Not Supported 119 | #29:0:0:CDROM - Aztech/Orchid/Okano/Wearnes 120 | #30:0:0:CDROM - Philips LMS CM-205 121 | #31:0:0:ROM/flash Memory Card 122 | #32:0:0:CDROM - Phillips LMS CM-206 123 | 124 | # 33: See IDE, dev 3 125 | # 34: See IDE, dev 3 126 | 127 | #35:0:0:Slow Memory RAM Disk 128 | 129 | 36:ed:*:0:a:2:*:64:MCA ESDI Hard Disk (eda, edb) 130 | 131 | #37:0:0:Zorro II Ram Disk 132 | #38:0:0:Reserved For Linux/AP+ 133 | #39:0:0:Reserved For Linux/AP+ 134 | #40:0:0:Syquest EZ135 Parallel Port Drive 135 | #41:0:0:CDROM - MicroSolutions Parallel Port BackPack 136 | #42:0:0:For DEMO Use Only 137 | 138 | 43:nb:*:0:d:256:*:1:Network Block devices (nb0..nb255) 139 | 44:ftl:*:0:a:16:*:16:Flash Translation Layer (ftla..ftlp) 140 | 45:pd:*:0:a:4:*:16:Parallel Port IDE (pda..pdd) 141 | 142 | #46:0:0:CDROM - Parallel Port ATAPI 143 | 144 | 47:pf:*:0:d:256:*:1:Parallel Port ATAPI Disk Devices (pf0..pf255) 145 | 146 | 48:rd:/c:0:%d:32:p:8:Mylex DAC960 RAID, Controller %d 147 | 49:48:1: 148 | 50:48:2: 149 | 51:48:3: 150 | 52:48:4: 151 | 53:48:5: 152 | 54:48:6: 153 | 55:48:7: 154 | 136:48:8: 155 | 137:48:9: 156 | 138:48:10: 157 | 139:48:11: 158 | 140:48:12: 159 | 141:48:13: 160 | 142:48:14: 161 | 143:48:15: 162 | 163 | # 56, 57: see IDE, dev 3: 164 | 165 | 58:lvm:*:0:d:256:*:1:Logical Volume Manager (lvm0..lvm255) 166 | 167 | #59:0:0:PDA Filesystem Device 168 | #60:0:0:Local/Experimental Use 169 | #61:0:0:Local/Experimental Use 170 | #62:0:0:Local/Experimental Use 171 | #63:0:0:Local/Experimental Use 172 | #64:0:0:NODEV 173 | 174 | # 65..71: See SCSI, dev 8: 175 | 176 | 72:ida/:c:0:%d:16:p:16:Compaq Intelligent Drive Array - Controller %d 177 | 73:72:1: 178 | 74:72:2: 179 | 75:72:3: 180 | 76:72:4: 181 | 77:72:5: 182 | 78:72:6: 183 | 79:72:7: 184 | 185 | 80:i2o/hd:*:0:a:16:*:16:I2O Disk - Controller %d 186 | 81:80:1: 187 | 82:80:2: 188 | 83:80:3: 189 | 84:80:4: 190 | 85:80:5: 191 | 86:80:6: 192 | 87:80:7: 193 | 194 | # 88..91: see IDE, dev 3: 195 | 196 | #92:0:0:PPDD Encrypted Disk 197 | #93:0:0:NAND Flash Translation Layer not supported 198 | 199 | 94:dasd:*:0:a:64:*:4:IBM S/390 DASD Block Storage (dasda, dasdb, ...) 200 | 201 | #95:0:0:IBM S/390 VM/ESA Minidisk 202 | #96:0:0:NODEV 203 | #97:0:0:CD/DVD packed writing devices not supported 204 | 205 | 98:ubd:*:0:d:256:*:1:User-mode Virtual Block Devices (ubd0..ubd256) 206 | 207 | #99:0:0:JavaStation Flash Disk 208 | #100:0:0:NODEV 209 | 210 | 101:amiraid/ar:*:0:d:16:p:16:AMI HyperDisk RAID (amiraid/ar0 - amiraid/ar15) 211 | 212 | #102:0:0:Compressed Block Device 213 | #103:0:0:Audit Block Device 214 | 215 | 104:cciss:/c:0:%d:16:p:16:HP SA 5xxx/6xxx (cciss) Controller %d 216 | 105:104:1: 217 | 106:104:2: 218 | 107:104:3: 219 | 108:104:4: 220 | 109:104:5: 221 | 110:104:6: 222 | 111:104:7: 223 | 224 | 112:iseries/vd:*:0:a:32:*:8:IBM iSeries Virtual Disk (.../vda - .../vdaf) 225 | 226 | #113:0:0:CDROM - IBM iSeries Virtual 227 | 228 | # 114..159 NODEV 229 | 230 | 120:emcpower:*:0:a:16:*:16:EMC PowerPath Unit %d 231 | 232 | #160:sx8/:*:0:d:8:p:32:Promise SATA SX8 Unit %d 233 | #161:160:1: 234 | 160:carmel/:*:0:d:8:p:32:Carmel 8-port SATA Disks (carmel/0 - carmel/7) 235 | 161:160:1: 236 | 237 | # 162..198 UNUSED 238 | 239 | 180:ub:*:0:a:32:p:8:USB block devices 240 | 241 | #199:0:0:Veritas Volume Manager (VxVM) Volumes 242 | #200:0:0:NODEV 243 | #201:0:0:Veritas VxVM Dynamic Multipathing Driver 244 | 245 | 202:xvd:*:0:a:16:p:16:Xen Virtual Block Device 246 | 247 | # 203..230: UNUSED 248 | 249 | 232:emcpower:*:0:a:16:*:16:EMC PowerPath Unit %d 250 | 233:232:1: 251 | 234:232:2: 252 | 235:232:3: 253 | 236:232:4: 254 | 237:232:5: 255 | 238:232:6: 256 | 239:232:7: 257 | 240:232:8: 258 | 241:232:9: 259 | 242:232:10: 260 | 243:232:11: 261 | 244:232:12: 262 | 245:232:13: 263 | 246:232:14: 264 | 247:232:15: 265 | 266 | # 240..254: LOCAL/Experimental 267 | # 255: reserved for big dev_t expansion 268 | 269 | -------------------------------------------------------------------------------- /sysstat.sysconfig.in: -------------------------------------------------------------------------------- 1 | # @PACKAGE_NAME@-@PACKAGE_VERSION@ configuration file. 2 | 3 | # How long to keep log files (in days). 4 | # If value is greater than 28, then log files are kept in 5 | # multiple directories, one for each month. 6 | HISTORY=@HISTORY@ 7 | 8 | # Compress (using gzip or bzip2) sa and sar files older than (in days): 9 | COMPRESSAFTER=@COMPRESSAFTER@ 10 | 11 | # Parameters for the system activity data collector (see sadc manual page) 12 | # which are used for the generation of log files. 13 | SADC_OPTIONS="" 14 | 15 | -------------------------------------------------------------------------------- /version.in: -------------------------------------------------------------------------------- 1 | /* 2 | * sysstat: System performance tools for Linux 3 | * (C) 1999-2011 by Sebastien Godard (sysstat orange.fr) 4 | */ 5 | 6 | #ifndef _VERSION_H 7 | #define _VERSION_H 8 | 9 | /* sysstat version number */ 10 | #define VERSION "@PACKAGE_VERSION@" 11 | 12 | #endif /* _VERSION_H */ 13 | -------------------------------------------------------------------------------- /xml_stats.h: -------------------------------------------------------------------------------- 1 | /* 2 | * xml_stats.h: Include file used to display system statistics in XML. 3 | * (C) 1999-2011 by Sebastien Godard (sysstat orange.fr) 4 | */ 5 | 6 | #ifndef _PRF_STATS_H 7 | #define _PRF_STATS_H 8 | 9 | #include "common.h" 10 | 11 | /* 12 | *************************************************************************** 13 | * Prototypes for functions used to display system statistics in XML. 14 | *************************************************************************** 15 | */ 16 | 17 | /* Functions used to display statistics in XML */ 18 | extern void xprintf 19 | (int, const char *, ...); 20 | extern __print_funct_t xml_print_cpu_stats 21 | (struct activity *, int, int, unsigned long long); 22 | extern __print_funct_t xml_print_pcsw_stats 23 | (struct activity *, int, int, unsigned long long); 24 | extern __print_funct_t xml_print_irq_stats 25 | (struct activity *, int, int, unsigned long long); 26 | extern __print_funct_t xml_print_swap_stats 27 | (struct activity *, int, int, unsigned long long); 28 | extern __print_funct_t xml_print_paging_stats 29 | (struct activity *, int, int, unsigned long long); 30 | extern __print_funct_t xml_print_io_stats 31 | (struct activity *, int, int, unsigned long long); 32 | extern __print_funct_t xml_print_memory_stats 33 | (struct activity *, int, int, unsigned long long); 34 | extern __print_funct_t xml_print_ktables_stats 35 | (struct activity *, int, int, unsigned long long); 36 | extern __print_funct_t xml_print_queue_stats 37 | (struct activity *, int, int, unsigned long long); 38 | extern __print_funct_t xml_print_serial_stats 39 | (struct activity *, int, int, unsigned long long); 40 | extern __print_funct_t xml_print_disk_stats 41 | (struct activity *, int, int, unsigned long long); 42 | extern __print_funct_t xml_print_net_dev_stats 43 | (struct activity *, int, int, unsigned long long); 44 | extern __print_funct_t xml_print_net_edev_stats 45 | (struct activity *, int, int, unsigned long long); 46 | extern __print_funct_t xml_print_net_nfs_stats 47 | (struct activity *, int, int, unsigned long long); 48 | extern __print_funct_t xml_print_net_nfsd_stats 49 | (struct activity *, int, int, unsigned long long); 50 | extern __print_funct_t xml_print_net_sock_stats 51 | (struct activity *, int, int, unsigned long long); 52 | extern __print_funct_t xml_print_net_ip_stats 53 | (struct activity *, int, int, unsigned long long); 54 | extern __print_funct_t xml_print_net_eip_stats 55 | (struct activity *, int, int, unsigned long long); 56 | extern __print_funct_t xml_print_net_icmp_stats 57 | (struct activity *, int, int, unsigned long long); 58 | extern __print_funct_t xml_print_net_eicmp_stats 59 | (struct activity *, int, int, unsigned long long); 60 | extern __print_funct_t xml_print_net_tcp_stats 61 | (struct activity *, int, int, unsigned long long); 62 | extern __print_funct_t xml_print_net_etcp_stats 63 | (struct activity *, int, int, unsigned long long); 64 | extern __print_funct_t xml_print_net_udp_stats 65 | (struct activity *, int, int, unsigned long long); 66 | extern __print_funct_t xml_print_net_sock6_stats 67 | (struct activity *, int, int, unsigned long long); 68 | extern __print_funct_t xml_print_net_ip6_stats 69 | (struct activity *, int, int, unsigned long long); 70 | extern __print_funct_t xml_print_net_eip6_stats 71 | (struct activity *, int, int, unsigned long long); 72 | extern __print_funct_t xml_print_net_icmp6_stats 73 | (struct activity *, int, int, unsigned long long); 74 | extern __print_funct_t xml_print_net_eicmp6_stats 75 | (struct activity *, int, int, unsigned long long); 76 | extern __print_funct_t xml_print_net_udp6_stats 77 | (struct activity *, int, int, unsigned long long); 78 | extern __print_funct_t xml_print_pwr_cpufreq_stats 79 | (struct activity *, int, int, unsigned long long); 80 | extern __print_funct_t xml_print_pwr_fan_stats 81 | (struct activity *, int, int, unsigned long long); 82 | extern __print_funct_t xml_print_pwr_temp_stats 83 | (struct activity *, int, int, unsigned long long); 84 | extern __print_funct_t xml_print_pwr_in_stats 85 | (struct activity *, int, int, unsigned long long); 86 | extern __print_funct_t xml_print_huge_stats 87 | (struct activity *, int, int, unsigned long long); 88 | extern __print_funct_t xml_print_pwr_wghfreq_stats 89 | (struct activity *, int, int, unsigned long long); 90 | 91 | #endif /* _XML_STATS_H */ 92 | --------------------------------------------------------------------------------