diff options
| author | hugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2001-10-05 19:02:42 +0000 |
|---|---|---|
| committer | hugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2001-10-05 19:02:42 +0000 |
| commit | 6a13da2566db76fd92daae387099720e1b2cdf22 (patch) | |
| tree | ef7239ca34847437280bab1fad2ed1a0c67b44ea /src | |
| parent | b20048514432031cb1cab82dc1f8594063609aae (diff) | |
| download | zabbix-6a13da2566db76fd92daae387099720e1b2cdf22.tar.gz zabbix-6a13da2566db76fd92daae387099720e1b2cdf22.tar.xz zabbix-6a13da2566db76fd92daae387099720e1b2cdf22.zip | |
New type of parameters: parameter[*], actual value of "*" can
be passed from Zabbix server (Alexei)
git-svn-id: svn://svn.zabbix.com/trunk@229 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'src')
| -rw-r--r-- | src/zabbix_agent/sysinfo.c | 75 |
1 files changed, 45 insertions, 30 deletions
diff --git a/src/zabbix_agent/sysinfo.c b/src/zabbix_agent/sysinfo.c index 70efe271..ad2b1966 100644 --- a/src/zabbix_agent/sysinfo.c +++ b/src/zabbix_agent/sysinfo.c @@ -77,15 +77,7 @@ COMMAND commands[]= { - {"proc_cnt[apache]" ,PROCCNT, "apache"}, - {"proc_cnt[inetd]" ,PROCCNT, "inetd"}, - {"proc_cnt[mysqld]" ,PROCCNT, "mysqld"}, - {"proc_cnt[syslogd]" ,PROCCNT, "syslogd"}, - {"proc_cnt[sshd]" ,PROCCNT, "sshd"}, - - {"proc_cnt[zabbix_agentd]" ,PROCCNT, "zabbix_agentd"}, - {"proc_cnt[zabbix_suckerd]" ,PROCCNT, "zabbix_suckerd"}, - {"proc_cnt[zabbix_trapperd]" ,PROCCNT, "zabbix_trapperd"}, + {"proc_cnt[*]" ,PROCCNT, "inetd"}, {"memory[total]" ,TOTALMEM, 0}, {"memory[shared]" ,SHAREDMEM, 0}, @@ -93,19 +85,9 @@ COMMAND commands[]= {"memory[cached]" ,CACHEDMEM, 0}, {"memory[free]" ,FREEMEM, 0}, - {"diskfree[/]" ,DF, "/"}, - {"diskfree[/opt]" ,DF, "/opt"}, - {"diskfree[/tmp]" ,DF, "/tmp"}, - {"diskfree[/usr]" ,DF, "/usr"}, - {"diskfree[/home]" ,DF, "/home"}, - {"diskfree[/var]" ,DF, "/var"}, + {"diskfree[*]" ,DF, "/"}, - {"inodefree[/]" ,INODE, "/"}, - {"inodefree[/opt]" ,INODE, "/opt"}, - {"inodefree[/tmp]" ,INODE, "/tmp"}, - {"inodefree[/usr]" ,INODE, "/usr"}, - {"inodefree[/home]" ,INODE, "/home"}, - {"inodefree[/var]" ,INODE, "/var"}, + {"inodefree[*]" ,INODE, "/"}, {"cksum[/etc/inetd_conf]" ,EXECUTE, "(cksum /etc/inetd.conf 2>/dev/null || echo '-2') | cut -f1 -d' '"}, {"cksum[/etc/services]" ,EXECUTE, "(cksum /etc/services 2>/dev/null || echo '-2') | cut -f1 -d' '"}, @@ -114,7 +96,7 @@ COMMAND commands[]= {"cksum[/usr/sbin/sshd]" ,EXECUTE, "(cksum /usr/sbin/sshd 2>/dev/null || echo '-2') | cut -f1 -d' '"}, {"cksum[/usr/bin/ssh]" ,EXECUTE, "(cksum /usr/bin/ssh 2>/dev/null || echo '-2') | cut -f1 -d' '"}, - {"filesize[/var/log/syslog]" ,FILESIZE, "/var/log/syslog"}, + {"filesize[*]" ,FILESIZE, "/var/log/syslog"}, {"swap[free]" ,SWAPFREE, 0}, {"swap[total]" ,SWAPTOTAL, 0}, @@ -256,27 +238,60 @@ float process(char *command) char *p; float result; int i; + char *n,*l,*r; float (*function)(); char *parameter = NULL; + char key[1024]; + char param[1024]; + char cmd[1024]; for( p=command+strlen(command)-1; p>command && ( *p=='\r' || *p =='\n' || *p == ' ' ); --p ); p[1]=0; - i=0; - for(;;) + for(i=0;;i++) { if( commands[i].key == 0) { function=0; break; } - if( strcmp(commands[i].key,command) == 0) + + strcpy(key, commands[i].key); + + if( (n = strstr(key,"[*]")) != NULL) { - function=commands[i].function; - parameter=commands[i].parameter; - break; - } - i++; + n[0]=0; + + l=strstr(command,"["); + r=strstr(command,"]"); + + if( (l==NULL)||(r==NULL) ) + { + continue; + } + + strncpy( param,l+1, r-l-1); + param[r-l-1]=0; + + strncpy( cmd, command, l-command); + cmd[l-command]=0; + + if( strcmp(key, cmd) == 0) + { + function=commands[i].function; + parameter=param; + break; + } + } + else + { + if( strcmp(key,command) == 0) + { + function=commands[i].function; + parameter=commands[i].parameter; + break; + } + } } if( function !=0 ) |
