i=$(cat /etc/icinga/devices.d/xlcdw/full)
if IP in grep -q $i /etc/icinga/devices.d/xlcdw/xlcdw-endpoints.cfg;
echo "Already configured"
else
echo $IP
fi
Ich versuche herauszufinden, ob die Hosts, die ich bereits in der .cfg-Datei konfiguriert habe, in der Datei mit dem Namen „full“ vorhanden sind. Natürlich läuft der obige Code nicht einmal. Ich suche nach ihren IP-Adressen.
Antwort1
Ich entnehme eure Angaben den Kommentaren:
Die Datei „full“ enthält eine IP-Adresse pro Zeile. Die .cfg-Datei enthält neben IP-Adressen auch alle möglichen alphabetischen Texte.
Und
Ich muss die gesamte Datei durchlaufen, um zu sehen, ob die darin enthaltenen IPs (eine pro Zeile) auch in der .cfg-Datei enthalten sind.
Sie möchten also iterieren, was Ihr Skript jedoch nicht tut.
Versuchen Sie es mit einer For-Schleife:
for IP in $(cat /etc/icinga/devices.d/xlcdw/full); do
if [[ `grep -c $IP /etc/icinga/devices.d/xlcdw/xlcdw-endpoints.cfg` > 0 ]]; then
echo $IP already configured
else
echo $IP missing
fi
done
Passen Sie das an Ihre Bedürfnisse an (was ich nicht ganz verstehe)