Précédent   Forum des professionnels en informatique > Systèmes > Linux > Système
Système Vos questions autour de l'administration système
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/01/2008, 08h19   #1
Invité régulier
 
Inscription : septembre 2007
Messages : 62
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 62
Points : 6
Points : 6
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 :
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 :
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
szambaux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2008, 09h21   #2
Membre expérimenté
 
Avatar de Pilru
 
Homme
Dev ASP.NET/jQuery ; Admin ORACLE
Inscription : septembre 2007
Messages : 418
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 : 418
Points : 531
Points : 531
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.
Pilru est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2008, 10h14   #3
Invité régulier
 
Inscription : septembre 2007
Messages : 62
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 62
Points : 6
Points : 6
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
szambaux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2008, 12h07   #4
Membre expérimenté
 
Avatar de Pilru
 
Homme
Dev ASP.NET/jQuery ; Admin ORACLE
Inscription : septembre 2007
Messages : 418
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 : 418
Points : 531
Points : 531
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 :
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.
Pilru est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2008, 14h06   #5
Invité régulier
 
Inscription : septembre 2007
Messages : 62
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 62
Points : 6
Points : 6
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
szambaux est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h56.


 
 
 
 
Partenaires

Hébergement Web