#include #include #include #include #include #include // Matthieu PERRIN (eMaintenance) - 2015 FILE* pouvrir(char* chemin) { FILE * fp; fp = popen(chemin, "r"); return fp; } int pfermer(FILE* fp) { WEXITSTATUS(pclose(fp)); } int procout(char *cmd, char *sortie) { char resultat[256]; FILE* f=pouvrir(cmd); fgets(resultat, sizeof(resultat)-1, f); strcpy(sortie, resultat); return (pfermer(f) >> 8 ); } int main(int argc, char** argv) { //printf("%i", argc); if ( argc < 4) { printf("\nMatthieu PERRIN (eMaintenance)\n\nUsage : %s plugin hostname service 'arguments1 arguments2'\n", argv[0]); exit(0); } char cmd[256]; char res[256]=""; char check[256]; char hostname[256]; char service[256]; char param[256]; strncpy(hostname, argv[2], sizeof hostname); strncpy(service, argv[3], sizeof service); strcpy(cmd, argv[1]); if ( argc == 5) { strcat(cmd, " "); strcat(cmd, argv[4]); } strcat(cmd, " 2>&1"); int code = procout(cmd, res); printf("%s;%s;%i;%s\n", hostname, service, code, res); exit(0); }