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

Batch- Server nach Kontrolle (Ip und spez. Progr.) runterfahren

Frage Entwicklung Batch & Shell

Mitglied: kuhnikuehnast

kuhnikuehnast (Level 1) - Jetzt verbinden

16.01.2010, aktualisiert 16:30 Uhr, 2657 Aufrufe

Ich habe eine Batch für einen Server geschrieben.
Es soll alle 10 min kontrolliert werden, ob Pcs der Domäne noch erreichbar sind. Ist dies nciht mehr der Fall, wird mit einer config.txt abgeglichen, ob noch ein oder mehrere zuvor definierte Programme laufen. Ist dies auch nicht mehr der Fall, fährt der Server das System herunter.

Hi!
Ich poste mal hier den Quellcode... Evtl. ist manches etwas umständlich und hätte auch einfacher gelöst werden können... Vielleicht werden aber auch noch Fehler gefunden, die mir bisher entgangen sind. Deshalb stell ich den Quellcode mal online. Würde mich über Kritik freuen (aber bitte nicht bez.: Das hätte auch so einfacher gehen können... Nur, wenn wirklcih Fehler drin sind! ;) )

lg Kuhni


edit: Code wurde nochmals überarbeitet...


01.
@echo off 
02.
 
03.
 
04.
set ipmax=12 
05.
set ipmin=9 
06.
set countdown=2 
07.
set Wartezeit=600 
08.
set Programmliste=config.txt 
09.
 
10.
set xcountdown=%countdown% 
11.
 
12.
 
13.
REM ###################Umlaute definieren################### 
14.
chcp 1252>nul 
15.
set ue=ü 
16.
set ae=ä 
17.
set oe=ö 
18.
set Uue=Ü 
19.
set Aae=Ä 
20.
set Ooe=Ö 
21.
set ss=ß 
22.
chcp 850>nul 
23.
REM ########################################################## 
24.
 
25.
 
26.
 
27.
 
28.
 
29.
 
30.
REM ###################Wartezeit berechnen################### 
31.
 
32.
set /a min=%wartezeit%/60 
33.
set /a y=%min%*60 
34.
set /a sek=%wartezeit%-%y% 
35.
set waittime=Wartezeit: %min% Minute(n), %sek% Sekunde(n) 
36.
REM ########################################################## 
37.
 
38.
if not exist "%CD%/log/" mkdir "%CD%/log/" 
39.
 
40.
	call :ausgabe Serverstart 
41.
        call :ausgabe %waittime% 
42.
	echo. & echo. >>"%CD%/log/[%date%]- Logfile Server.txt" 
43.
 
44.
ping localhost -n %Wartezeit% > nul 
45.
 
46.
	 
47.
REM ###################Mainloop################### 
48.
:mainloop 
49.
	set ip=%ipmin% 
50.
	if %xcountdown%==0 goto programm 
51.
 
52.
	call :ausgabe Ping Start- Ip-Bereich: 192.168.0.%ip% - 192.168.0.%ipmax%  
53.
 
54.
 
55.
 
56.
REM ###################Ping ausfhren################### 
57.
 
58.
:pingloop 
59.
	if %ip% EQU %ipmax% goto endeschlecht 
60.
	set /a ip=%ip%+1 
61.
	ping 192.168.0.%ip% -n 1 -w 10 %1|find "TTL=" > nul 
62.
	if %errorlevel%==1 goto not-available 
63.
	goto :endegut 
64.
 
65.
 
66.
 
67.
:not-available 
68.
	goto pingloop 
69.
 
70.
 
71.
 
72.
 
73.
:endegut 
74.
	 
75.
 
76.
		set xcountdown=%countdown% 
77.
 
78.
	call :ausgabe Ping Ergebnis Positiv- Erste Ip: 192.168.0.%ip%  
79.
	call :ausgabe %waittime% 
80.
 
81.
		echo. & echo. >>"%CD%/log/[%date%]- Logfile Server.txt" 
82.
 
83.
		ping localhost -n %Wartezeit% > nul 
84.
 
85.
 
86.
	goto mainloop 
87.
 
88.
 
89.
 
90.
:endeschlecht 
91.
	 
92.
 
93.
		set /a xcountdown=%xcountdown%-1 
94.
 
95.
	call :ausgabe Ping  Negativ- Noch %xcountdown% Ping(s) bis zum herunterfahren 
96.
 	call :ausgabe %waittime% 
97.
	 
98.
		echo. & echo. >>"%CD%/log/[%date%]- Logfile Server.txt" 
99.
 
100.
		ping localhost -n %Wartezeit% > nul 
101.
 
102.
 
103.
	goto mainloop	 
104.
REM ########################################################## 
105.
 
106.
REM ########################################################## 
107.
 
108.
 
109.
 
110.
 
111.
 
112.
 
113.
REM ###################Runterfahren################### 
114.
 
115.
:runterfahren 
116.
	echo. & echo. >>"%CD%/log/[%date%]- Logfile Server.txt" 
117.
 
118.
		call :ausgabe Initiale Shutdownkontrolle gestartet: 
119.
 
120.
			:pingloop2 
121.
			if %ip% EQU %ipmax% goto endeschlecht2 
122.
			set /a ip=%ip%+1 
123.
					ping 192.168.0.%ip% -n 1 -w 10 %1|find "TTL=" > nul 
124.
			if %errorlevel%==1 goto not-available2 
125.
			goto :endegut 
126.
 
127.
			:not-available2 
128.
			goto pingloop2 
129.
 
130.
 
131.
 
132.
			:endeschlecht2 
