Solar Log Forum
21.05.2012 02:25 *
Willkommen Gast. Bitte einloggen oder registrieren.

Einloggen mit Benutzername, Passwort und Sitzungslänge
News: Forum auf Grund des Spamaufkommens auf manuelle Aktivierung neuer Benutzeraccounts umgestellt.
 
   Übersicht   Hilfe Suche Einloggen Registrieren  
Seiten: [1]   Nach unten
  Drucken  
Autor Thema: Watchdog für den Solar-Logger  (Gelesen 323 mal)
Klaus D.
Globaler Moderator
Sr. Mitglied
*****
Offline Offline

Beiträge: 305

229942439
Profil anzeigen WWW
« am: 08.11.2008 11:50 »

Hallo Achim,

ich hab mich mal dran gemacht ein Watchdog Skript anzupassen.
Funktionieren soll das ganze so:
Der Solar-Logger schreibt eine Watchdog.txt Datei die er nach einer bestimmten Zeit aktualisiert.
Das Skript überprüftob sich die Datei Ändert oder nicht.
Ändert sich die Datei nicht wird der Solar-Logger neu gestartet.



Code:
#!/bin/sh
#
# Solar-Logger - A Daemon for logging Data from a Solar Plant
# Copyright (C) 2007  Klaus Dotterweich (dr.dotti@gmx.de)
#
# This program is free software; you can redistribute it and/or modify it under the terms of the
# GNU General Public License as published by the Free Software Foundation;
# either version 3 of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
# without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with this program;
# if not, see .
#
# Solar-Logger - Ein Daemon zum loggen der Daten einer Solaranlage
# Copyright (C) 2007  Klaus Dotterweich (dr.dotti@gmx.de)
#
# Dieses Programm ist freie Software. Sie können es unter den Bedingungen der GNU General Public License,
# wie von der Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren,
# entweder gemäß Version 3 der Lizenz oder (nach Ihrer Option) jeder späteren Version.
#
# Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, daß es Ihnen von Nutzen sein wird,
# aber OHNE IRGENDEINE GARANTIE, sogar ohne die implizite Garantie der MARKTREIFE oder
# der VERWENDBARKEIT FÜR EINEN BESTIMMTEN ZWECK. Details finden Sie in der GNU General Public License.
#
# Sie sollten ein Exemplar der GNU General Public License zusammen mit diesem Programm erhalten haben.
# Falls nicht, siehe .
#



Loggen="JA" # Um das Loggen zu aktivieren JA sonst NEIN
LogDatei='/root/Solar-Logger-0.3/DebugLog/Solar-Logger-Watchdog.log' # Datei in die geloggt werden soll
WatchdogDatei='/var/www/SolarAnlage/Details/Watchdog.txt' # Die Watchdog Datei die Überprüft werden soll
#StartBefehl='/root/Solar-Logger-0.3/Solar-Logger -d' # Befehl zum starten des Solar-Loggers
StartBefehl='' # Befehl zum starten des Solar-Loggers
WatchdogZeit=1 # Intervall in Minuten in der der der Watchdog die Watchdog Datei Überprüft
StartZeit=5 # Zeit in Minuten nachdem der Solar-Logger gestartet werden soll wenn sich die Watchdog Datei nicht mehr geändert hat.



#######################
# Startzeit des Skriptes Merken
#######################
ZeitstempelStart=`date '+%s'`



###########################################
# Überprüfe ob der Watchdog schon läuft
###########################################
if [ -f /var/run/Solar-Logger-Watchdog.pid ]
then
if [ $Loggen = "JA" ]
then
echo `date '+%d.%m.%y %T'`: Watchdog ist bereits gestartet. >> $LogDatei
fi
exit
else
echo $$ > /var/run/Solar-Logger-Watchdog.pid
fi



#####################
# Start des Watchdog loggen
#####################
if [ $Loggen = "Ja" ]
then
echo `date '+%d.%m.%y %T'`: Autoshutdown started >> $LogDatei
echo `date '+%d.%m.%y %T'`: WatchdogZeit is $WatchdogZeit in Minuten >> $LogDatei
echo `date '+%d.%m.%y %T'`: StartZeit is $StartZeit in Minuten >> $LogDatei
fi



