#1 Le 18/12/2009, à 18:04
- Totof08170
[ REGLER ] date et heure pour Script shell
Bonjours tout le monde,
Voila je suis en train de réaliser un petit script shell.
Avec un fichier Nommer ip.txt contenant une liste d'ip les une en dessous des autres. Le script shell va effectuer un ping sur toutes ces adresse ip, et dire OK ou NOK en fonction du résultat. Ensuite le script va généré un fichier log.html qui contient un tableau récapitulatif du teste avec toutes les IP et l'état de l'ip.
Seul problème, j'aimerais bien que dans le fichier HTML, en dessous du titre, il y ai un truc du genre " teste réalisé le xx/xx/xx à xx:xx avec la date et heure quoi.
J'ai trouver sur le net des moyens de le faire avec du javascript ou php, mais quand j'ai mis le code dans les balise html du script shell sa ne marchais pas.
Quelqu'un pourrait m'aider?
Voila le lien du fichier zip du script http://up.sur-la-toile.com/iwhe
Et voila le code du script
#!/bin/bash
IP=`ifconfig | grep -E 'inet add?r:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'`
MASK=`ifconfig | grep -E 'inet add?r:'| grep "$IP" | cut -d: -f4`
GATEWAY=`route -n | grep -E "^0.0.0.0 +[[:digit:].]+ +0.0.0.0" | awk '{print $2}'`
DNS=`grep nameserver /etc/resolv.conf | head -1 | awk '{print $2}'`
IP_NET=`wget http://checkip.dyndns.org/ -O - -o /dev/null | cut -d: -f 2 | cut -d\< -f 1`
DEBUT_T1="<html><head></head><body> <center>Tableau Bilant du script Ping</center> <br><br><table border="2" align="center"><tr><td>Adresse IP de la machine</td><td> Etat de la machine</td></tr>"
FIN_T1="</table></body></html>"
ip=$(cat ip.txt )
ok=0
nok=0
black="\033[30m"
red="\033[31m"
green="\033[32m"
yellow="\033[33m"
blue="\033[34m"
magenta="\033[35m"
cyan="\033[36m"
white="\033[37m"
echo $DEBUT_T1 > log.html
echo -e "\n"
echo -e " $blue ##################### "
echo -e " $blue # $red Ping $blue #"
echo -e " $blue# $red v3 $blue #"
echo -e " $blue # $red by Totof $blue #"
echo -e " $blue #####################"
echo -e " \n "
rep=$(zenity --entry --title="Script v2 By Totof" --text="Veuillez indiquer votre choix" --entry-text="Configuration_IP" Ping_IP teste)
if [ $rep == "Configuration_IP" ]
then
echo " " " VOS PARAMETRE IP "
echo "#############################################"
echo "# #"
echo "# Adresse IP Local : $IP" " #"
echo "# Masque : $MASK #"
echo "# Passerelle : $GATEWAY #"
echo "# DNS : $DNS #"
echo "# Adresse IP Internet :$IP_NET #"
echo "# #"
echo "############################################# $black"
echo -e "\n"
fi
if [ $rep == "Ping_IP" ]
then
echo $DEBUT_T1 > log.html
echo -e "Ping des machines de ip.txt en cours"
echo -e "\n"
for mot in $ip
do
result=$(ping $mot -c 1)
status=$(echo $result | grep "100% packet loss" )
if [ -z "$status" ]
then
echo -e " $magenta => Etat de la machine $mot : $black $green OK $black \n "
echo "<tr><td>$mot</td><td>OK</td></tr>" >> log.html
let ok=ok+1
else
echo -e " $magenta => Etat de la machine $mot : $black $red Non OK $black \n "
echo "<tr><td>$mot</td><td>NOK</td></tr>" >> log.html
let nok=nok+1
fi
done
echo $FIN_T1 >> log.html
echo -e $blue"Ping des machines ip.txt terminé\n\n"
echo -e $blue"Fichier log.html est maintenant crée"
echo -e "\n"
echo -e " $blue##################################### "
echo -e " $blue # $red Fin du script $blue #"
echo -e " $blue# $red Nb de machine OK : $ok $blue #"
echo -e " $blue # $red Nb de machine Non OK : $nok $blue #"
echo -e " $blue ##################################### $black "
fi
Et je tiens à dire au passage que je début dans le script shell.
Merci a vous
Dernière modification par Totof08170 (Le 18/12/2009, à 19:29)
Hors ligne
#2 Le 18/12/2009, à 18:55
- nesthib
Re : [ REGLER ] date et heure pour Script shell
puisque là tu fais du bash, utilise tout simplement la commande date dont les multiples options te donneront la date, l'heure…
exemple :
date '+%d/%m/%Y %k:%M'
Dernière modification par nesthib (Le 18/12/2009, à 18:57)
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#3 Le 18/12/2009, à 19:25
- twocats
Re : [ REGLER ] date et heure pour Script shell
IP=`ifconfig | grep -E 'inet add?r:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'`
Un chouia* lourd...
IP=$(ifconfig | awk '/inet'.*'Bcast/ {sub(/:/," ");print $3}')
3 pipes en moins pour le même résultat.
Et aussi :
La syntaxe $(...) a remplacé les apostrophes inverses pour la substitution de commande.
cf. : http://abs.traduc.org/abs-fr/ch11.html#commandsubref
* Le chouia est une unité de mesure aléatoire...
La réponse est 42
Hors ligne
#4 Le 18/12/2009, à 19:29
- Totof08170
Re : [ REGLER ] date et heure pour Script shell
merci beaucoup sa marche maintenant
Hors ligne
#5 Le 18/12/2009, à 19:32
- Totof08170
Re : [ REGLER ] date et heure pour Script shell
twocats je ne savais pas le faire moi même alors j'ai trouver ces bout de code la sur internet, donc bah pour le moment je me contente de sa. Je pense que en faisant un Ifconfig et un grep ou autre je pourrais avoir l'ip mais bon je chercherais plus tard
Hors ligne
#6 Le 18/12/2009, à 20:52
- sputnick
Re : [ REGLER ] date et heure pour Script shell
MyIps(){ echo -e "local:\n$(ifconfig $1 | grep -oP 'inet (add?r:)?\K(\d{1,3}\.){3}\d{1,3}')\n\npublic:\n$(curl -s sputnick-area.net/ip)"; }
$ MyIps
ou
$ MyIps <interface>
On ne peut pas mettre d'array dans un string!
https://sputnick.fr/
Hors ligne
#7 Le 18/12/2009, à 22:00
- Totor
Re : [ REGLER ] date et heure pour Script shell
IP=$(ifconfig | awk '/inet'.*'Bcast/ {sub(/:/," ");print $3}')
un chouia plus court :
ifconfig|awk -F':B' '/inet.*B/ { print $2 }'
-- Lucid Lynx --
Hors ligne
#8 Le 19/12/2009, à 15:38
- twocats
Re : [ REGLER ] date et heure pour Script shell
un chouia plus court :
ifconfig|awk -F':B' '/inet.*B/ { print $2 }'
me renvoi un résultat vide, un chouia pas bon.
La réponse est 42
Hors ligne
#9 Le 19/12/2009, à 16:21
- Totor
Re : [ REGLER ] date et heure pour Script shell
je ne sais pas ou était passé le pipe :
ifconfig|awk -F':|B' '/inet.*B/ { print $2 }'
c tjrs plus court
Dernière modification par Totor (Le 19/12/2009, à 16:22)
-- Lucid Lynx --
Hors ligne
#10 Le 19/12/2009, à 19:08
- twocats
Re : [ REGLER ] date et heure pour Script shell
...mais tu crée un pipe en plus.
Je chipote un chouia.
La réponse est 42
Hors ligne
#11 Le 19/12/2009, à 19:14
- nesthib
Re : [ REGLER ] date et heure pour Script shell
...mais tu crée un pipe en plus.
Je chipote un chouia.
sauf qu'ici le pipe n'a pas la même signification. Ce n'est pas un opérateur de redirection mais une partie de l'argument de awk donc pas de process supplémentaire.
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#12 Le 20/12/2009, à 13:19
- Totor
Re : [ REGLER ] date et heure pour Script shell
sauf qu'ici le pipe n'a pas la même signification. Ce n'est pas un opérateur de redirection mais une partie de l'argument de awk donc pas de process supplémentaire.
Exacte, pour être précis, je définie le séparateur de colonne awk comme étant soit ":" soit "B". Le OU est effectué par le pipe.
Cela aurait aussi pu être noté : [:B]
-- Lucid Lynx --
Hors ligne