Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

nombre réponses : 25

#0 -1 »  Bash test si IP KO - Ajout d'un si, mais c'est en erreur » Le 15/11/2019, à 12:27

remi82
Réponses : 5

Bonjour,

J'ai actuellement un bash, qui lit un fichier, et qui pour chaque ligne fait un ping. Si, KO, celui-ci m'envoi un mail.

#!/bin/bash
#Declaration des variables
wsmtp=smtp
wuser=user
wmdp=mdp
wexped=exped
wdest=adresse_mail
#fin


dir=/home/users/ping_routeurs_ip.txt
#read dir
if [ -e $dir ]
	then
		while read ligne #pour chaque ligne
	do
		wip=$(echo $ligne | cut -d: -f1)		
		wsujet=$(echo $ligne | cut -d: -f2)
		wmessage=$(echo $ligne | cut -d: -f3)
		
		#Envoi du mail si KO
		HOST=$wip;COUNT=4;count=$(ping -c $COUNT $HOST | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }');if [ $count -eq 0 ]; then sendEmail -s $wsmtp -xu $wuser -xp $wmdp -o tls=yes -f $wexped -t $wdest -u $wsujet -m $wmessage; fi
		
	done < "$dir"
else
	sendEmail -s $wsmtp -xu $wuser -xp $wmdp -o tls=yes -f $wexped -t $wdest -u 'Fichier non trouve' -m "Le fichier des IP n'a pas été trouvé";
fi 

Cependant, il arrive que je ne veuille plus un ping d'une ligne pendant quelques temps.

Je modifie mon fichier des IP en commencant la ligne par #

J'ai ajouté dans mon bash

if [[ $wip != '#*' ]]
then
fi

dir=/home/users/ping_routeurs_ip.txt
#read dir
if [ -e $dir ]
	then
		while read ligne #pour chaque ligne
	do
		wip=$(echo $ligne | cut -d: -f1)		
		wsujet=$(echo $ligne | cut -d: -f2)
		wmessage=$(echo $ligne | cut -d: -f3)
		
               if [[ $wip != '#*' ]]
               then
		#Envoi du mail si KO
		HOST=$wip;COUNT=4;count=$(ping -c $COUNT $HOST | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }');if [ $count -eq 0 ]; then sendEmail -s $wsmtp -xu $wuser -xp $wmdp -o tls=yes -f $wexped -t $wdest -u $wsujet -m $wmessage; 
               fi 
		
	done < "$dir" 

Mais j'obtiens le message d'erreur :
Syntax error: "done" unexpected (expecting "fi")

J'ai beau chercher, je ne vois pas mon erreur.
Merci

#1 Re : -1 »  Bash test si IP KO - Ajout d'un si, mais c'est en erreur » Le 15/11/2019, à 12:51

remi82
Réponses : 5

Bonjour,

C'est quand j'ai copié mon code sur le forum. J'ai oublié un fi.
Et j'ai ajouté le fi manquant.

Maintenant, j'obtiens comme erreur :