TempWatchdogDatei=''
TempStartZeit=StartZeit # Die Zeit zum Starten des Solar-Loggers wieder zurücksetzen

#####################
# Programmschleife
#####################
while [ true ]
do
#######################
# Startzeit der Schleifen Merken
#######################
ZeitstempelStartSchleife=`date '+%s'`

#  Überprüfe ob sich die WatchdogDatei geändert hat
if 'cat $WatchdogDatei' <> TempWatchdogDatei
then
# Wenn sich die Watchdogdatei geändert hat
TempWatchdogDatei='cat $WatchdogDatei'
TempStartZeit=StartZeit # Die Zeit zum Starten des Solar-Loggers wieder zurücksetzen
if [ $Loggen = "Ja" ]
then
echo `date '+%d.%m.%y %T'`: Watchdog Datei hat sich geändert. >> $LogDatei
echo `date '+%d.%m.%y %T'`: Die TempStartZeit beträgt $TempStartZeit. >> $LogDatei
fi
else
# Wenn sie sich nicht geändert hat
TempStartZeit=`/usr/bin/expr $TempStartZeit - $WatchdogZeit`
if [ $Loggen = "Ja" ]
then
echo `date '+%d.%m.%y %T'`: Watchdog Datei hat sich nicht geändert. >> $LogDatei
echo `date '+%d.%m.%y %T'`: Die TempStartZeit beträgt $TempStartZeit. >> $LogDatei
fi
fi

# Überprüfe ob StartZeit abgelaufen ist
if [ "$TempStartZeit" -le 0 ]
then
# Wenn StartZeit abgelaufen ist
# Solar Logger starten
$StartBefehl
fi

#######################
# Endezeit der Schleifen Merken
#######################
ZeitstempelEndeSchleife=`date '+%s'`

#################################################
# SchleifenZeit berechnen
#################################################
SchleifenZeit=`/usr/bin/expr $ZeitstempelEndeSchleife - $ZeitstempelStartSchleife`
if [ $Loggen = "Ja" ]
then
echo `date '+%d.%m.%y %T'`: Die Schleifenzeit beträgt $SchleifenZeit. >> $LogDatei
fi

#  Den Watchdog schlafen legen
if [ $Loggen = "Ja" ]
then
echo `date '+%d.%m.%y %T'`: Watchdog legt sich für $WatchdogZeit Minuten schlafen. >> $LogDatei
fi
sleep '/usr/bin/expr $WatchdogZeit \* 60'

done
Nur leider hab ich noch ein paar Probleme.

Der folgende Teil macht mir noch Problem:
Code:
#  Überprüfe ob sich die WatchdogDatei geändert hat
if 'cat $WatchdogDatei' <> TempWatchdogDatei
then
# Wenn sich die Watchdogdatei geändert hat
TempWatchdogDatei='cat $WatchdogDatei'
TempStartZeit=StartZeit # Die Zeit zum Starten des Solar-Loggers wieder zurücksetzen
if [ $Loggen = "Ja" ]
then
echo `date '+%d.%m.%y %T'`: Watchdog Datei hat sich geändert. >> $LogDatei
echo `date '+%d.%m.%y %T'`: Die TempStartZeit beträgt $TempStartZeit. >> $LogDatei
fi
else
# Wenn sie sich nicht geändert hat
TempStartZeit=`/usr/bin/expr $TempStartZeit - $WatchdogZeit`
if [ $Loggen = "Ja" ]
then
echo `date '+%d.%m.%y %T'`: Watchdog Datei hat sich nicht geändert. >> $LogDatei
echo `date '+%d.%m.%y %T'`: Die TempStartZeit beträgt $TempStartZeit. >> $LogDatei
fi
fi
Weis jemand wie ich den Inhalt einer Datei in eine Variable bekomme?

An der Selle:
Code:
if [ $TempStartZeit <= 0 ]
hängts auch noch.
Es soll überprüft werden ob die TempStartZeit Variabel <= 0 ist.

