Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Startscript, nach Absturz automatisch neustarten

Frage Sicherheit Erkennung und -Abwehr

Mitglied: Grex09

Grex09 (Level 1) - Jetzt verbinden

18.02.2009, aktualisiert 20.02.2009, 9032 Aufrufe, 18 Kommentare

Hallo, ich poste hier mal mein startscript:

[code]
#! /bin/bash

case "$1" in
start)
if [ -e server.pid ]; then
echo "server.pid existiert bereits";
exit 1
else
echo "Server wird hochgefahren"
if [ -e samp02Xsvr ]; then
if [ ! -x samp02Xsvr ]; then
echo "Bitte nochmal ausfuehren "
chmod u+x /home/samp02Xsvr
fi
if [ -x start.sh ]; then
./start.sh
pidof samp02Xsvr > server.pid
else
echo "start.sh existiert nicht, bitte ueberpruefen"
exit 4
fi
else
echo "Konnte start.sh nicht finden"
exit 5
fi
fi
;;
stop)
if [ -e server.pid ]; then
echo -n "Server wird runtergefahren"
if ( kill -TERM `cat server.pid` ); then
for c in $(seq 1 300); do
if [ -e server.pid ]; then
echo -n "."
sleep 1
fi
done
fi
if [ -e server.pid ]; then
echo "Server wurde nicht ordnungsgemaes runtergefahren"
kill -KILL `cat server.pid`
rm server.pid
sleep 5
else
echo "done"
fi
else
echo "server.pid nicht vorhanden, Server nicht gestartet?"
exit 7
fi
;;
restart)
$0 stop && $0 start || exit 1
;;
status)
if [ -e server.pid ]; then
echo "Der Server laeuft ordnungsgemaes."
exit 0
else
echo "Der Server lauft derzeit nicht!"
exit 3
fi
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 2
esac
exit 0

[/code]

Und zwar möchte ich dass er in regelmäßigen abständen überprüft ob die PID in der sever.pid existiert, wenn ja nichts machen, wenn nein, ./startscript restart ausführen...

Kann mir dabei jemand helfen, oder gleich eines posten, wenn das hier nicht funktionieren sollte.




[Edit Biber] Verschoben von "Linux/Unix Systemdateien" nach "IT-Sicherheit"->"Angriffserkennung und Abwehr" [/Edit]
Mitglied: harti85
19.02.2009 um 09:58 Uhr
Also da müsstest ja auf CRON-Jobs zurückgreifen und dort eben stündlich, halbstündlich, wie du es willst, einstellen:
01.
#!/bin/bash 
02.
pidfile = "<vollständiger pfad zu deiner pid-file>" 
03.
if [ -e $pidfile] then 
04.
pid = `cat $pidfile` 
05.
result = `ps -ef | grep $pid | wc -l` 
06.
 
07.
if [ $result -lt 1 ] 
08.
  /etc/init.d/startscript restart 
09.
fi 
10.
 
11.
fi
Bei stündlicher Ausführung müsstest du dieses Script nur unter /etc/cron.hourly/ einfügen und ausführbar machen. (ist jedenfalls bei den meisten Linux Systemen so.

Gruß Martin
Bitte warten ..
Mitglied: Grex09
19.02.2009 um 12:43 Uhr
Danke, werde den Server heute Nacht einmal abschmieren lassen, mal schauen ob er neu startet. Ist es eigentlich gut, jede Minute das Script uszuführen?, kommt es dann nicht zu "lags" jede Minute ?, oder "spürt" man davon kaum was ? , hatte noch nie was mit Crontabs direkt unter Linux zu tun ( nur über Programme, Webapplikationen usw. ).

Achja das mit den Rechten hat sich erledigt :D
Bitte warten ..
Mitglied: harti85
19.02.2009 um 12:47 Uhr
Ich würds auf 0700 ändern, weil das script ja als root gestartet werden soll oder? Voraussetzung dafür ist, dass du das Script als root erstellst bzw dann mit chown root dem superuser zuteilst.

wichtig ist jedenfalls das x-Flag, welcher User es auch immer ausführen soll. Wie gesagt, das müsstest über crontab -eu <user> steuern. Schätzungsweise aber als root, daher reichts des script mit 700 Rechten ins /etc/cron.hourly verzeichnis zu kopieren, dann führt ers jede Stunde aus.

Gruß Martin
Bitte warten ..
Mitglied: Grex09
19.02.2009 um 13:04 Uhr
Hi, hab oben zwar was editiert, jedoch möchte ich noch hier was dazuschreiben.

Habe die Datei die ins Verzeichnis erstellt unter dem user ( beispiel: a ). Habe crontab -e gemacht und
  • * * * * Meinverzeichnis/crontab
gemacht, so sollte es doch funktionieren oder ? ( war als user a eingeloggt, für das erstellen des Crontabs).


EDIT: Der Aufzählungszeichen sollte ein * sein, nimmt er nicht wirklich an, trotz Leerzeichen, naja.
Bitte warten ..
Mitglied: harti85
19.02.2009 um 13:09 Uhr
Ja, sollte so funktionieren.

Zum Testen, ob ers wirklich jede Minute als user A ausführt würd ich dann am Ende meines Scripts noch date >> <pfad wo dus hinhaben willst> schreiben, dann siehst, wann er das script ausführt.

Zeit sollte übrigens kein Problem sein, weil des Script ja relativ schnell fertig sein sollte.
Bitte warten ..
Mitglied: Grex09
19.02.2009 um 13:13 Uhr
ok danke, jo schon wie oben gesagt, ich lasse mal den server heute abschmieren, ob er den crontab ausführt.
Und nur rein interssehalber, kann man auch jede Sekunde prüfen lassen?, würde das gehen mit
/60 * * * * meinscript/crontab

?
Bitte warten ..
Mitglied: harti85
19.02.2009 um 13:53 Uhr
Also, meines technischen Know-Hows geht das nicht, ich lasse mich allerdings gerne besserem belehren. Wie gesagt, ich habs noch nie gebraucht und auch noch nicht gelesen/gehört.

Wäre auch in den meisten Fällen verbratene Rechenleistung. Dann könnte man ja gleich im Script selbst drauf warten mit sleep <Millisekunden> z.B.
Bitte warten ..
Mitglied: Grex09
19.02.2009 um 16:17 Uhr
ok danke ! für die Infos.

Mit freundlichen Grüßen
Grex09
Bitte warten ..
Mitglied: Biber
19.02.2009 um 19:05 Uhr
Moin grex09,

<OT>
ich kann ja bei "Linux & Unix"-"Systemdateien" nicht wirklich viel helfen, aber Dein Titel...
Startscript, wenn server absützt automitsch staten
....erscheint mir -wohlgemerkt als Laie- doch ein wenig optimierbar für unsere Forumssuch-Funktion bzw. UserInnen mit ähnlichen Problemen.
Könntest Du diesen Titel, wenn Du wieder im Forum sein solltest, ein bissi editieren?

Dafür wäre sehr dankbar
Biber
</OT>
Bitte warten ..
Mitglied: Grex09
19.02.2009 um 21:48 Uhr
Hi, welche Titel sollte ich denn nenne ?

EDIT: Funktioniert nun, bei der zweiten Abfrage gehört noch ein ;then und bei der ersten Abfrage fehlt das ";" vor then.

Mit freundlichen Grüßen
Grex
Bitte warten ..
Mitglied: Biber
20.02.2009 um 00:19 Uhr
<Nu' aber voll OT>
Hmmmmmmmmm, Grex09,

welche Titel sollte ich denn nenne ?
Dieser Karneval macht mich jedes Jahr fertig... allein diese Sprache....*seufz*

ich versuche mal, laaaaaangsam einen Verbesserungsvorschlag herzuleiten:
[Dein jetziger Titel]
Startscript, wenn server absützt automitsch staten
Zu dem mir nicht geläufigen Fachterminus "absützt" habe ich eine der bekannteren Suchmaschinen bemüht.

Dazu werden (außer Deinem Beitrag) auch unter anderem dieser Thread auf der Seite www.aiqum.de gefunden:
Es gibt 2 Threads dazu........Bauchmuskeln und weibliche Brust. Bei der weiblichen Brust gibt es eine Übung bei der man seitlich liegt und sich absützt, das wäre z.B. etwas für dich.
Quelle: Forum aiqum.de

Jahaa....... das Thema "weibliche Brust absützen" hat mich zwar auch immer schon irgendwie interessiert.
Aber bei den genannten Sprachakrobaten geht es - ich zitiere (und habe mich beim Lesen fast eingenässt) um:
Dauerhaft abnehmen über gesundes Abnehmen sollte das Ziel heißen - und das ist exakt die Kunst, die AIQUM perfekt beherrscht!
Quelle: Abnehmen leicht schnell abnehmen warum abnehmen ]

Wer solche Ziele wie "Abnehmen über Abnehmen" über solche Wege formulieren kann, verfügt sicherlich über eine ziemlich geradlinige und unkomplizierte Denkweise, aber, um auf das eigentliche Thema "absützen" zurückzukommen:
Ich kann mir NICHT vorstellen, dass Dein Server so etwas macht!

.... aber okay, ich bin auch kein Unix-Guru....

Mehr Tipps gebe ich aber erstmal nicht zum Thema Titel-Editieren....

Grüße
Biber
</Nu' aber voll OT>
Bitte warten ..
Mitglied: Grex09
20.02.2009 um 00:27 Uhr
hehe danke für dein Vortrag.
So, leider funktioniert es nicht, siehe:
01.
#!/bin/bash 
02.
 
03.
pidfile="/home/server.pid" 
04.
 
05.
if [ -e $pidfile ]; then 
06.
	pid=`cat $pidfile` 
07.
	result=`ps -ef | grep $pid | wc -l` 