[[: not found

Encore merci

#2 Re : -1 »  Bash test si IP KO - Ajout d'un si, mais c'est en erreur » Le 15/11/2019, à 13:09

remi82
Réponses : 5

Je viens de modifier mon contrôle.
C'est maintenant ok.

Merci à tous

#3 Re : -1 »  Squid ACL probleme » Le 14/05/2018, à 16:51

remi82
Réponses : 1

Bonjour,

Je ne sais pas trop d'où vient ton souci. Mais regarde ce lien. C'est grace à ce site que j'ai pu en parti mettre squid.
http://irp.nain-t.net/doku.php/220squid:start

#4 -1 »  Driver ODBC Iseries (AS400) » Le 27/04/2018, à 11:46

remi82
Réponses : 2

Bonjour,

Je souhaiterais migrer une partie de mes postes utilisateurs sous ubuntu en remplacement de Windows 10.
Nous travaillons sur AS400. Aucun souci pour l'émulation 5250, du fait que client access soit développé sous java.

J'ai par contre besoin d'installer le driver ODBC iseries access. Après de longues heures de recherche pour ne pas dire jours, j'approche du but.
J'ai en premier installé unixodbc, puis le driver iseries access fournis par IBM.

Quand je lance ODBC Administrator, je vois bien mon driver IBM dans le menu advanced.
Je souhaite donc définir la source AS400 via le menu "Data source Names" Je clique donc sur add, puis sélectionne le driver IBM. Je valide par OK, défini mes deux trois paramètres. Mais lorsque je valide, j'obtiens le message d'erreur suivant :

Could not write (/etc/odbc.ini)
J'ai donc essayé en modifiant le chmod, mais sans succès. Et je ne trouve aucune info.

Merci

#5 Re : -1 »  Driver ODBC Iseries (AS400) » Le 09/05/2018, à 13:12

remi82
Réponses : 2

Bonjour,

ODBC Administrator, ca provient d'unixodbc.
Quand au driver ODBC AS400, il faut un compte IBM pour le télécharger.

J'avance doucement. Quand j'aurais réussi, j’essaierai de tout expliquer.

#6 -1 »  Récupérer une partie d'une chaine de caractère en bash » Le 20/02/2018, à 11:34

remi82
Réponses : 12

Bonjour,

J'ai installé dans ma salle info un thermomètre dont je peux récupérer les infos par snmp.
En cas de température supérieur à un seuil, je reçois une alerte par mail.

Mais j'aimerai avoir une meilleur lecture dans le sens ou je récupère actuellement la température de la sorte : pour 18°, je récupère 180

Je cherche donc à mettre en forme pour avoir 18,2° par exemple

J'ai essayé avec cut -d

Puis, b=${a:1:2}

Mais rien ne fonctionne. Le shell me retourne "Bad substitution".

Merci par avance.

#7 Re : -1 »  Récupérer une partie d'une chaine de caractère en bash » Le 20/02/2018, à 14:11

remi82
Réponses : 12

Bonjour,

Je viens de réussir en utilsant perl

#8 -1 »  [Résolu] Tester si une variable est vide (chaine) » Le 04/10/2017, à 09:51

remi82
Réponses : 10

Bonjour,

Je cherche à savoir si une variable est vide ou non. Il s'agit d'une chaine.
J'ai trouvé des réponses sur le net, mais rien ne fonctionne chez moi.

if [ ${VAR} ]; then ...
if [[ -z "$var" ]]
[ $(grep motif <<<$var) ] && echo ok
var0='chainedecar'
var1=$(echo $var0 | grep motif)
if [ $var1 != '' ]; then
  echo 'ok'
fi

Merci pour votre aide

#9 Re : -1 »  [Résolu] Tester si une variable est vide (chaine) » Le 04/10/2017, à 10:42

remi82
Réponses : 10

Bonjour pingouinux,

Merci pour ton retour, mais aucune de ces syntaxe ne fonctionne chez moi.

Syntax error: "done" unexpected (expecting "fi")

J'ai pourtant bien indiqué "fi" à la fin.

#10 Re : -1 »  [Résolu] Tester si une variable est vide (chaine) » Le 04/10/2017, à 11:30

remi82
Réponses : 10

Re,

if [ "${VAR}" ]; then echo ko
if [ -z "${VAR}" ]; then echo ok

En retour :
Syntax error: "done" unexpected (expecting "fi")

Merci par avance.

#11 Re : -1 »  [Résolu] Tester si une variable est vide (chaine) » Le 06/10/2017, à 16:20

remi82
Réponses : 10

Bonjour,

Désolé pour ma réponse tardive.

if [ "${VAR}" ]; then ...

fonctionne très bien. Je ne sais pas ce que j'ai fais la première fois.
Merci à vous.

Rémi

#12 -1 »  [Résolu] sendEmail et pièce jointe dans une variable HS » Le 04/10/2017, à 11:50

remi82
Réponses : 9

Bonjour,

Je souhaite utiliser un shell pour envoyer des mails à mes utilisateurs dont il y a une pièce jointe.
Pour l'envoi des mails, j'utilise sendEmail (Attention pas sendmail)

sendEmail -s smtp.gmail.com -xu user -xp mdp -f monadressemail -t dest@mail.com -u 'sujet' -m 'mon message'

De se côté, pas de problème.
J'ai ensuite fais la même chose mais avec des variables pour les adresses mails, sujet et message. C'est également ok
Pour l'envoi de la pièce jointe, j'utilise l'option -a /mon_rep/fichier.pdf"

L'envoi fonctionne dans ce cas. Par contre, si je remplace

-a /mon_rep/fichier.pdf

par

-a $var

, j'obtiens le message d'erreur suivant :

] doesn't exist!linux sendEmail[23224]: ERROR => The attachment [/home/user/mon_rep/fichier.pdf

Merci par avance.

#13 Re : -1 »  [Résolu] sendEmail et pièce jointe dans une variable HS » Le 04/10/2017, à 13:39

remi82
Réponses : 9

Bonjour credenhill,

Oui, ce fichier existe. Et pour test, j'affiche le contenu de ma variable, et j'obtiens bien le chemin d'accès avec le nom du fichier.
Merci

#14 Re : -1 »  [Résolu] sendEmail et pièce jointe dans une variable HS » Le 05/10/2017, à 11:17

remi82
Réponses : 9

Bonjour,

Merci à vous tous. J'ai essayé toutes vos propositions, mais sans succès pour l'instant. Je continue de chercher.
Encore merci
Rémi

#15 Re : -1 »  [Résolu] sendEmail et pièce jointe dans une variable HS » Le 05/10/2017, à 11:27

remi82
Réponses : 9

Ce qui est étrange, c'est que lorsque j'indique manuellement le chemin de mon fichier, c'est ok.
Je creuse.....

#16 Re : -1 »  [Résolu] sendEmail et pièce jointe dans une variable HS » Le 06/10/2017, à 16:23

remi82
Réponses : 9

Bonjour,

Je viens de réussir.
Comme je le disais, lorsque j'indiquai le chemin manuellement, tout était OK.
J'ai testé après, en utilisant ma variable, mais en indiquant également le chemin manuellement. Et là, c'était OK.
Le problème venait en fait que je récupérai le chemin en lisant un fichier, et qu'il manquait une virgule.

Merci à vous pour votre aide.
Rémi

#17 -1 »  Remplacer des antislash par des slash dans un shell » Le 03/10/2017, à 18:06

remi82
Réponses : 2

Bonjour,

Dans un shell, j'ai besoin de récupérer des fichiers pdf via un partage windows.
Je récupère la liste des fichiers à récupérer dans un fichier temporaire, mais avec la syntaxe suivante : c:\PDF\nom_des_fichiers.pdf

Comment faire pour le convertir en : /mnt/PDF/nom_des_fichiers.pdf

Merci par avance.

#18 Re : -1 »  Remplacer des antislash par des slash dans un shell » Le 03/10/2017, à 18:40

remi82
Réponses : 2

Merci pour ton aide précieuse.

#19 -1 »  [Résolu] Installation de client access solution sur xubuntu HS » Le 24/08/2017, à 10:44

remi82
Réponses : 1

Bonjour à tous,

Problématique : Installation de Client Access sous xubuntu

Client access est la solution d'IBM pour se connecter sur un AS400.
Celui-ci à besoin de Java. Je l'ai donc au préalable installé.

J'ai suivi l'aide d'IBM pour réaliser l'installation, de Client Access Solution pour linux, mais rien n'a faire, je ne peux lancer le fichier install_acs_32.
Ce qui est étrange, c'est que sur ubuntu, lubuntu, ça fonctionne parfaitement.

Je lance donc un terminal (non root) je me rends dans le dossier et tape la commande

sudo /mon_rep/inst et je fais tab pour qu'il complète automatiquement. Mais là, il ne complète pas.
Je rentre donc manuellement l'intégralité, mais lorsque je valide, rien ne se passe.
Auriez-vous une idée ?

Merci par avance.

#20 Re : -1 »  [Résolu] Installation de client access solution sur xubuntu HS » Le 25/08/2017, à 07:49

remi82
Réponses : 1

Bonjour,

Je viens de trouver. Et franchement, c'était tout bête. J'ai simplement changé les droits sur le dossier d'installation.
Mais ce qui est étrange, c'est que sur ubuntu et lubuntu, je n'ai pas eu à le faire.

#21 -1 »  Suppression des fichiers d'une année » Le 15/02/2017, à 09:54

remi82
Réponses : 4

Bonjour,

Je souhaite supprimer tous les fichiers d'une année.
Je connaissais la syntaxe suivante pour supprimer par exemple les fichiers de plus de 30 jours :

find /home/ -type f -mtime +30 -print0 | xargs -r0 rm

En cherchant, j'ai trouvé la commande suivante, permettant de lister tous les fichiers d'une année précise :

find /home/ -type f | awk '$(NF-1) ~ /'"$date_a_sup"'/ {print $0}'

Ce code fonctionne. "date_a_sup" étant une variable. Je me suis dit que tout simplement, j'allais ajouté "| xargs -r0 rm"
Soit :

find /home/ -type f | awk '$(NF-1) ~ /'"$date_a_sup"'/ {print $0}' | xargs -r0 rm

Mais la commande me retourne l'erreur suivante : xargs: ligne de paramètres trop longue
J'ai beau chercher, je ne trouve pas encore la solution.

Merci par avance.

#22 Re : -1 »  Suppression des fichiers d'une année » Le 15/02/2017, à 12:25

remi82
Réponses : 4

J'ai trouvé,

J'utilise la première commande en écrivant le résultat dans un fichier.
Puis je fais une boucle pour lire chaque ligne, et ainsi supprimer mes fichiers.

#23 Re : -1 »  Suppression des fichiers d'une année » Le 15/02/2017, à 18:45

remi82
Réponses : 4

Bonjour Maxire,

Merci pour ton retour. Je vais garder ma solution. Mais je garde précieusement la tienne.
Encore merci

#24 Re : -1 »  "Cacher" un mot de passe dans un shell » Le 14/02/2017, à 18:59

remi82
Réponses : 6

Je vais essayer et te tiens au courant.
Je te remercie pour ton aide.