An der Selle:
Code:
if [ $TempAWatchdogDatei = $TempWatchdogDatei ]
hängts auch noch.
Es soll überprüft werden ob die zwei Text Variablen gleich sind.


mfg


Klaus D.
Gespeichert

Klaus D.
Globaler Moderator
Sr. Mitglied
*****
Offline Offline

Beiträge: 305

229942439
Profil anzeigen WWW
« Antworten #1 am: 08.11.2008 19:08 »

Hallo Leute,

ich habe jetzt zwei Skripte gepastelt.
Das erste Überwacht ob sich eine Datei, die der Solar-Logger erzeugt regelmässig ändert.
Das zweite Überwacht ob sich der Solar-Logger Prozess beendet wurde.

Beite Skripte sind noch BETA!!!!

Hier das Erste:
Code:
#!/bin/sh
#
# Solar-Logger - A Daemon for logging Data from a Solar Plant
# Copyright (C) 2007  Klaus Dotterweich (dr.dotti@gmx.de)
#
# This program is free software; you can redistribute it and/or modify it under the terms of the
# GNU General Public License as published by the Free Software Foundation;
# either version 3 of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
# without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with this program;
# if not, see .
#
# Solar-Logger - Ein Daemon zum loggen der Daten einer Solaranlage
# Copyright (C) 2007  Klaus Dotterweich (dr.dotti@gmx.de)
#
# Dieses Programm ist freie Software. Sie können es unter den Bedingungen der GNU General Public License,
# wie von der Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren,
# entweder gemäß Version 3 der Lizenz oder (nach Ihrer Option) jeder späteren Version.
#
# Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, daß es Ihnen von Nutzen sein wird,
# aber OHNE IRGENDEINE GARANTIE, sogar ohne die implizite Garantie der MARKTREIFE oder
# der VERWENDBARKEIT FÜR EINEN BESTIMMTEN ZWECK. Details finden Sie in der GNU General Public License.
#
# Sie sollten ein Exemplar der GNU General Public License zusammen mit diesem Programm erhalten haben.
# Falls nicht, siehe .
#



Loggen="JA" # Um das Loggen zu aktivieren JA sonst NEIN
LogPfad='/root/Solar-Logger-0.3/DebugLog/' # Pfad der Datei in die geloggt werden soll
LogDateiName='Solar-Logger-Watchdog.log' # DateiName der LogDatei
WatchdogDatei='/var/www/SolarAnlage/Details/Watchdog.txt' # Die Watchdog Datei die Überprüft werden soll
StartBefehl='/root/Solar-Logger-0.3/README/Watchdog/Solar-Logger-Start.sh' # Befehl zum starten des Solar-Loggers
#StartBefehl='' # Befehl zum starten des Solar-Loggers
WatchdogZeit=5 # Intervall in Minuten in der der der Watchdog die Watchdog Datei Überprüft
StartZeit=15 # Zeit in Minuten nachdem der Solar-Logger gestartet werden soll wenn sich die Watchdog Datei nicht mehr geändert hat.



LogDatei=$LogPfad`date '+%d.'`$LogDateiName # Datei in die geloggt werden soll

#######################
# Startzeit des Skriptes Merken
#######################
ZeitstempelStart=`date '+%s'`



###########################################
# Überprüfe ob der Watchdog schon läuft
###########################################
#if [ -f /var/run/Solar-Logger-Watchdog.pid ]
#then
# if [ $Loggen == "JA" ]
# then
# echo `date '+%d.%m.%y %T'`: Watchdog ist bereits gestartet. >> $LogDatei
# fi
# exit
#else
# echo $$ > /var/run/Solar-Logger-Watchdog.pid
#fi



#####################
# Start des Watchdog loggen
#####################
if [ $Loggen == "JA" ]
then
echo `date '+%d.%m.%y %T'`: Watchdog gestartet. >> $LogDatei
echo `date '+%d.%m.%y %T'`: WatchdogZeit is $WatchdogZeit in Minuten >> $LogDatei
echo `date '+%d.%m.%y %T'`: StartZeit is $StartZeit in Minuten >> $LogDatei
fi



