IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration système Discussion :

Besoin de conseil script d'administration


Sujet :

Administration système

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2007
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 74
    Points : 36
    Points
    36
    Par défaut Besoin de conseil script d'administration
    Bonjour, dans le cadre de gestion et d'administration à distance de pc avec des linux embarqué, je suis en train de faire une interface de gestion.Cette interface recherche dans une base de données les informations qu'il lui faut, cette base de donnée et mise à jour par des script shell avec des crontab, mais je suis débutant et j'ai besoin de conseil pour avoir un systemme sécurisé et qui gere les erreurs, merci de votre attention

    script client
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    #!/bin/sh
    cd /tmp/
    ##Récupérer ip
    ippub=$(lynx -dump http://www.whatismyip.com |grep -i "Your IP" |awk '{print $5}')
    host=$(hostname)
    ##création du nom du fichier
    filename=$(echo "update_"$host)
    if test $ippub != ""
    then
    	if test -f $filename
    		then
    		rm $filename
    		fi
    	touch $filename
    	##Mise a jour des informations dans le fichier
    	echo "ip= $ippub">>$filename
    	echo "host= $host">>$filename
    	scp -P 2222 $filename ****.no-ip.org: & 
    	exit
     
    fi

    script serveur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    #!/bin/sh
    cd /home/****
    ##Mise de tout les états à 0 (toute les box hors ligne)
    echo "use Supervision ; UPDATE box SET etat='0' ;"|mysql --user=root --password=******
    ##si des fichier de mise à jour on été recu
    if test -f update*
    then
     
    	##on les déplace dans le dossier
    	mv update* dossier_upload/
    	cd dossier_upload
            ##pour chaque fichier dans le dossier
    	for fichier in /home/*****/dossier_upload/*
    	do
    		echo "$fichier"
    		ippub=$(grep ip $fichier  | awk '{print$2}')
    		host=$(grep host $fichier  | awk '{print$2}')
                   ##on compte le nombre d'entré dans la base correspondant on nom d'host
    		nbtrouve=$(echo "use Supervision ; SELECT name FROM box WHERE name='$host';"|mysql --user=root --password=****** |awk '{print$1'} | wc -l)
                    ##Si le nom a été trouvé
    		if test $nbtrouve -ne 0
    		then		
                            ##  on met à jour l'ip et on met l'état a 1
    			echo "use Supervision ; UPDATE box SET ip='$ippub', etat='1' WHERE name='$host';"|mysql --user=root --password=***** 
    		fi
                    ##si le nom n'existe pas
    		if test $nbtrouve -eq 0
    		then		
                            ## on créer un enregistrement dans la base
    			echo "use Supervision ; INSERT INTO box (ip,name,etat) VALUES ('$ippub','$host','1');"|mysql --user=root --password=****
     
    		fi
                    ##on supprime le fichier
    		rm $fichier
     
    	done
     
     
     
     
    fi
    Voila , j'ai besoin de conseil de documentation, les réflections non constructive je m'en passe

  2. #2
    Membre éclairé Avatar de Pilru
    Homme Profil pro
    Dev ASP.NET/jQuery ; Admin ORACLE
    Inscrit en
    Septembre 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev ASP.NET/jQuery ; Admin ORACLE

    Informations forums :
    Inscription : Septembre 2007
    Messages : 491
    Points : 833
    Points
    833
    Par défaut
    As-tu une idée des erreures à gérer et de la sécurité a mettre en place ?
    Donne plus d'infos sur ce que tu veux faire exactement.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Septembre 2007
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 74
    Points : 36
    Points
    36
    Par défaut
    Les erreures que je pense qu'il faut gérer c'est si le scp ne marche pas alors on arrete le script sauf que je sais pas comment le tester,il faudrais aussi que j'arrive à récupérer le certificat du client qui se connecte pour le mettre dans la base, et j'aimerais aussi ajouter un script sur le client qui change le hostname en fonction du certificat, sachant que le certificat sera sur une clé usb pour chaque client

  4. #4
    Membre éclairé Avatar de Pilru
    Homme Profil pro
    Dev ASP.NET/jQuery ; Admin ORACLE
    Inscrit en
    Septembre 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev ASP.NET/jQuery ; Admin ORACLE

    Informations forums :
    Inscription : Septembre 2007
    Messages : 491
    Points : 833
    Points
    833
    Par défaut
    Normalement, une commade renvoie une valeur > 0 si un problème s'est produit. Et bash permet de conditionner l'enchainement de plusieurs commande avec && et || (man bash pour plus d'infos).

    Tu devrais pouvoir faire :

    scp -P 2222 $filename ****.no-ip.org: || echo 'erreur scp.' && exit 1

    Sinon, quelques remarques a propos de mysql :
    Evites de mettre, dans des scripts, en dur et en clair, le mot de passe du user root pour la connexion mysql. Si tu peux, utilise un user spécifique avec uniquement des droits sur les objets vraiment utiles. Ensuite, via un fichier de config (cf fichier my.cnf), tu indiques le mdp et la base de donnée (pour éviter l'ordre use dans les scripts sql).

    Pour lancez des scripts mysql, plutôt que de faire des echo avec des pipes depuis le script sh, fait un script sql dans lequel tu déclares des variables Cela pourrait donner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Set @ippub = {$ippub} , @host = {$host};
     
    UPDATE box SET ip=@ippub, etat='1' WHERE name=@host;
    On pourra appeler le script avec cette ligne :
    mysql --user=user < le_script.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Septembre 2007
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 74
    Points : 36
    Points
    36
    Par défaut
    Merci Pilru, je vais étudier tout ca et je reposte les nouveau script, c'est surtout l'idée de pas mettre le mot de passe root dans le fichier qui me plais car ca me géner énormément

Discussions similaires

  1. [MySQL] besoin de conseil pour la création d'un outil d'administration
    Par nono9999 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 29/12/2010, 07h52
  2. [RegEx] Besoin de conseils pour script PHP/MySQL.
    Par ABandApart dans le forum Langage
    Réponses: 0
    Dernier message: 05/08/2010, 12h27
  3. Besoin de conseils pour administrer plusieurs sites
    Par nicko_73 dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 08/09/2009, 10h17
  4. script greasemonkey, besoin de conseils
    Par Yuuuu dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/08/2009, 16h37
  5. Shell - premier script : besoin de conseils
    Par Invité dans le forum Linux
    Réponses: 1
    Dernier message: 28/10/2007, 20h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo