Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Ausgabe mit IF auswerten

Mitglied: OIOOIOOIOIIOOOIIOIIOIOOO

OIOOIOOIOIIOOOIIOIIOIOOO (Level 1) - Jetzt verbinden

09.05.2017 um 09:34 Uhr, 920 Aufrufe, 8 Kommentare

Moin,
ich versuche dachte ich eine einfache IF Schleife nach CASE einzubauen.
Meine Absicht ist es eine E-Mail zu erhalten, wenn eine VM aus welchen Grund auch immer nicht gestartet ist.
Nach dem Befehl „virsh start VM“ kommt beim erfolgreichem Starten die Aussage „ Domain VM gestartet“ wenn nichts gestartet wurde, da die VM bereits online ist kommt nichts. Und wenn die IMG nicht nicht an dem erwartetem Ort sich befindet dann „Fehler: Domain VM konnte nicht gestartet werden
Fehler: Cannot access storage file '/data/vm-images/VM.img' (as uid:1000, gid:1000): Datei oder Verzeichnis nicht gefunden“
Alle Möglichkeiten möchte ich in eine Logdatei einbauen, was glaube ich das kleinste Problem ist. Mein Problem ist ich bekomme es nicht hin, dass die Aussage „Domain $i gestartet“ in die Auswertung für die IF Schleife genommen wird.
Ich habe es einfach mit der Ausgabe probiert ich habe es mit der Auswertung der Logdatei probiert … Ich habe keine Ideen mehr. Habt ihr eine Idee was ich falsch mache, außer das ich den Rechner angemacht habe?

01.
#!/bin/sh
02.
case $1 in
03.
 start)
04.
	for i in $(virsh list --all | grep 'ausschalten' | awk -F " " '{print $2}')
05.
		do
06.
			DOMSTART="Domain $i gestartet"
07.
			echo `date +%a` `date +%d.%m.%Y-%H:%M:%S` > zeit.txt
08.
			virsh start $i > ausgabe.txt
09.
			cat zeit.txt ausgabe.txt >> vmlog.txt     # Log erstellen
10.
			sed -i '$d' vmlog.txt
11.
			tail -2 vmlog.txt
12.
			if [ tail -2 vmlog.txt = "$DOMSTART" ]
13.
			then
14.
			echo $i ist alles ok!
15.
			else
16.
			echo $i nichts ist ok!
17.
			fi &
18.
		done
19.
	;;
20.
 stop)
21.
	for i in $(virsh list | grep laufend | awk -F " " '{print $2}')
22.
		do
23.
			virsh shutdown $i | sleep 60 &
24.
			if [ $? -eq 0 ]
25.
			then
26.
			echo $i wurde heruntergefahren alles ok!
27.
			else
28.
			echo $i kann nicht, nichts ist ok!
29.
			fi
30.
		done
31.
	;;
32.
	*) echo "bitte start oder stop benutzen!"
33.
	;;
34.
esac
P.S. String contains werde ich einbauen, wenn ich den Script feritg hab.
Mitglied: SlainteMhath
09.05.2017 um 10:04 Uhr
Moin,

generell zu (Ba)sh-Scripten die als root laufen:
Immer (!!) absulote Pfade verwenden. Bei Executaboles wie auch bei Ein- und Ausgabe-Files. Oder am Anfang des Scripts den Path selbst festlegen.

Zu deinem Problem:

01.
if [ tail -2 vmlog.txt = "$DOMSTART" ]  ...
funktioniert so nicht. Was soll "-2" bewirken? Meinst du evtl. "-n 2" (letzen Zwei ausgeben)?
Das ganz muss in Backticks - ich würde das aber eher so lösen:

01.
cat /tmp/vmlog.txt | grep "$DOMSTART"  && echo alles ok!
l,g
Slainte
Bitte warten ..
Mitglied: freeker
LÖSUNG 09.05.2017 um 10:17 Uhr
Hallo,

Versuch es mal damit:
01.
if [ `grep -i gestartet ausgabe.txt | wc -l` != 1 ] 
02.
then 
03.
     echo Da stimmt was nicht 
04.
fi
Und natürlich, wie schon gesagt, die Pfade richtig angeben oder am Anfang in ein Verzeichnis wechseln. Das kann dir viel Ärger sparen
Bitte warten ..
Mitglied: OIOOIOOIOIIOOOIIOIIOIOOO
09.05.2017 um 10:25 Uhr
Danke für deine Antwort.

Danke die für deinen Hinweis. Werde den Pfad mit in die Contains einsetzen.

Zitat von SlainteMhath:
funktioniert so nicht. Was soll "-2" bewirken? Meinst du evtl. "-n 2" (letzen Zwei ausgeben)?