TempWatchdogDatei=''
TempStartZeit=$StartZeit # Die Zeit zum Starten des Solar-Loggers wieder zurücksetzen

#####################
# Programmschleife
#####################
while [ true ]
do
LogDatei=$LogPfad`date '+%d.'`$LogDateiName # Datei in die geloggt werden soll

#######################
# Startzeit der Schleifen Merken
#######################
ZeitstempelStartSchleife=`date '+%s'`

#  Überprüfe ob sich die WatchdogDatei geändert hat
TempAWatchdogDatei=`cat $WatchdogDatei`
if [ "$TempAWatchdogDatei" = "$TempWatchdogDatei" ]
then
# Wenn sie sich nicht geändert hat
TempStartZeit=`/usr/bin/expr $TempStartZeit - $WatchdogZeit`
if [ $Loggen == "JA" ]
then
echo `date '+%d.%m.%y %T'`: Watchdog Datei ($TempAWatchdogDatei) hat sich nicht geändert. >> $LogDatei
echo `date '+%d.%m.%y %T'`: Die TempStartZeit beträgt $TempStartZeit. >> $LogDatei
fi
else
# Wenn sich die Watchdogdatei geändert hat
TempWatchdogDatei=`cat $WatchdogDatei`
TempStartZeit=$StartZeit # Die Zeit zum Starten des Solar-Loggers wieder zurücksetzen
if [ $Loggen == "JA" ]
then
echo `date '+%d.%m.%y %T'`: Watchdog Datei ($TempAWatchdogDatei) hat sich geändert. >> $LogDatei
echo `date '+%d.%m.%y %T'`: Die TempStartZeit beträgt $TempStartZeit. >> $LogDatei
fi
fi

# Überprüfe ob StartZeit abgelaufen ist
if [ $TempStartZeit -le 0 ]
then
echo `date '+%d.%m.%y %T'`: Die TempStartZeit ist abgelaufen. Der Startbefehl wird ausgeführt. >> $LogDatei
# Wenn StartZeit abgelaufen ist
# Solar Logger starten
$StartBefehl
fi

#######################
# Endezeit der Schleifen Merken
#######################
ZeitstempelEndeSchleife=`date '+%s'`

#################################################
# SchleifenZeit berechnen
#################################################
SchleifenZeit=`/usr/bin/expr $ZeitstempelEndeSchleife - $ZeitstempelStartSchleife`
if [ $Loggen == "JA" ]
then
echo `date '+%d.%m.%y %T'`: Die Schleifenzeit beträgt $SchleifenZeit. >> $LogDatei
fi

#  Den Watchdog schlafen legen
if [ $Loggen == "JA" ]
then
echo `date '+%d.%m.%y %T'`: Watchdog legt sich für $WatchdogZeit Minuten schlafen. >> $LogDatei
echo `date '+%d.%m.%y %T'`: Watchdog legt sich für `/usr/bin/expr $WatchdogZeit \* 60` Sekunden schlafen. >> $LogDatei
fi
sleep `/usr/bin/expr $WatchdogZeit \* 60`

done
Hier das Zweite:
Code:
#!/bin/sh
#
# Solar-Logger - A Daemon for logging Data from a Solar Plant
# Copyright (C) 2007  Klaus Dotterweich (dr.dotti@gmx.de)
#
# This program is free software; you can redistribute it and/or modify it under the terms of the
# GNU General Public License as published by the Free Software Foundation;
# either version 3 of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
# without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with this program;
# if not, see .
#
# Solar-Logger - Ein Daemon zum loggen der Daten einer Solaranlage
# Copyright (C) 2007  Klaus Dotterweich (dr.dotti@gmx.de)
#
# Dieses Programm ist freie Software. Sie können es unter den Bedingungen der GNU General Public License,
# wie von der Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren,
# entweder gemäß Version 3 der Lizenz oder (nach Ihrer Option) jeder späteren Version.
#
# Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, daß es Ihnen von Nutzen sein wird,
# aber OHNE IRGENDEINE GARANTIE, sogar ohne die implizite Garantie der MARKTREIFE oder
# der VERWENDBARKEIT FÜR EINEN BESTIMMTEN ZWECK. Details finden Sie in der GNU General Public License.
#
# Sie sollten ein Exemplar der GNU General Public License zusammen mit diesem Programm erhalten haben.
# Falls nicht, siehe .
#