08.
 
09.
	if [ $result -lt 1 ]; then 
10.
	/home/startscript restart 
11.
	fi 
12.
fi
sieht da jemand einen Fehler?
Ich führe es aus, kein Fehler kommt, jedoch der Befehl wird nicht ausgeführt, also der /home/startscript restart Befehel.


Mit freundlichen Grüßen
Grex
Bitte warten ..
Mitglied: 16568
20.02.2009 um 08:02 Uhr
Wer einen Cron mit * * * * * (also WIRKLICH jede Minute!) ausführt, der ist bißchen pervers veranlagt...

Wie wäre es, anstelle den Server zu quälen, ein anständiges Programm/Script zu schreiben, daß nicht andauernd abstürzt?

Aber das ist nur meine bescheidene Meinung, ich war mal so frei, einen anderen Spezialisten auf diesem Gebiet zu konsultieren...
(meldet sich hier vielleicht auch noch mal zu Wort...)


Lonesome Walker
Bitte warten ..
Mitglied: Grex09
20.02.2009 um 13:57 Uhr
sry das ist nicht mein Programm, daher habe ich keine Source codes und kann eben nicht bearbeiten. Es sieht so aus, dass einer einen Crashcode sendet, der den Server crashen lässt. Wenn man aber hier als Idiot dargestellt wird, dann werde ich mir von wo anders die Hilfe holen....

Mit freundlichen Grüßen
Grex
Bitte warten ..
Mitglied: gnarff
20.02.2009 um 16:12 Uhr
Ich sehe nicht, dass dich hier irgendwer als Idiot dargestellt hat; es ging wohl um deine Rechtschreibfehler.

Was heisst hier, dass jemand einen Crashcode sendet?
Wenn es moeglich ist, dass dir jemand mit einem Exploit den Server abschiesst, dann ist nicht ein Autoreboot script - was als Funktion sowieso in den meisten *nix systemen vorhanden ist - das Mittel der Wahl, sondern sein Betriebssystem zu patchen und den Angreifer auszusperren.

Dann verstehe ich auch nicht das ganze herumgecode. Du hast einen Linux SA-MP Gameserver laufen und der bringt bereits alle Skripte mit, die du benoetigst um das gute Stueck Online zu halten; in diesem Fall mit
01.
 nohup ./restart.sh &
Die restart.sh sieht so aus:
01.
 #!/bin/sh 
02.
log=samp.log 
03.
dat=`date` 
04.
samp="/path/to/samp/server/samp02Xsvr" 
05.
cd /path/to/samp/server 
06.
  
07.
echo "${dat} watchdog script starting." >>${log} 
08.
while true; do 
09.
        echo "${dat} Server exited, restarting..." >>${log} 
10.
        mv /path/to/samp/server/server_log.txt /path/to/samp/server/logs/server_log.`date '+%m%d%y%H%M%S'` 
11.
        ${samp} >> $log 
12.
	sleep 2 
13.
done
Wie du siehst braucht es dazu keinen cronjob.
Weitere Skripte in der Gebrauchsanweisung

Der Thread gehoert nach Angriffserkennung und Abwehr verschoben.

Saludos
gnarff
Bitte warten ..
Mitglied: Grex09
20.02.2009 um 16:19 Uhr
Hallo,
ok danke und es tut mir leid, für meinen Ausdruck in meinen vorherigen Post.

Mit freundlichen Grüßen
Grex09
Bitte warten ..
Mitglied: Biber
20.02.2009 um 17:35 Uhr
<OT III>
Moin grex09,

ich habe den Beitrag jetzt verschoben nach "Angriffserkennung und -abwehr" wie von gnarff vorgeschlagen.

Und um eventuellen Missverständnissen vorzubeugen:
Ich wollte zu keinem Zeitpunkt zum Ausdruck bringen, dass ich Dich für nicht lernfähig halte.
Als pingeliger und hanseatisch-biederer, ordnungsliebender und humorloser unterkühlter Bremer konnte ich an der (ursprünglichen) Beitragsüberschrift nicht vorbeigehen.

Ich weiß nicht, ob Du den Loriot-Sketch "Das Bild hängt schief..." kennst?

Egal - meine OT-Kommentare weiter oben sollten jedenfalls keine Beleidigung und kein persönlicher Angriff sein.

So, genug offgetopict für heute - schönes Wochenende allen
Biber
</OT III>
Bitte warten ..
Mitglied: Grex09
21.02.2009 um 12:55 Uhr
Danke, dir auch und an alle schönes Wochenende.
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Microsoft Office
Registerkarte in Excel automatisch färben (10)

Frage von ralfkausk zum Thema Microsoft Office ...

Windows Server
Jnlp Endungen mit Java automatisch verknüpfen über GPO (10)

Frage von staybb zum Thema Windows Server ...

Batch & Shell
gelöst Alte Daten automatisch per Zip erstellen (4)

Frage von BEBBYs zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...