#include #include #include #include #include #define COMMAND_MAX_LENGTH 256 int main(int argc, char **argv) { int warning_level = 80; int critical_level = 90; int help_needed = 0; int opt; char command[COMMAND_MAX_LENGTH]; /* Vérification du setuid root */ if (setuid(0) != 0) { perror("setuid root error.\n"); exit(EXIT_FAILURE); } /* Analyse des options */ while ((opt = getopt (argc, argv, "w:c:")) != -1) { switch (opt) { case 'w': warning_level = atoi(optarg); break; case 'c': critical_level = atoi(optarg); break; case '?': help_needed = 1; break; } } /* Lancement de la commande */ if (help_needed != 0) { return system("/usr/local/sbin/check_pve_mem.pl -h"); } if ( ! snprintf(command, COMMAND_MAX_LENGTH, "/usr/local/sbin/check_pve_mem.pl -w %d -c %d", warning_level, critical_level)) { exit(EXIT_FAILURE); } exit(WEXITSTATUS(system(command))); }