bonjour,
j'essaie de faire 1 recherche dans un fichier plat qui contient 2 infos, une adresse ip suivie d'une chaine qui doit etre exploitée. En gros, ca doit me mettre a jour une variable dans un système domotique.
J'ai commencé un draft qui fonctionne sur chaque ligne (ping) que j'essaie d'agrémenter, mais mes souvenirs bash sont lointains.
je vous sollicite d'abord sur la partie lecture et exploitation de la ligne
hostmame=left(hoslist)
cde=right(hoslist)
je sais bien que je dois partir sur awk, grep ou autre, mais impossible d'avoir qqe chose de probant.
Merci d'avance.
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 #!/bin/bash #Description du fichier en entrée, à définir : # 192.168.1.1|STATUS_OPENWRT # 192.168.1.110|STATUS_PCHC #ou # 192.168.1.1 STATUS_OPENWRT # 192.168.1.110 STATUS_PCHC while read hostlist do hostmame=left(hoslist) cde=right(hoslist) monping="ping -c 1 -t 1 "$hostname" > /dev/null 2>&1" #group_read et goup_write sont des bash qui permettent de lire/ecrire sur le bus domotique val_encours==group_read(cde) if(monping==1 && val_encours=="off") then goup_write (cde,"on") else goup_write (cde,"on") #echo "Ping Status of $hostname : Success" || #echo "Ping Status of $hostname : Failed" done < host.txt
Arnaud
Partager