Aide script shell

Fermé
nouabi Messages postés 143 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 16 juillet 2010 - 21 juin 2007 à 09:42
nouabi Messages postés 143 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 16 juillet 2010 - 21 juin 2007 à 15:38
Bonjour tout le monde,

Je suis en train de mettre en place un serveur SMS sous Gentoo v2007.0 .
Le serveur marche ss probleme ainsi que le modem GSM !

J'ai aujourd'hui besoin de créer un script shell (je pense) qui permet :

- de créer un fichier text
- d'y insérer 'To: "num de tel présente dans une bdd" '
- d'y insérer 'un text extrait d'un fichier log'
- de coller ce fichier dans un dossier spécificque (/usr/local/src/sms/outgoing)

Est ce que qq1 à déjà fait quelque chose d'équivalent ou est ce que vous connaisser des sites intéressants qui pourrai me permettre de mener a bien ce projet SVP ?
Je suis débutant en linux et a forciori en shell ...

Aidez moi please !!

Merci d'avance
A voir également:

10 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
21 juin 2007 à 09:55
Salut,

- de créer un fichier text
if [ ! -e "$fichier" ]; then touch "$fichier"; fi
- d'y insérer 'To: "num de tel présente dans une bdd" '
num_tel=$(grep "xxx" $bdd | awk ....)
echo "To : $num_tel" >> $fichier
- d'y insérer 'un text extrait d'un fichier log'
echo "$(commande qui extrait un text d'un fichier log) >> $fichier
- de coller ce fichier dans un dossier spécificque (/usr/local/src/sms/outgoing)
cp $fichier /usr/local/src/sms/outgoing/
Mais bon si tu nous donnes davantage de détails, notamment des exemples précis (copier/coller) de ta bdd et de ton fichier de log, on poura adapter ça à ton cas...

;-))
0
nouabi Messages postés 143 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 16 juillet 2010 8
21 juin 2007 à 10:45
Salut Jipicy,

En fait ajourd'hui rien n'est fait :
Pas de base de donnée de tel par exemple. J'ai uniquement un modem gsm installer sur une gentoo qui marche bien manuelement avec la commande 'sendsms 336xxxxxxxx 'message' '

En fait je voudrai remonter les log de différents serveurs ( les trier et les analyser) puis envoyer des sms sur des portable d'astrinte ou d'autre portable selon les erreurs. Si les erreurs sont de certains ordres, je voudrai envoyer un sms sur tel ou tel portable.

L'outil d'envoie de sms que j'utilise aujourd'hui est smstools. Il envoi tout les messages présente dans son dossier 'outgoing' toute les 5mins.
les sms dans le dossier se représente dans un fichier text sous la forme :
To : 336XXXXXXXX

'message ne dépassant pas 160 char.'

voila en gros comment ca se passe

Aujourd'hui, je voudrai automatiser tous ca pour des problèmes d'espace disque insufisant par exemple...

Veux tu plus de détails et si oui dans quel partie ?

Merci beauocup pour ton aide

Nouabi
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
21 juin 2007 à 10:51
voila en gros comment ca se passe
Ben pour faire (ou du moins essayer) ce que tu veux c'est pas du "en gros" qu'il faut, c'est du concret et du précis et à défaut, au moins des exemple plus ou moins (mais plutôt plus) réalistes de données...

;-))
0
nouabi Messages postés 143 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 16 juillet 2010 8
21 juin 2007 à 10:53
Je pense qu'il faut faire une fonction a part pour extraire 160 char. du text du fichier log après le trie de ces derniers.

Pour les numéro de tel, pour l'instant on va rester avec un seul numéro fixe (ca va simplifier un peu la chose).
le numéro de tel va rester fix disons 33666666666

Qu'en penses tu ?

Merci d'avnce
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
21 juin 2007 à 10:57
Je pense qu'il faut faire une fonction a part pour extraire 160 char. du text du fichier log après le trie de ces derniers.
Affiche un exemple de fichier log et un exemple de ce qu'il faut extraire...
0
nouabi Messages postés 143 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 16 juillet 2010 8
21 juin 2007 à 11:00
Ouaip je vais alle chercher ca ...
0
nouabi Messages postés 143 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 16 juillet 2010 8
21 juin 2007 à 12:40
je ne peu pas avoir de log pour l'instant car je n'ai pas le pass du serveur log. J'atend le responsable.

Sinon autre petite question :

Je voudrai fair un test sur le nom de mon fichier :

a=1

if [ -f $a ]
then $a+1=1
fi

mais ca ne marche pas je ne sais pas pourkoi !! il ne comprend pas la ligne : then ...

De plus, si le test est vrai je voudrai qu'il rajoute 1 à la variable (qui deviendra le nom de fichier) et j'aimerai qu'il revienne entre le a=1 le if pour recommencer le test jusqu'a ce qu'il n'existe pas de fichier portant le meme nom !!

Peux tu m'aider ?
0
nouabi Messages postés 143 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 16 juillet 2010 8
21 juin 2007 à 12:41
faire une boucle en fait ... et comment en sortir ?
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
21 juin 2007 à 13:15
Pour faire une boucle, il y a plusieurs façons, en voici une :
a=1;while [ "$a" -lt 10 ];do echo "$a";a=$(expr $a + 1 );done
Par contre pour ce que tu veux faire, c'est pas aussi simple que ce que tu as entrepris.

Tiens un bon truc pour commencer : http://abs.traduc.org/abs-4.1-fr/ et plus particulièrement ce passage.
0
nouabi Messages postés 143 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 16 juillet 2010 8
21 juin 2007 à 15:38
Pour l'instant voila un script de base qui marche :

#!/bin/sh

# initialisation des variables
a=1
message=0

# vérification d'un fichier portant déja ce nom 
# 	si oui, changement de nom (a+1=a)
# 	si non, création du fichier

while [ -f "$a" ]
do
	a=$[$a+1]
done
touch "$a"	                      # Le nom du fichier est un nombre simple
#touch "SMS_$(date)"     # Le nom du fichier correspond a SMS_'Date'

# enregistrement du numéro de téléphone dans le fichier text
echo "To : 336xxxxxxxx" >> $a

# enregistrement du message dans le fichier text
echo "Quel est votre message à envoyer ?"
read message
echo "
'$message'" >> $a

# copie du message dans le dossier /var/spool/sms/outgoing
cp $a /var/spool/sms/outgoing/

# suppresion du fichier text dans le dossier courant après avoir été
# copié dans le dossier outgoing de SMSTools
#rm -rf $a


Maintenant il va faloir le compléter et le modifier pour qu'il va cela automatiquement et en boucle avec plusieur num de tel mais pour l'instant je n'ai pas les log !!! Donc je ne peu pas trop avancé !!!

Les log windows n'ont pas toujour la même structure par hasard ! la ca m'étonne qd meme on peu pas trouver un exemple de log windws sur internet pour commencer a l'étudier

Tu ne trouve pas

PS : si tu as des commentaire ou des amélioration pour le script, n'hésite aps je fai cela aussi et surtout pour aprendre le sh

Merci d'avance

Nouabi
0