ping conf + get_ping.php
This commit is contained in:
parent
7d8c047dad
commit
08c55abf15
@ -9,5 +9,5 @@ $auth_ldap_basedn = "DC=iut,DC=local"; // D
|
||||
$auth_ldap_port = "636"; // port du serveur : 636 (ldaps) recommandé
|
||||
$auth_ldap_attribut_identifier = "sAMAccountName"; // attribut identifiant d'un compte dans l'annuaire
|
||||
$auth_ldap_AD = true; // le serveur LDAP est-il un serveur AD ?
|
||||
= "Veuillez vous authentifier avec votre compte et votre mode passe Windows"; // message sur le formulaire d'authentification LDAP
|
||||
$auth_ldap_message = "Veuillez vous authentifier avec votre compte et votre mode passe Windows"; // message sur le formulaire d'authentification LDAP
|
||||
?>
|
||||
|
7
admin/ping/winlog_ping.conf
Executable file
7
admin/ping/winlog_ping.conf
Executable file
@ -0,0 +1,7 @@
|
||||
# Fichier de configuration du démon ping de Winlog
|
||||
# fichier généré par Winlog, ne pas modifier manuellement
|
||||
fichierIN=/var/www/html/admin/ping/liste_ip.txt
|
||||
fichierOUT=/var/www/html/admin/ping/liste_ping.txt
|
||||
timeout=100
|
||||
pathPHP=/usr/bin/php5
|
||||
getPing=/var/www/html/admin/get_ping.php
|
@ -1,42 +1,46 @@
|
||||
#!/bin/bash
|
||||
# Usage : winlog_ping.sh fichier_adresses_ip fichier_adresses_pinguées timeout
|
||||
# Ce script lit le fichier des adresses IP produit par Winlog, nom du fichier passé en paramètre.
|
||||
# Usage : winlog_ping.sh fichier_ping.conf
|
||||
# Ce script lit le fichierIN des adresses IP produit par Winlog.
|
||||
# Pour chaque adresse récupérée, il effectue un fping.
|
||||
# Si le fping répond, un timestamp est mis à jour sur la ligne de l'adresse IP dans le fichier.
|
||||
# timeout par défaut = 100ms
|
||||
# Si le fping répond, une ligne est ajoutée dans le fichierOUT. La première ligne du fichier est le timestamp de fin du ping global.
|
||||
|
||||
# Test arguments
|
||||
if [[ ! $# -eq 3 ]]; then
|
||||
echo 'Erreur de paramètres : les noms des fichiers de la liste des adresses IP et des adresses ayant répondu au ping et la durée du timeout du ping en ms.'
|
||||
echo 'Usage : winlog_ping.sh fichierIN_adresses_ip fichierOUT_adresses_pinguées'
|
||||
if [[ $# -eq 0 ]]; then
|
||||
echo 'Erreur de paramètres : le fichier de configuration du ping doit être passé'
|
||||
echo 'Usage : winlog_start_ping.sh fichier_ping.conf'
|
||||
exit 1
|
||||
fi;
|
||||
fichierIN=$1
|
||||
fichierOUT=$2
|
||||
timeout=$3
|
||||
if [ ! -e $fichierIN ]; then
|
||||
# Source de la configuration et tests fichiers
|
||||
if [ ! -e $1 ]; then
|
||||
echo 'Erreur : fichier '$1' non trouvé.'
|
||||
exit 1
|
||||
fi;
|
||||
source $1;
|
||||
if [ ! -e $fichierIN ]; then
|
||||
echo 'Erreur : fichier '$fichierIN' non trouvé.'
|
||||
exit 1
|
||||
fi;
|
||||
if [ ! -e $fichierOUT ]; then
|
||||
echo 'Erreur : fichier '$2' non trouvé.'
|
||||
echo 'Erreur : fichier '$fichierOUT' non trouvé.'
|
||||
exit 1
|
||||
fi;
|
||||
|
||||
# Boucle infinie : fping sur chaque adresse du fichier
|
||||
# La première ligne écrite dans le fichier est le timestamp
|
||||
# Si réponse ping, alors ajout de l'adresse dans le fichier OUT
|
||||
# fping -t$timeout -f$fichier | grep alive | cut -d ' ' -f1 : récupère les ip alive depuis fping
|
||||
# Une fois le fichier rempli, on exécute admin/get_ping.php qui va récupérer le contenu du fichier dans la base Winlog
|
||||
while :
|
||||
do
|
||||
actives=`fping -t$timeout -f$fichierIN | grep alive | cut -d ' ' -f1`
|
||||
timestamp=$(date +"%Y-%m-%d %H:%M:%S")
|
||||
echo $timestamp>$fichierOUT
|
||||
>$fichierOUT
|
||||
i=0
|
||||
for ip in $actives
|
||||
do
|
||||
echo $ip >> $fichierOUT
|
||||
i=$(($i+1))
|
||||
done
|
||||
requetePing=$pathPHP' '$getPing
|
||||
eval $requetePing
|
||||
echo $timestamp " : " $i "réponses au ping"
|
||||
done
|
@ -1,25 +1,29 @@
|
||||
#!/bin/bash
|
||||
# Usage : winlog_ping.sh fichier_adresses_ip fichier_adresses_pinguées timeout
|
||||
# Usage : winlog_ping.sh fichier_ping.conf
|
||||
# Ce script lance le shell winlog_ping.sh en arrière plan et rend la main aussitôt.
|
||||
# Il arrête auparavant les éventuels processus de winlog_ping.sh.
|
||||
|
||||
# Test arguments
|
||||
if [[ ! $# -eq 3 ]]; then
|
||||
echo 'Erreur de paramètres : les noms des fichiers de la liste des adresses IP et des adresses ayant répondu au ping et la durée du timeout du ping en ms.'
|
||||
echo 'Usage : winlog_start_ping.sh fichierIN_adresses_ip fichierOUT_adresses_pinguées'
|
||||
if [[ $# -eq 0 ]]; then
|
||||
echo 'Erreur de paramètres : le fichier de configuration du ping doit être passé'
|
||||
echo 'Usage : winlog_start_ping.sh fichier_ping.conf'
|
||||
exit 1
|
||||
fi;
|
||||
fichierIN=$1
|
||||
fichierOUT=$2
|
||||
timeout=$3
|
||||
if [ ! -e $fichierIN ]; then
|
||||
# Source de la configuration et tests fichiers
|
||||
if [ ! -e $1 ]; then
|
||||
echo 'Erreur : fichier '$1' non trouvé.'
|
||||
exit 1
|
||||
fi;
|
||||
if [ ! -e $fichierOUT ]; then
|
||||
echo 'Erreur : fichier '$2' non trouvé.'
|
||||
source $1;
|
||||
if [ ! -e $fichierIN ]; then
|
||||
echo 'Erreur : fichier '$fichierIN' non trouvé.'
|
||||
exit 1
|
||||
fi;
|
||||
if [ ! -e $fichierOUT ]; then
|
||||
echo 'Erreur : fichier '$fichierOUT' non trouvé.'
|
||||
exit 1
|
||||
fi;
|
||||
|
||||
|
||||
# Arrêt des éventuels processus actifs de winlog_ping
|
||||
for proc in `ps -ej | grep winlog_ping | grep -v grep | cut -d ' ' -f1`
|
||||
@ -28,4 +32,4 @@ do
|
||||
done
|
||||
|
||||
# Lancement de winlog_ping.sh en arrière plan
|
||||
/var/www/html/admin/ping/winlog_ping.sh $fichierIN $fichierOUT $timeout &
|
||||
/var/www/html/admin/ping/winlog_ping.sh $1 &
|
@ -28,6 +28,33 @@ $req_purge_salle = "TRUNCATE salles";
|
||||
$ldap_con = ldap_connect($ldap_host, $ldap_port);
|
||||
$ldap_auth = ldap_bind($ldap_con, $ldap_rdn, $ldap_passwd);
|
||||
|
||||
// Fonction de création du fichier de configuration du démon ping
|
||||
Function Configuration_ping() {
|
||||
global $winlog_ping_conf;
|
||||
global $fichier_liste_ip;
|
||||
global $fichier_liste_ping;
|
||||
global $ping_timeout;
|
||||
global $php_path;
|
||||
global $winlog_get_ping;
|
||||
$fichier = fopen($winlog_ping_conf, "w");
|
||||
if ($fichier) {
|
||||
$cr = "\n";
|
||||
$lignes = [
|
||||
"# Fichier de configuration du démon ping de Winlog".$cr,
|
||||
"# fichier généré par Winlog, ne pas modifier manuellement".$cr,
|
||||
"fichierIN=".$fichier_liste_ip.$cr,
|
||||
"fichierOUT=".$fichier_liste_ping.$cr,
|
||||
"timeout=".$ping_timeout.$cr,
|
||||
"pathPHP=".$php_path.$cr,
|
||||
"getPing=".$winlog_get_ping.$cr
|
||||
];
|
||||
foreach($lignes as $ligne) {
|
||||
fwrite($fichier, $ligne);
|
||||
}
|
||||
fclose($fichier);
|
||||
}
|
||||
};
|
||||
|
||||
// Fonction d'écriture des adresses IP des machines dans le fichier liste_ip
|
||||
Function Liste_ip_fichier(&$db) {
|
||||
global $fichier_liste_ip;
|
||||
@ -45,9 +72,7 @@ Function Liste_ip_fichier(&$db) {
|
||||
|
||||
// Fonction de lancement du démon de ping
|
||||
Function Lance_demon_ping() {
|
||||
global $fichier_liste_ip;
|
||||
global $fichier_liste_ping;
|
||||
global $ping_timeout;
|
||||
global $winlog_ping_conf;
|
||||
global $winlog_start_ping;
|
||||
global $winlog_ping_error;
|
||||
global $winlog_ping_debug;
|
||||
@ -56,7 +81,7 @@ Function Lance_demon_ping() {
|
||||
$redirect = ' >> '. $winlog_ping_error;
|
||||
}
|
||||
|
||||
$command = $winlog_start_ping . ' ' . $fichier_liste_ip . ' ' . $fichier_liste_ping . ' ' . $ping_timeout . $redirect . ' 2>&1';
|
||||
$command = $winlog_start_ping . ' ' . $winlog_ping_conf . $redirect . ' 2>&1';
|
||||
//echo $command;
|
||||
exec($command);
|
||||
};
|
||||
@ -126,7 +151,8 @@ foreach ($ldap_machines as $ldap_branche) {
|
||||
|
||||
// Ajout des adresses IP déjà collectées dans le fichier des adresses IP et lancement du démon de ping
|
||||
// ===================================================================================================
|
||||
if ($winlog_start_ping != "") {
|
||||
if ($mode_ping) {
|
||||
Configuration_ping();
|
||||
Liste_ip_fichier($db);
|
||||
Lance_demon_ping();
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
// Version
|
||||
$version = "1.3.0";
|
||||
$version = "1.6.0";
|
||||
// URL administration de Winlog
|
||||
$winlog_url = "https://winlog.iut-rodez.fr/admin/";
|
||||
// URL serveur Winlog : URL sur laquelle les requêtes des PC clients arrivent
|
||||
@ -139,6 +139,11 @@ $trombino_extension_fichier = ".jpg";
|
||||
|
||||
// Ping : s'appuie sur la commande système fping
|
||||
// NOTE : tous les chemins doivent être absolus ! l'utilisateur apache www-data ne connait pas forcément l'environnement.
|
||||
|
||||
// Le démon de ping doit-il être activé. Mettre à false pour désactiver.
|
||||
$mode_ping = true;
|
||||
// fichier de configuration bash du démon de ping
|
||||
$winlog_ping_conf = "/var/www/html/admin/ping/winlog_ping.conf";
|
||||
// fichier de la liste d'adresses IP à pinger (fichierIN), doit être accessible en lecture/écriture
|
||||
$fichier_liste_ip = "/var/www/html/admin/ping/liste_ip.txt";
|
||||
// ficher de la liste des adresses ayant répondu au ping (fichierOUT), doit être accessible en lecture/écriture
|
||||
@ -152,6 +157,10 @@ $winlog_start_ping = "/var/www/html/admin/ping/winlog_start_ping.sh";
|
||||
$winlog_ping = "/var/www/html/admin/ping/winlog_ping.sh";
|
||||
// fichier de log
|
||||
$winlog_ping_error = "/var/www/html/admin/ping/ping_error.log";
|
||||
// mode debug : mettre à true pour voir les erreur dans ŵinlog_ping_error.log
|
||||
// mode debug : mettre à true pour voir les erreurs dans ŵinlog_ping_error.log
|
||||
$winlog_ping_debug = false;
|
||||
// chemin vers php : où se trouve le moteur php sur le système
|
||||
$php_path = "/usr/bin/php5";
|
||||
// chemin vers le script winlog de collecte des résultats du ping
|
||||
$winlog_get_ping = "/var/www/html/admin/get_ping.php";
|
||||
?>
|
||||
|
31
winlog.sql
31
winlog.sql
@ -3,7 +3,7 @@
|
||||
-- http://www.phpmyadmin.net
|
||||
--
|
||||
-- Client : localhost
|
||||
-- Généré le : Mar 13 Décembre 2016 à 15:35
|
||||
-- Généré le : Ven 30 Novembre 2018 à 10:26
|
||||
-- Version du serveur : 5.5.53-0+deb8u1
|
||||
-- Version de PHP : 5.6.27-0+deb8u1
|
||||
|
||||
@ -32,7 +32,7 @@ CREATE TABLE IF NOT EXISTS `comptes` (
|
||||
`prenom` varchar(25) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
|
||||
`nom` varchar(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
|
||||
`groupe` varchar(25) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=890 DEFAULT CHARSET=utf8;
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=928 DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
@ -49,7 +49,7 @@ CREATE TABLE IF NOT EXISTS `connexions` (
|
||||
`debut_con` timestamp NULL DEFAULT '0000-00-00 00:00:00',
|
||||
`close` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`archivable` tinyint(1) NOT NULL DEFAULT '0'
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=38044 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=193000 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
@ -77,6 +77,17 @@ CREATE TABLE IF NOT EXISTS `machines` (
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Structure de la table `ping`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `ping` (
|
||||
`machine_id` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
|
||||
`ping_timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='table des réponses au ping de chaque machine';
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Structure de la table `proxy`
|
||||
--
|
||||
@ -127,7 +138,7 @@ CREATE TABLE IF NOT EXISTS `wifi` (
|
||||
`wifi_browser` varchar(160) COLLATE utf8_unicode_ci NOT NULL,
|
||||
`wifi_deb_conn` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`close` tinyint(4) NOT NULL DEFAULT '0'
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=316 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=96340 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
|
||||
--
|
||||
-- Index pour les tables exportées
|
||||
@ -151,6 +162,12 @@ ALTER TABLE `connexions`
|
||||
ALTER TABLE `machines`
|
||||
ADD PRIMARY KEY (`machine_id`);
|
||||
|
||||
--
|
||||
-- Index pour la table `ping`
|
||||
--
|
||||
ALTER TABLE `ping`
|
||||
ADD PRIMARY KEY (`machine_id`);
|
||||
|
||||
--
|
||||
-- Index pour la table `salles`
|
||||
--
|
||||
@ -177,17 +194,17 @@ ALTER TABLE `wifi`
|
||||
-- AUTO_INCREMENT pour la table `comptes`
|
||||
--
|
||||
ALTER TABLE `comptes`
|
||||
MODIFY `compte_id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=890;
|
||||
MODIFY `compte_id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=928;
|
||||
--
|
||||
-- AUTO_INCREMENT pour la table `connexions`
|
||||
--
|
||||
ALTER TABLE `connexions`
|
||||
MODIFY `con_id` bigint(20) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=38044;
|
||||
MODIFY `con_id` bigint(20) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=193000;
|
||||
--
|
||||
-- AUTO_INCREMENT pour la table `wifi`
|
||||
--
|
||||
ALTER TABLE `wifi`
|
||||
MODIFY `wifi_id` bigint(20) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=316;
|
||||
MODIFY `wifi_id` bigint(20) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=96340;
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
|
Loading…
x
Reference in New Issue
Block a user