Projet

Général

Profil

Paste
Télécharger au format
Statistiques
| Branche: | Révision:

root / tools / munin-plugins-busybox / load.c @ 20993707

Historique | Voir | Annoter | Télécharger (972 octets)

1
#include <stdio.h>
2
#include <string.h>
3
#include <stdlib.h>
4
#include "common.h"
5

    
6
int load(int argc, char **argv) {
7
        FILE *f;
8
        int warn, crit;
9
        float val;
10
        char *s;
11
        if(argc > 1) {
12
                if(!strcmp(argv[1], "config")) {
13
                        s = getenv("load_warn");
14
                        if(s)
15
                                warn = atoi(s);
16
                        else
17
                                warn = 10;
18
                        s = getenv("load_crit");
19
                        if(s)
20
                                crit = atoi(s);
21
                        else
22
                                crit = 120;
23
                        puts("graph_title Load average\n"
24
                                "graph_args --base 1000 -l 0\n"
25
                                "graph_vlabel load\n"
26
                                "graph_scale no\n"
27
                                "graph_category system\n"
28
                                "load.label load");
29
                        printf("load.warning %d\nload.critical %d\n", warn, crit);
30
                        return 0;
31
                }
32
                if(!strcmp(argv[1], "autoconf"))
33
                        return writeyes();
34
        }
35
        if(!(f=fopen("/proc/loadavg", "r"))) {
36
                fputs("cannot open /proc/loadavg\n", stderr);
37
                return 1;
38
        }
39
        if(1 != fscanf(f, "%*f %f", &val)) {
40
                fputs("cannot read from /proc/loadavg\n", stderr);
41
                fclose(f);
42
                return 1;
43
        }
44
        fclose(f);
45
        printf("load.value %.2f\n", val);
46
        return 0;
47
}