Linux-Scripting mit einer Variable id Bezug ist in einer Textdatei oder Masse citrix vm Snapshot löschen

StackOverflow https://stackoverflow.com/questions/4227222

  •  26-09-2019
  •  | 
  •  

Frage

Ich habe einen Befehl (Citrix XenServer cli löschen Snapshot-Befehl - wenn es darauf ankommt), dass ich ein paar Mal wiederholen:

xe snapshot-uninstall snapshot-uuid=[snapshot-uuid]

ich Skript soll dies eine Variable für [Snapshot-uuid] mit, so dass ich für alle Zeilen in einer Textdatei wiederholen, dass wie folgt aussieht (jede Zeile ist eine eindeutige UUID wth ohne Leerzeichen):

dd56e7d2-00b0-4ddd-b3bf-368e3de059f9
ba201e7e-c180-4e00-8134-2ea128c9a14e
32128f38-b1b5-40e7-848c-dbdf5ae255ed
b53145ec-3748-475d-8add-008665533f72
173cb6c4-04da-43bc-abce-f2c97f76d3d2
3829f365-e619-47a0-93cd-d5aca37c28dd
6eb7aff9-70f9-4a77-96b0-044dfb0ce96e
ca7478c6-eae1-4090-aed5-c348b172d12a
439e247d-cf6a-4f09-a4d7-8dc719c317ca
b595d2e8-e2c4-4d0e-9b07-cccf1108904b
1da57650-dc16-48e2-bf5f-e2b8b96dba03
f2718a31-baa8-4c74-b170-5933e71da8c4
b2263c61-175e-43fa-b941-52ec2379a835
d0d6ede9-0589-4908-884f-900fef1d1c92
65e54f20-8c33-4f67-a394-36676add54ac
6d0f388c-5a78-4962-b1b2-55117b18a4c9

Eine zusätzliche Komplikation ist, dass bei jedem Befehl ein: „Sind Sie sicher, dass ... Typ‚Ja‘, um fortzufahren“ gegeben wird.

UPDATE: Ich posted ursprünglich diese Frage, weil meine Frage auf Citrix XenServer CLI Forum ignoriert worden ist. Ich habe später eine Antwort auf dem Citrix-Forum hier , die eine inklusive Befehl, der wesentlich effizienter als das, was ich versuche zu tun. Bitte, wenn überhaupt jemand ein Bedürfnis hat alle Snapshots zu löschen, verwenden Sie die folgende:

for i in `xe snapshot-list --minimal | sed -e 's/,/\ /g'` ; do xe snapshot-uninstall force=true uuid=$i ; done
War es hilfreich?

Lösung

Sie können über jede Zeile einen Shell-Skript in einer Schleife erstellen:

#!/bin/bash

while read UUID; do
    yes | xe snapshot-uninstall snapshot-uuid="$UUID"
done < uuids.txt

Oder wenn Sie eine gute Schreibkraft Sie alle drei Linien der while-Schleife eingeben können direkt an der Shell.

Sie können alle Aufforderungen Auto-Antwort durch die Ausgabe von yes kochend. yes wird die Zeichenfolge Ihrer Wahl (default "y") wiederholt drucken:

  

Name

     

ja - Ausgabe einer Zeichenfolge so oft, bis getötet

     

Überblick

yes [STRING]...
     

Beschreibung

     

wiederholt ausgegeben eine Zeile mit all angegeben STRING (s), oder ‚y‘.

Andere Tipps

xargs -I % -a uuidfile xe snapshot-uninstall snapshot-uuid=%

zu reagieren "sind Sie sicher," Prompts:

xargs -I % -a sh -c 'yes | uuidfile xe snapshot-uninstall snapshot-uuid=%'
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top