133.
			call :ausgabe Kein Pc erreichbar: 192.168.0.%ip% - 192.168.0.%ipmax% 
134.
			 
135.
				set prog=0 
136.
 
137.
					for /f %%a in (%Programmliste%) do Tasklist |find /i "%%a" && set /a prog+=1 1>NUL 2>NUL  
138.
 
139.
				if %prog%==0 ( 
140.
					goto :programm-aus2  
141.
				) else ( 
142.
					goto :programm-an 
143.
144.
 
145.
			:programm-aus2 
146.
                        call :ausgabe Es l%ae%uft kein wichtiges Programm mehr. 
147.
			call :ausgabe Shutdown initiiert. 
148.
			echo. & echo. >>"%CD%/log/[%date%]- Logfile Server.txt" 
149.
 
150.
	shutdown.exe /f /s 
151.
exit 
152.
REM ########################################################## 
153.
 
154.
 
155.
 
156.
 
157.
 
158.
REM ###################Schleife läuft noch ein Programm?################### 
159.
 
160.
:programm 
161.
	 
162.
	 
163.
	set prog=0 
164.
 
165.
		for /f %%a in (%Programmliste%) do Tasklist |find /i "%%a" && set /a prog+=1 1>NUL 2>NUL  
166.
 
167.
	 
168.
	if %prog%==0 ( 
169.
		goto :programm-aus  
170.
	)else ( 
171.
		goto :programm-an 
172.
173.
 
174.
:programm-an 
175.
        call :ausgabe Programmtest: 
176.
        call :ausgabe Es l%ae%uft/laufen noch %prog% Programm(e). 
177.
	call :ausgabe %waittime% 
178.
 
179.
		echo. & echo. >>"%CD%/log/[%date%]- Logfile Server.txt" 
180.
 
181.
		ping localhost -n %Wartezeit% > nul 
182.
	goto :programm 
183.
 
184.
:programm-aus 
185.
        call :ausgabe Programmtest (1. Versuch): 
186.
        call :ausgabe Es l%ae%uft kein wichtiges Programm mehr.  
187.
	call :ausgabe %waittime% 
188.
 
189.
		echo. & echo. >>"%CD%/log/[%date%]- Logfile Server.txt" 
190.
 
191.
		ping localhost -n %Wartezeit% > Nul 
192.
 
193.
	set prog=0 
194.
 
195.
		for /f %%a in (%Programmliste%) do Tasklist |find /i "%%a" && set /a prog+=1 1>NUL 2>NUL 
196.
 
197.
 
198.
	 
199.
	if %prog%==0 ( 
200.
		goto :test 
201.
	) else ( 
202.
		goto :programm-an 
203.
204.
 
205.
:test 
206.
	call :ausgabe Programmtest (2. Versuch): 
207.
        call :ausgabe Es l%ae%uft kein wichtiges Programm mehr.  
208.
	call :ausgabe %waittime%  
209.
	ping localhost -n %Wartezeit% > nul 
210.
	goto :runterfahren	 
211.
REM ########################################################## 
212.
 
213.
 
214.
 
215.
 
216.
 
217.
 
218.
 
219.
 
220.
 
221.
REM ###################Schleife für Ausgabe und Log################### 
222.
 
223.
:ausgabe 
224.
 
225.
	set Zeit=%Time% 
226.
chcp 1252>nul 
227.
	echo [%date% - %Zeit%] %* >> "%CD%/log/[%date%]- Logfile Server.txt" 
228.
chcp 850>nul 
229.
	echo [%date% - %Zeit%] %* 
230.
 
231.
goto :eof 
232.
REM ##########################################################
Ähnliche Inhalte
Batch & Shell
Username Kontrolle
gelöst Frage von MaxophoniBatch & Shell3 Kommentare

Hallo, ich bin gerade dabei ein Batch Programm zu schreiben. Ich möchte das gleich am Anfang der Benutzername abgefragt ...

Server-Hardware
Server runterfahren gut, bzw. schlecht für Festplatten?
Frage von 114068Server-Hardware31 Kommentare

Hallo, wir haben einige betagte Server bei uns rumstehen, die schon jahrelang brav liefen. Jetzt müssen die allerdings in ...

Windows Server
Sentinel DX4000 Server auch über Remote Desktop runterfahren?
gelöst Frage von garackWindows Server3 Kommentare

Hallo Leute, In den Bedienungsanleitungen des WD Sentinel DX4000 Windows 2008RC2 Storage Servers finde ich keine Infos zu meiner ...

Batch & Shell
IP-Adresse in Batch, CMD
gelöst Frage von MaxophoniBatch & Shell12 Kommentare

Hallo, ich möchte in einer Batch-Datei eine Variable einfügen, die nur die IP-Adresse anzeigt. Dies funktioniert mittels ipconfig, doch ...

Neue Wissensbeiträge
Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 4 StundenInternet2 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 8 StundenDSL, VDSL1 Kommentar

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Windows 10

Microsoft bestätigt DMA-Policy-Problem in Win10 v1709

Information von DerWoWusste vor 8 StundenWindows 10

Wer sein Gerät mit der DMA-Policy absichert, bekommt evtl. Hardwareprobleme in v1709 von Win10. Warum? Weil v1709 endlich "richtig" ...

Verschlüsselung & Zertifikate

Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows

Information von ticuta1 vor 12 StundenVerschlüsselung & Zertifikate

Interessant Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows SSH-Kommando in CMD.exe und PowerShell

Heiß diskutierte Inhalte
Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement21 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server19 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
gelöst Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...