PruefText='Solar-Logger' # Dieser Text wird in der Ausgabe von ps fx gesucht
WatchdogZeit=1 # Intervall in Minuten in der der der Watchdog die Watchdog Datei Überprüft
StartZeit=5 # Zeit in Minuten nachdem der Solar-Logger gestartet werden soll wenn sich die Watchdog Datei nicht mehr geändert hat.
StartBefehl='/root/Solar-Logger-0.3/README/Watchdog/Solar-Logger-Start.sh' # Befehl zum starten des Solar-Loggers
#StartBefehl='' # Befehl zum starten des Solar-Loggers

Loggen="DEBUG" # Um alles zu Loggen "DEBUG" und nur sinnvolle Sachen zu Loggen "JA"
LogPfad='/root/Solar-Logger-0.3/DebugLog/Watchdog/' # Pfad der Datei in die geloggt werden soll
LogDateiName='Solar-Logger-Watchdog.log' # DateiName der LogDatei



LogDatei=$LogPfad`date '+%d.'`$LogDateiName # Datei in die geloggt werden soll

#######################
# Startzeit des Skriptes Merken
#######################
ZeitstempelStart=`date '+%s'`



###########################################
# Überprüfe ob der Watchdog schon läuft
###########################################
#if [ -f /var/run/Solar-Logger-Watchdog.pid ]
#then
# if ([ $Loggen == "DEBUG" ] || [ $Loggen == "JA" ])
# then
# echo `date '+%d.%m.%y %T'`: Watchdog ist bereits gestartet. >> $LogDatei
# fi
# exit
#else
# echo $$ > /var/run/Solar-Logger-Watchdog.pid
#fi



#####################
# Start des Watchdog loggen
#####################
if ([ $Loggen == "DEBUG" ] || [ $Loggen == "JA" ])
then
echo `date '+%d.%m.%y %T'`: Watchdog gestartet. >> $LogDatei
echo `date '+%d.%m.%y %T'`: WatchdogZeit is $WatchdogZeit in Minuten. >> $LogDatei
echo `date '+%d.%m.%y %T'`: StartZeit is $StartZeit in Minuten. >> $LogDatei
fi



TempStartZeit=$StartZeit # Die Zeit zum Starten des Solar-Loggers wieder zurücksetzen

#####################
# Programmschleife
#####################
while [ true ]
do
LogDatei=$LogPfad`date '+%d.'`$LogDateiName # Datei in die geloggt werden soll

#######################
# Startzeit der Schleifen Merken
#######################
ZeitstempelStartSchleife=`date '+%s'`

# Überprüfen ob der Solar-Logger Prozess läuft
ps fx | grep -v grep | grep "$PruefText" > /dev/null
if [ $? -eq 0 ]
then
# Wenn der PruefText gefunden wurde (Solar-Logger läuft)
TempStartZeit=$StartZeit # Die Zeit zum Starten des Solar-Loggers wieder zurücksetzen
if [ $Loggen == "DEBUG" ]
then
echo `date '+%d.%m.%y %T'`: Der Solar-Logger läuft. >> $LogDatei
echo `date '+%d.%m.%y %T'`: Die TempStartZeit beträgt $TempStartZeit. >> $LogDatei
fi
else
# Wenn der PruefText nicht gefunden wurde (Solar-Logger läuft nicht)
TempStartZeit=`/usr/bin/expr $TempStartZeit - $WatchdogZeit`
if ([ $Loggen == "DEBUG" ] || [ $Loggen == "JA" ])
then
echo `date '+%d.%m.%y %T'`: Der Solar-Logger läuft nicht. >> $LogDatei
echo `date '+%d.%m.%y %T'`: Die TempStartZeit beträgt $TempStartZeit. >> $LogDatei
fi
fi

