diff options
author | hugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2006-07-07 12:07:51 +0000 |
---|---|---|
committer | hugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2006-07-07 12:07:51 +0000 |
commit | bfd3e07a5eed7eef2384f42217f49eb25599c740 (patch) | |
tree | e8184766e7ef3ff211d323837a31cd4f12287ac7 /src | |
parent | 8c158ab11193523f8bcf000385f4f624b9314f97 (diff) | |
download | zabbix-bfd3e07a5eed7eef2384f42217f49eb25599c740.tar.gz zabbix-bfd3e07a5eed7eef2384f42217f49eb25599c740.tar.xz zabbix-bfd3e07a5eed7eef2384f42217f49eb25599c740.zip |
- added removal of stat file on agent shutdown (Alexei)
- added new parameter StatFile to ZABBIX config file (Alexei)
git-svn-id: svn://svn.zabbix.com/trunk@3021 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'src')
-rw-r--r-- | src/zabbix_agent/stats.c | 31 | ||||
-rw-r--r-- | src/zabbix_agent/zabbix_agentd.c | 15 |
2 files changed, 32 insertions, 14 deletions
diff --git a/src/zabbix_agent/stats.c b/src/zabbix_agent/stats.c index a0b70689..25e01046 100644 --- a/src/zabbix_agent/stats.c +++ b/src/zabbix_agent/stats.c @@ -64,28 +64,37 @@ {0} };*/ +extern char *CONFIG_STAT_FILE; + void collect_statistics() { FILE *file; + char tmpname[MAX_STRING_LEN]; + for(;;) { - file=fopen("/tmp/zabbix_agentd.tmp2","w"); + memset(tmpname, 0, MAX_STRING_LEN); + strscpy(tmpname, CONFIG_STAT_FILE); + strncat(tmpname, "2", MAX_STRING_LEN); + file=fopen(tmpname,"w"); if(NULL == file) { - zabbix_log( LOG_LEVEL_CRIT, "Cannot open file [%s] [%s]\n","/tmp/zabbix_agentd.tmp2", strerror(errno)); - exit(1); + zabbix_log( LOG_LEVEL_CRIT, "Cannot open file [%s] [%s]",tmpname, strerror(errno)); + return; } - else - { - /* Here is list of functions to call periodically */ - collect_stats_interfaces(file); - collect_stats_diskdevices(file); - collect_stats_cpustat(file); + /* Here is list of functions to call periodically */ + collect_stats_interfaces(file); + collect_stats_diskdevices(file); + collect_stats_cpustat(file); - fclose(file); - rename("/tmp/zabbix_agentd.tmp2","/tmp/zabbix_agentd.tmp"); + fclose(file); + if(-1 == rename(tmpname,CONFIG_STAT_FILE)) + { + zabbix_log( LOG_LEVEL_CRIT, "Cannot rename file [%s] to [%s] [%s]",tmpname,CONFIG_STAT_FILE,strerror(errno)); + return; } + sleep(1); } } diff --git a/src/zabbix_agent/zabbix_agentd.c b/src/zabbix_agent/zabbix_agentd.c index 92c18bec..b06ab585 100644 --- a/src/zabbix_agent/zabbix_agentd.c +++ b/src/zabbix_agent/zabbix_agentd.c @@ -106,6 +106,7 @@ char *CONFIG_HOSTS_ALLOWED = NULL; char *CONFIG_HOSTNAME = NULL; char *CONFIG_FILE = NULL; char *CONFIG_PID_FILE = NULL; +char *CONFIG_STAT_FILE = NULL; char *CONFIG_LOG_FILE = NULL; int CONFIG_AGENTD_FORKS = AGENTD_FORKS; /*int CONFIG_NOTIMEWAIT = 0;*/ @@ -134,6 +135,12 @@ void uninit(void) } } + if( unlink(CONFIG_STAT_FILE) != 0) + { + zabbix_log( LOG_LEVEL_WARNING, "Cannot remove STAT file [%s]", + CONFIG_STAT_FILE); + } + if( unlink(CONFIG_PID_FILE) != 0) { zabbix_log( LOG_LEVEL_WARNING, "Cannot remove PID file [%s]", @@ -272,7 +279,7 @@ void init_config(void) {"Hostname",&CONFIG_HOSTNAME,0,TYPE_STRING,PARM_OPT,0,0}, {"PidFile",&CONFIG_PID_FILE,0,TYPE_STRING,PARM_OPT,0,0}, {"LogFile",&CONFIG_LOG_FILE,0,TYPE_STRING,PARM_OPT,0,0}, -/* {"StatFile",&CONFIG_STAT_FILE,0,TYPE_STRING,PARM_OPT,0,0},*/ + {"StatFile",&CONFIG_STAT_FILE,0,TYPE_STRING,PARM_OPT,0,0}, {"DisableActive",&CONFIG_DISABLE_ACTIVE,0,TYPE_INT,PARM_OPT,0,1}, {"EnableRemoteCommands",&CONFIG_ENABLE_REMOTE_COMMANDS,0,TYPE_INT,PARM_OPT,0,1}, {"Timeout",&CONFIG_TIMEOUT,0,TYPE_INT,PARM_OPT,1,30}, @@ -319,10 +326,10 @@ void init_config(void) } } -/* if(CONFIG_STAT_FILE == NULL) + if(CONFIG_STAT_FILE == NULL) { CONFIG_STAT_FILE=strdup("/tmp/zabbix_agentd.tmp"); - }*/ + } } void load_user_parameters(void) @@ -634,6 +641,8 @@ int main(int argc, char **argv) collect_statistics(); + uninit(); + /* #ifdef HAVE_PROC_NET_DEV collect_statistics(); |