Das waren meine Versuche aus Verzweiflung. Hier sollte nur die zweite Zeile von unten bewertet werden.

Also jetzt habe ich glaube ich dich falsch verstanden die Zeile habe ich eingebaut.

01.
if [ "cat /tmp/vmlogtmp.txt | grep $DOMSTART" = "$DOMSTART" ]
Funktioniert nicht.
Bitte warten ..
Mitglied: OIOOIOOIOIIOOOIIOIIOIOOO
09.05.2017 um 10:35 Uhr
So funktioniert es mit Grep ohne Probleme. Sobald ich das aber in den Cript einsetze Zeigt es mir immer „nichts ist ok!“

Darum habe ich das mit dem Logfile Probiert. Aber auch hier habe ich bis jetzt keine Lösung gefunden.
Bitte warten ..
Mitglied: SlainteMhath
09.05.2017 um 10:45 Uhr
Entweder du nimmst mein Beispiel (und zwar ohne "IF")

01.
cat /tmp/vmlog.txt | grep "$DOMSTART"  && echo alles ok!
oder du nimmst den Code von @freeker - ein Mischung aus beiden klappt nicht .)
Bitte warten ..
Mitglied: OIOOIOOIOIIOOOIIOIIOIOOO
09.05.2017 um 10:59 Uhr
Juhu der Code von "freeker" hat funktioniert!!! Ich habe einfach meine Kommentare drin behalten und diese waren in falsche Folge.

Deine Variante würde leider nicht reichen, denn es sollen dann weitere Prüfungen mit „Sonnst“ stattfinden…

Danke euch allen!

Andere Frage zur dem grep. Kann es eine Kette aus mehreren Wörtern nicht abgleichen? Denn so ähnlich war mein erste Script und da hat es nicht funktioniert.
Bitte warten ..
Mitglied: freeker
09.05.2017 um 12:19 Uhr
Mit grep kannst duch natürlich auch nach "Domain VM gestartet" suchen.
Die 0,3kcal hab ich mir gespart
Bitte warten ..
Mitglied: OIOOIOOIOIIOOOIIOIIOIOOO
09.05.2017 um 13:34 Uhr
ok ich habe das 'wc -l' nicht angewandt.

Vielen Dank!
Bitte warten ..
Neue Wissensbeiträge
Humor (lol)
Preisvertipper
Information von Dilbert-MD vor 20 StundenHumor (lol)6 Kommentare

Moin! weil heute Freitag ist, zeige ich Euch den Preisvertipper der Woche: vergesst den Acer Predator 21x, der ist ...

Windows Update
Sicherheitsupdate für SQL Server 2014 SP3
Information von sabines vor 1 TagWindows Update2 Kommentare

Für den SQL Server 2014 existiert ein Sicherheitsupdate. Laut KB Artikel wird es als CU3 angezeigt: Server 2014 SP3 ...

Backup

Veeam Agent für MS Windows - neue Version verfügbar (bedingt jedoch offenbar .NET Framework 4.6)

Information von VGem-e vor 2 TagenBackup1 Kommentar

Moin Kollegen, einer unserer Server zeigte grad an, dass für o.g. Software ein Update verfügbar ist. Ob ein evtl. ...

Python

Sie meinen es ja nur gut - Microsoft hilft python-Entwicklern auf unnachahmliche Weise

Information von DerWoWusste vor 4 TagenPython2 Kommentare

Stellt Euch vor, Ihr nutzt python unter Windows 10 und skriptet damit regelmäßig Dinge. Nach dem Update auf Windows ...

Heiß diskutierte Inhalte
Windows Update
WSUS - erforderlich Updates
Frage von emeriksWindows Update24 Kommentare

Hi, ein gängiges Verfahren, welche Updates man am WSUS-Server genehmigen soll und welche nicht, beruft sich darauf, dass man ...

Netzwerkgrundlagen
Neue Serverumgebung von 0 aufbauen
Frage von JacareNetzwerkgrundlagen20 Kommentare

Hallo zusammen, ich bin noch nicht lange hier und weiß nicht, ob meine Frage daher etwas ungewöhnlich ist. Ich ...

Off Topic
Installationskosten Verkabelung
Frage von Xaero1982Off Topic14 Kommentare

Moin Zusammen, ich bräuchte mal ein paar Meinungen, weil ich mir da gerade echt nicht ganz sicher bin. Ich ...

Debian
Alle Verbindungen bis auf eine IP Adresse blockieren
Frage von BananenmeisterDebian13 Kommentare

Hallo Zusammen, Ich habe einen Hyper-V Server auf dem ein debian (ohne desktop) läuft. Dort drauf ist ein Webserver ...