Wenn das alles geklappt hat, sollte der CRON fleißig arbeiten. Aber nun müssen wir unsere schützende Hand über unseren Raspi, speziell über unsere SD-Karte halten. In Linux wird nämlich eine große Menge an Informationen in Protokolldateien geschrieben. Das ist bei der Fehlersuche sehr hilfreich, hier im konkreten Falle störend, weil es laufend unnötige Schreibzugriffe auf die SD-Karte verursacht. Schauen wir uns das mal an. Der Benutzer root gibt diesen Befehl:
Code:
tail -f /var/log/apache2/access.log
Weil wir den Parameter -f eingegeben haben, lohnt es sich, den Schwanz dieser Logdatei mehr als eine Minute lang zu beobachten. Wenn es nach einigen Minuten langweilig wird, drückt man Strg-C und ist wieder in der Konsole.
Code:
127.0.0.1 - - [30/Jul/2014:10:56:02 +0200] "GET /steuerung/cronaufruf.php HTTP/1.0" 200 262 "-" "Lynx/2.8.8dev.12 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/2.12.18"
127.0.0.1 - - [30/Jul/2014:10:57:01 +0200] "GET /steuerung/cronaufruf.php HTTP/1.0" 200 333 "-" "Lynx/2.8.8dev.12 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/2.12.18"
127.0.0.1 - - [30/Jul/2014:10:58:01 +0200] "GET /steuerung/cronaufruf.php HTTP/1.0" 200 262 "-" "Lynx/2.8.8dev.12 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/2.12.18"
127.0.0.1 - - [30/Jul/2014:10:59:01 +0200] "GET /steuerung/cronaufruf.php HTTP/1.0" 200 262 "-" "Lynx/2.8.8dev.12 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/2.12.18"
127.0.0.1 - - [30/Jul/2014:11:00:01 +0200] "GET /steuerung/cronaufruf.php HTTP/1.0" 200 262 "-" "Lynx/2.8.8dev.12 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/2.12.18"
127.0.0.1 - - [30/Jul/2014:11:01:02 +0200] "GET /steuerung/cronaufruf.php HTTP/1.0" 200 262 "-" "Lynx/2.8.8dev.12 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/2.12.18"
127.0.0.1 - - [30/Jul/2014:11:02:01 +0200] "GET /steuerung/cronaufruf.php HTTP/1.0" 200 262 "-" "Lynx/2.8.8dev.12 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/2.12.18"
127.0.0.1 - - [30/Jul/2014:11:03:01 +0200] "GET /steuerung/cronaufruf.php HTTP/1.0" 200 353 "-" "Lynx/2.8.8dev.12 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/2.12.18"
127.0.0.1 - - [30/Jul/2014:11:04:01 +0200] "GET /steuerung/cronaufruf.php HTTP/1.0" 200 262 "-" "Lynx/2.8.8dev.12 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/2.12.18"
Das ist es doch, was wir schon immer wissen wollten!
Spaß beiseite! Diese Zeilen wird sich ganz sicher niemand freiwillig durchlesen. Warum also aufzeichen?
Und was noch viel schlimmer ist: Diese Zeilen versperren uns den Blick auf die Dinge, die wirklich wichtig sind. Also bitten wir unseren Webserver apache, auf diese entbehrlichen Protokollnotizen zu verzichten.
Wir brauchen root-Rechte auf der Konsole, also mit sudo.
Code:
sudo joe /etc/apache2/sites-available/000-default.conf
Wir finden darin diese Zeile:
Code:
CustomLog ${APACHE_LOG_DIR}/access.log combined
Die wird ausgetauscht gegen diese Zeilen:
Code:
# Mark requests from the loop-back interface
SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog
CustomLog ${APACHE_LOG_DIR}/access.log common env=!dontlog
Nach einem Neustart des Webservers
Code:
sudo apache2ctl restart
werden die Aufrufe, die vom Raspi selber kommen, nicht mehr protokolliert. Zugriffe auf die Steuerung von anderen Rechnern werden aber weiterhin aufgezeichnet. Sofern jemand auch andere Zugriffe ausblenden möchte, können an dieser Stelle weitere Bedingungen eingegeben werden. Heute verzichten wir darauf.
Nächste Baustelle: die Fehlerdatei des Webservers. Fehler sollen bei unserer Bastelei lieber im Browser angezeigt werden, nicht in die Logdatei eingeschrieben werden. Wir bearbeiten diese Datei:
Code:
sudo joe /etc/php/7.0/apache2/php.ini
(früher diese:
Code:
sudo joe /etc/php5/apache2/php.ini
)
Wir müssen weit hinunter rollen, etwa in Zeile 450 finden wir diese Einstellung:
Code:
log_errors = On
Das wollen wir natürlich nicht, also "Off".
Wer die Fehlermeldungen lieber im Browser sehen möchte, ändert diese Zeile:
Code:
display_errors = On
Nach einem erneuten Neustart des Webservers wird an dieser Stelle wesentlich weniger geloggt.
Dritte Baustelle: Das System selber loggt verschiedene CRON-Aufrufe in einer Logdatei, was sich bei uns in manchen Fällen als überflüssig heraus stellt. Deshalb erzeugt root eine neue Datei:
Code:
sudo joe /etc/rsyslog.d/discard.conf
Es wird dieser Inhalt einkopiert:
Code:
:rawmsg, ereregex, "/USR/SBIN/CRON.* CMD .*lynx" ~
:rawmsg, ereregex, "/USR/SBIN/CRON.* info .*No MTA installed" ~
:rawmsg, ereregex, "/USR/SBIN/CRON.* CMD .*/usr/lib/php5/maxlifetime" ~
:rawmsg, ereregex, "/USR/SBIN/CRON.* CMD .*/etc/cron.hourly" ~
Gesichert und das Loggen neu gestartet. Root befiehlt dazu:
Code:
/etc/init.d/rsyslog restart
Ein Neustart des Raspis hätte es auch getan.
Pfiffikus,
der mit diesen Maßnahmen die SD-Karte wesentlich vor Schreibzugriffen entlastet
Zitat:
Desweiteren kann mein Pi. mit dem Befehl natürlich als Root: "apache2ctl restart" nichts anfangen.
Doch doch! Der Webserver wird doch neu gestartet und bei diesem Anlass eine Warnung ausgegeben. Was Du hier schreibst, klingt wie eine Erfolgsmeldung.
Zitat:
Ich bekomme dann die Meldung:"apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName"
Ist ja logisch. Wir haben dem Raspi keinen eigenen ordentlichen Namen gegeben, jedenfalls stand hier nichts davon in der Anleitung. Darauf weist er uns freundlicherweise hin.
Dieser Server hier heißt zum Beispiel http://www.koi-gehlhaar.de. Aber unser Raspi braucht keinen eigenen Namen. Wir können ihn mit Hilfe seiner IP-Adresse ansprechen.