# Überprüfe ob StartZeit abgelaufen ist
if [ $TempStartZeit -le 0 ]
then
# Wenn StartZeit abgelaufen ist
if ([ $Loggen == "DEBUG" ] || [ $Loggen == "JA" ])
then
echo `date '+%d.%m.%y %T'`: Die TempStartZeit ist abgelaufen. Der Startbefehl wird ausgeführt. >> $LogDatei
fi
# Solar Logger starten
$StartBefehl
fi

#######################
# Endezeit der Schleifen Merken
#######################
ZeitstempelEndeSchleife=`date '+%s'`

#################################################
# SchleifenZeit berechnen
#################################################
SchleifenZeit=`/usr/bin/expr $ZeitstempelEndeSchleife - $ZeitstempelStartSchleife`
if [ $Loggen == "DEBUG" ]
then
echo `date '+%d.%m.%y %T'`: Die Schleifenzeit beträgt $SchleifenZeit. >> $LogDatei
fi

#  Den Watchdog schlafen legen
if [ $Loggen == "DEBUG" ]
then
echo `date '+%d.%m.%y %T'`: Watchdog legt sich für $WatchdogZeit Minuten schlafen. >> $LogDatei
echo `date '+%d.%m.%y %T'`: Watchdog legt sich für `/usr/bin/expr $WatchdogZeit \* 60` Sekunden schlafen. >> $LogDatei
fi
sleep `/usr/bin/expr $WatchdogZeit \* 60`

done
Morgen werd ich das Zweite mal Testen, da ich so ca. 2x im Jahr den Fall habe das der Solar-Logger Prozess einfach weg ist.


mfg


Klaus D.
Gespeichert

Ingmar
Administrator
Volles Mitglied
*****
Offline Offline

Beiträge: 158

297212801
Profil anzeigen WWW
« Antworten #2 am: 08.11.2008 22:44 »

Hi,

super, das du dich an diese Skripte gemacht hast. Werde ich die Tage mal anschauen und vielleicht teilweise in mein Paket für die Fritz!Box mit einbauen.

Allerdings habe ich da was gesehen, das vielleicht nicht so Ideal ist. Bei dir scheint der Solar-Logger als root zu laufen? ("StartBefehl='/root/Solar-Logger-0.3/README/Watchdog/Solar-Logger-Start.sh'")
Gespeichert

Klaus D.
Globaler Moderator
Sr. Mitglied
*****
Offline Offline

Beiträge: 305

229942439
Profil anzeigen WWW
« Antworten #3 am: 09.11.2008 09:43 »

Hei Ingmar,

ja das stimmt und ich kann damit leben. Momentan zumidest.
Bin noch ned so fit im Punkto Linux UserRechte.

mfg

Klaus D.
Gespeichert

Klaus D.
Globaler Moderator
Sr. Mitglied
*****
Offline Offline

Beiträge: 305

229942439
Profil anzeigen WWW
« Antworten #4 am: 09.11.2008 23:18 »

Hallo Leute,

ich hab diese Wochenende ein paar nützliche Skripte geschrieben. Unter anderem auch zwei verschiedene Watchdogs.
Hier könnt ihr sie finden:
http://virtuelleshaus.selfip.com/Solar-Logger/Skripte/Skripte.html


mfg

Klaus D.
Gespeichert

Ingmar
Administrator
Volles Mitglied
*****
Offline Offline

Beiträge: 158

297212801
Profil anzeigen WWW
« Antworten #5 am: 11.11.2008 12:18 »

Mal schauen, wie ich den Watchdog realisiere, wenn ich mich vollends an die Programmierung meines modularen Logger mache. Ich werde jedenfalls eine möglichst schlanke Lösung suchen, da ich ja so auf Embedded-Systeme abfahre.
Gespeichert

Seiten: [1]   Nach oben
  Drucken  
 
Gehe zu:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006-2009, Simple Machines LLC Prüfe XHTML 1.0 Prüfe CSS