Kategorie: Software

Automatisieren von PHP-Skripten unter Ubuntu

Automatisieren von PHP-Skripten unter Ubuntu

Durch die Automatisierung des Imports meines Skillplaners stand ich vor der Problem, wie ich nun die Importskripte automatisiere.

Ein Skript mittels eines Cron aufrufen ist ja kein Problem, aber ein PHP-Skript im Hintergrund aufrufen, war mir bis dahin noch unbekannt.

Um Anderen, die eventuell die Suche zu erleichtern, werde ich hier mein Vorgehen mal beschreiben.

Zunächst muss man die Cron Verwaltung über folgenden Befehl aufrufen:

crontab -e

Mein Ziel war es täglich um 5 Uhr eine Prüfung auf Updates zu machen und das Ergebnis dann in einer Logdatei zu dokumentieren.

0 5 * * * /usr/bin/wget -q -O  /pfad/zur/log/datei/log.log http://www.meinedomain.de/update_skript.php

Das funktionierte auch soweit, die Logdatei enthielt die Ausgabe die man bekommt, wenn man das Sktipt im Browser aufruft.
Jedoch wurde die Logdatei jeden Tag neu erstellt und die vorherige ersetzt. Einen Verlauf zu loggen war so also nicht möglich.

Ich will nun dazu sagen, dass einige Profis nun sagen „Warum hat er es so umständlich gelöst“, ich aber bei weitem kein Profi bin 😉
Meine Lösung funktioniert und das ist für mich die Hauptsache. Ebenso habe ich nach stundenlangem Suchen nichts gefunden, was mein Vorhaben auf anderem Wege gelöst hätte.
Alternativen können gerne in die Kommentare geschrieben werden.

So genug drum herum geschrieben, hier meine Lösung:

Zunächst rufe ich wie oben beschrieben das Update Skript auf.

0 5 * * * /usr/bin/wget -q -O  /var/www/pfad_zum_log_verzeichnis/temp.log http://www.meinedomain.de/update_skript.php

Hier lege ich die Logdatei allerdings zunächst als temporäres Logfile an. Wichtig ist, dass dieses in einem dem Webserver zugänglichen Verzeichnis angelegt wird.
Anschließend wandle ich 45 Minuten später, nachdem alle Skripte vermutlich durchlaufen sind mein temporäres Logfile in das eigentliche Logfile um.

45 5 * * * cd  /var/www/pfad_zum_log_verzeichnis/; mv temp.log update.log

Im Update Skript selbst prüfe ich dann, ob die Logadtei vorhanden ist, um eine Fehlermeldung beim Ersten Ausführen zu verhindern, wenn die Datei noch nicht erstellt wurde, bzw. wenn ich sie mal lösche.

Anschließend lese ich ihren Inhalt als Variable $log_alt ein.

if (file_exists(„./logs/update.log“)) {
$log_alt = file_get_contents(„./logs/update.log“);
}

Meine anschließende Ausgabe des Update Skripts gestaltet sich dann wie folgt.

if (file_exists(„./logs/update.log“)) {
echo $log_alt;
}
echo date(„d.m.Y – H:i:s“, time()).“ – Prüfung abgeschlossen, Update wird ausgeführt! \r\n“;

Wieder wird geschaut, ob die Datei besteht, wenn ja wird ihr Inhalt ausgegeben und anschließend der neue Text angehängt. Wichtig hier ist das \r\n am Ende des neuen Textes, um einen Zeilenumbruch zu erzeugen.
Tut man das nicht wird die Logdatei aus nur einer Zeile bestehen, in der alle Ausgaben nach einander aufgeführt sind.

Diese Ausgabe wird dann wieder über den ersten Cron um 5 Uhr als temp.log abgespeichert, dann 45 Minuten später in das originale Log gewandelt und am nächsten Tag erneut eingelesen.
Der Umweg über die temporäre Datei ist daher nötig, da der Cron die Logdatei überschreibt, bevor er das Skript ausführt. Daher kann man auf diese Art niemals das alte File einlesen, da es gelöscht wird, bevor der Befehl zum Einlesen überhaupt ausgeführt wird.

WoWs: Skillplaner wurde automatisiert und ist umgezogen

WoWs: Skillplaner wurde automatisiert und ist umgezogen

Hallo zusammen, mal wieder was Neues von mir.

 

Der Planer ist gestern umgezogen. Ich hatte ja schon angekündigt, dass der Freehoster bplaced.net nur eine Zwischenlösung sein würde.

Mittlerweile sind mir allerdings die Möglichkeiten, die mir der Freehoster bietet zu begrenzt.

 

Zum Hintergrund:

 

Der Planer bezieht seine Daten aus einer eigenen Datenbank. Wie einige von euch sicher gemerkt haben, war diese grade nach Updates eine gewisse Zeit nicht aktuell. Der Grund hierfür war, dass ich das Update der Datenbank manuell durchführen musste, was ich wegen Zeitmangel oft nicht zeitnah machen konnte.

Ich hatte also schon seit einiger Zeit vor, die Datenabfrage automatisch zu gestalten.

Nachdem ich beim API Support angefragt ahbe, ob ich denn die Schiffsdaten live aus der API abrufen dürfte, wurde mir gesagt, dass dies möglich sei, allerdings sei die Anzahl der monatlichen Abfragen beschränkt. Die Anzahl der Abfragen wird wohl vermutlich weit über der Benötigten liegen, aber wer weiß was noch kommt und man sollte ja bei einer Änderung auch sicher für die weitere Zukunft planen.

Man könne zwar eine Erweiterung der Anfragezahl beantragen, aber letztlich ist mir das dann doch zu viel Aufwand, wenn man es auch einfacher haben kann.

 

Die neue Funktion gleicht jetzt täglich um 5 Uhr morgens die Daten mit der WG API ab. Dadurch sind die Daten immer aktuell und mein Anfragen pro Monat bleiben konstant und erreichen das Limit nicht.

Problematisch war allerdings die Automatisierung unter bplaced zu realisieren. Daher habe ich den Planer kurzerhand auf einen viel komfortableren Webspace ungezogen.

Verlinkungen auf den alten bplaced Planer verlaufen allerdings nicht im Sande, sondern werden mit einem Hinweis auf den neuen Planer umgeleitet. Auch Skillungen Werden bei der Weiterleitung übernommen.

Will man diesen kurzen Hinweis auf die Weiterleitung nicht, so sollte man die URL-Endung „bplaced.net“ einfach durch „p4web.de“ ersetzen.

Pi-Hole: Update

Pi-Hole: Update

Der Pi-Hole Adblocker hat ein Update bekommen. Ich habe den Adblocker derzeit auf einem Raspberry Pi 3b sowie einem Ubuntu Server laufen.
Beide Systeme hatten Probleme mit dem automatischen Update. Es wurde einfach nicht durchgeführt.

Wer ebenso dieses Problem hat, der kann das Update auch manuell anstoßen. Hierfür einfach mit dem SSH-Client der Wahl auf das entsprechende System einwählen und den Befehl:

sudo pihole -up

ausführen. Bei meinem Ubuntu Server lief das problemlos. Bei meinem Raspberry Pi 3b wollte allerdings der Pi-Hole FTL nicht starten.
Dies lies sich beheben indem ich erneut den Befehl zur Installation

curl -sSL https://install.pi-hole.net | bash

eingegeben habe. Hier wurde mir dann die Option „Update“ angeboten. Nach dem erneuten Durchlauf des Updates wurde auch Pi-Hole FTL gestartet.

Besonders schön finde ich in der neuen Version, dass man nun die Verwaltung der Sperrlisten direkt über das Webinterface durchführen kann und nicht mehr die Datei manuell editieren muss.
Ebenso werden nun die letzten 25 Stunden in der Statistik der geblockten Querys angezeigt. Sie wird also nicht mehr um 0 Uhr zurückgesetzt.

Windows 10 Telemetrie abstellen

Windows 10 Telemetrie abstellen

Selbst wenn man alle Einstellungen der Privatsphäre unter Windows 10 deaktiviert hat, funkt das Betriebssystem noch fleißig weiter.
Hierbei handelt es sich zwar um nicht personenbezogene Daten, die ausschließlich Performanceberichte von Windows 10 beinhalten sollen, aber erzählen kann man viel und verlassen sollte man sich auf solche Aussagen niemals.

Wie oft kam es auch schon aufgrund von Softwarefehlern dazu, dass doch personenbezogene und gar sensible Daten fälschlicher Weise verschickt wurden.

Aber keine Sorge, auch diese Problematik lässt sich relativ einfach eindämmen und das sogar mit Windowseigenen Mitteln. 😅😀

Im Artikel

https://p4web.de/index.php/2017/04/14/nvidia-nach-hause-telefonieren/

habe ich euch schon beschrieben, dass das kein alleiniges Phänomen von Microsoft bzw. Windows ist, sondern nahezu jeder Hersteller irgendwelche Analysedaten übermittelt.
Letztlich kann man das auch niemandem zum Vorwurf machen, denn jeder ist bestrebt sein Produkt zu verbessern und dafür sind eben solche Daten notwendig.
Der Endbenutzer fordert immer mehr Funktionen und immer personalisiertere Software, möchte dafür aber keine Daten zur Verfügung stellen. Das passt unterm Strich einfach nicht zusammen.

Dennoch müssen wir einem Konzern wie Microsoft die Weiterentwicklung und Analyse nicht zu einfach gestalten.
Daher klemmen wir die Telemetrieübermittlungen mit Hilfe der „hosts“ Datei einfach ab.

Die Änderung dieser Datei bewirkt, dass Informationen, die an die dort angegebenen Hosts geschickt werden, ihr Ziel einfach nicht mehr erreichen. Es wird keinerlei Funktionalität der Software eingeschränkt. Ich nutze diese Sperre selbst und habe noch keine Einschränkung bemerkt.
Sollte man dann aber doch einen Nachteil erkennen, kann man die Änderung ohne Probleme auch wieder Rückgängig machen.

Wie funktioniert das nun?

Seit neustem könnte der Windows Defender etwas dagegen haben, dass man die hosts Datei verändert. Sollte das der Fall sein, könnt ihr die Datei als Ausnahme hinzufügen. Wie das geht erkläre ich hier:

Windows 10 Hosts Datei als Ausnahme im Windows Defender

  1. Rechtsklick auf die Windows Startfläche –> suchen
  2. Editor eingeben, es wird daraufhin der Editor gefunden. Rechtsklick drauf und als Administrator ausführen.
  3. Datei –> Öffnen: C:\Windows\system32\drivers\etc – Hier findet hier eine Datei namens „hosts“ diese öffnen.
  4. Den unten angegebenen Abschnitt komplett ans Ende der Datei einfügen.
  5. Speichern und schließen.

Die Änderungen werden direkt übernommen. Ein Neustart ist nicht erforderlich.
Fortan seid ihr bis zur nächsten Änderung der Hosts von Microsoft abgekoppelt. Eine weitestgehend aktuelle Liste der Microsoft Hosts findet ihr hier: https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy.txt

Einfach alles was folgendermaßen aussieht in die „hosts“ Datei einfügen:

# Windows 10 telemetry

0.0.0.0 a-0001.a-msedge.net
0.0.0.0 a-0002.a-msedge.net
0.0.0.0 a-0003.a-msedge.net
0.0.0.0 a-0004.a-msedge.net
0.0.0.0 a-0005.a-msedge.net
0.0.0.0 a-0006.a-msedge.net
0.0.0.0 a-0007.a-msedge.net
0.0.0.0 a-0008.a-msedge.net
0.0.0.0 a-0009.a-msedge.net
0.0.0.0 a-0010.a-msedge.net
0.0.0.0 a-0011.a-msedge.net
0.0.0.0 a-0012.a-msedge.net
0.0.0.0 a-msedge.net
0.0.0.0 a.ads1.msn.com
0.0.0.0 a.ads2.msads.net
0.0.0.0 a.ads2.msn.com
0.0.0.0 a.rad.msn.com
0.0.0.0 ac3.msn.com
0.0.0.0 activity.windows.com
0.0.0.0 adnexus.net
0.0.0.0 adnxs.com
0.0.0.0 ads.msn.com
0.0.0.0 ads1.msads.net
0.0.0.0 ads1.msn.com
0.0.0.0 aidps.atdmt.com
0.0.0.0 aka-cdn-ns.adtech.de
0.0.0.0 az361816.vo.msecnd.net
0.0.0.0 az512334.vo.msecnd.net
0.0.0.0 b.ads1.msn.com
0.0.0.0 b.ads2.msads.net
0.0.0.0 b.rad.msn.com
0.0.0.0 bingads.microsoft.com
0.0.0.0 bl3301-a.1drv.com
0.0.0.0 bl3301-c.1drv.com
0.0.0.0 bl3301-g.1drv.com
0.0.0.0 bn1304-e.1drv.com
0.0.0.0 bn1306-a.1drv.com
0.0.0.0 bn1306-e.1drv.com
0.0.0.0 bn1306-g.1drv.com
0.0.0.0 bn2b-cor001.api.p001.1drv.com
0.0.0.0 bn3p-cor001.api.p001.1drv.com
0.0.0.0 bn2b-cor003.api.p001.1drv.com
0.0.0.0 by3301-a.1drv.com
0.0.0.0 by3301-c.1drv.com
0.0.0.0 by3301-e.1drv.com
0.0.0.0 bs.serving-sys.com
0.0.0.0 c.atdmt.com
0.0.0.0 c.msn.com
0.0.0.0 c-0001.dc-msedge.net
0.0.0.0 ca.telemetry.microsoft.com
0.0.0.0 cache.datamart.windows.com
0.0.0.0 cdn.atdmt.com
0.0.0.0 cds26.ams9.msecn.net
0.0.0.0 ch1-cor001.api.p001.1drv.com
0.0.0.0 ch1-cor002.api.p001.1drv.com
0.0.0.0 ch3301-c.1drv.com
0.0.0.0 ch3301-e.1drv.com
0.0.0.0 ch3301-g.1drv.com
0.0.0.0 ch3302-c.1drv.com
0.0.0.0 ch3302-e.1drv.com
0.0.0.0 compatexchange.cloudapp.net
0.0.0.0 compatexchange1.trafficmanager.net
0.0.0.0 corp.sts.microsoft.com
0.0.0.0 corpext.msitadfs.glbdns2.microsoft.com
0.0.0.0 cp101-prod.do.dsp.mp.microsoft.com
0.0.0.0 cs1.wpc.v0cdn.net
0.0.0.0 db3aqu.atdmt.com
0.0.0.0 db3wns2011111.wns.windows.com
0.0.0.0 db5.wns.windows.com
0.0.0.0 db5sch101100917.wns.windows.com
0.0.0.0 db5sch101101511.wns.windows.com
0.0.0.0 db5sch101101914.wns.windows.com
0.0.0.0 db5sch101101939.wns.windows.com
0.0.0.0 db5sch101110626.wns.windows.com
0.0.0.0 db5sch101110634.wns.windows.com
0.0.0.0 db5sch101110821.wns.windows.com
0.0.0.0 db5sch101110822.wns.windows.com
0.0.0.0 db5sch101101813.wns.windows.com
0.0.0.0 db5sch103082111.wns.windows.com
0.0.0.0 db5sch103082406.wns.windows.com
0.0.0.0 db5sch103092209.wns.windows.com
0.0.0.0 db5wns1d.wns.windows.com
0.0.0.0 db6sch102091105.wns.windows.com
0.0.0.0 db6sch102091412.wns.windows.com
0.0.0.0 dev.virtualearth.net
0.0.0.0 df.telemetry.microsoft.com
0.0.0.0 diagnostics.support.microsoft.com
0.0.0.0 ec.atdmt.com
0.0.0.0 ecn.dev.virtualearth.net
0.0.0.0 eu.vortex.data.microsoft.com
0.0.0.0 flex.msn.com
0.0.0.0 g.msn.com
0.0.0.0 geo-prod.do.dsp.mp.microsoft.com
0.0.0.0 geover-prod.do.dsp.mp.microsoft.com
0.0.0.0 h1.msn.com
0.0.0.0 h2.msn.com
0.0.0.0 i-sn2-cor001.api.p001.1drv.com
0.0.0.0 i-sn2-cor002.api.p001.1drv.com
0.0.0.0 i1.services.social.microsoft.com
0.0.0.0 i1.services.social.microsoft.com.nsatc.net
0.0.0.0 inference.location.live.net
0.0.0.0 kv101-prod.do.dsp.mp.microsoft.com
0.0.0.0 lb1.www.ms.akadns.net
0.0.0.0 live.rads.msn.com
0.0.0.0 ls2web.redmond.corp.microsoft.com
0.0.0.0 m.adnxs.com
0.0.0.0 mobile.pipe.aria.microsoft.com
0.0.0.0 msedge.net
0.0.0.0 msntest.serving-sys.com
0.0.0.0 nexus.officeapps.live.com
0.0.0.0 nexusrules.officeapps.live.com
0.0.0.0 oca.telemetry.microsoft.com
0.0.0.0 oca.telemetry.microsoft.com.nsatc.net
0.0.0.0 onesettings-bn2.metron.live.com.nsatc.net
0.0.0.0 onesettings-cy2.metron.live.com.nsatc.net
0.0.0.0 onesettings-db5.metron.live.com.nsatc.net
0.0.0.0 onesettings-hk2.metron.live.com.nsatc.net
0.0.0.0 pre.footprintpredict.com
0.0.0.0 preview.msn.com
0.0.0.0 rad.live.com
0.0.0.0 rad.msn.com
0.0.0.0 redir.metaservices.microsoft.com
0.0.0.0 reports.wes.df.telemetry.microsoft.com
0.0.0.0 schemas.microsoft.akadns.net
0.0.0.0 secure.adnxs.com
0.0.0.0 secure.flashtalking.com
0.0.0.0 services.wes.df.telemetry.microsoft.com
0.0.0.0 settings-sandbox.data.microsoft.com
0.0.0.0 settings-win.data.microsoft.com
0.0.0.0 settings.data.glbdns2.microsoft.com
0.0.0.0 settings.data.microsoft.com
0.0.0.0 sn3301-c.1drv.com
0.0.0.0 sn3301-e.1drv.com
0.0.0.0 sn3301-g.1drv.com
0.0.0.0 spynet2.microsoft.com
0.0.0.0 spynetalt.microsoft.com
0.0.0.0 spyneteurope.microsoft.akadns.net
0.0.0.0 sqm.df.telemetry.microsoft.com
0.0.0.0 sqm.telemetry.microsoft.com
0.0.0.0 sqm.telemetry.microsoft.com.nsatc.net
0.0.0.0 ssw.live.com
0.0.0.0 storecatalogrevocation.storequality.microsoft.com
0.0.0.0 survey.watson.microsoft.com
0.0.0.0 t0.ssl.ak.dynamic.tiles.virtualearth.net
0.0.0.0 t0.ssl.ak.tiles.virtualearth.net
0.0.0.0 telecommand.telemetry.microsoft.com
0.0.0.0 telecommand.telemetry.microsoft.com.nsatc.net
0.0.0.0 telemetry.appex.bing.net
0.0.0.0 telemetry.appex.bing.net:443
0.0.0.0 telemetry.microsoft.com
0.0.0.0 telemetry.urs.microsoft.com
0.0.0.0 tsfe.trafficshaping.dsp.mp.microsoft.com
0.0.0.0 v10.vortex-win.data.metron.live.com.nsatc.net
0.0.0.0 v10.vortex-win.data.microsoft.com
0.0.0.0 version.hybrid.api.here.com
0.0.0.0 view.atdmt.com
0.0.0.0 vortex-bn2.metron.live.com.nsatc.net
0.0.0.0 vortex-cy2.metron.live.com.nsatc.net
0.0.0.0 vortex-db5.metron.live.com.nsatc.net
0.0.0.0 vortex-hk2.metron.live.com.nsatc.net
0.0.0.0 vortex-sandbox.data.microsoft.com
0.0.0.0 vortex-win.data.metron.live.com.nsatc.net
0.0.0.0 vortex-win.data.microsoft.com
0.0.0.0 vortex.data.glbdns2.microsoft.com
0.0.0.0 vortex.data.metron.live.com.nsatc.net
0.0.0.0 vortex.data.microsoft.com
0.0.0.0 watson.live.com
0.0.0.0 watson.microsoft.com
0.0.0.0 watson.ppe.telemetry.microsoft.com
0.0.0.0 watson.telemetry.microsoft.com
0.0.0.0 watson.telemetry.microsoft.com.nsatc.net
0.0.0.0 web.vortex.data.microsoft.com
0.0.0.0 wes.df.telemetry.microsoft.com
0.0.0.0 win10.ipv6.microsoft.com
0.0.0.0 www.msedge.net
„Nvidia nach Hause telefonieren!“

„Nvidia nach Hause telefonieren!“

Seit ich das Pi-Hole installiert habe, ist mir ein massiver, geblockter Datenstrom mit einem Link, in dem Nvidia zu erkennen war, aufgefallen.
Nach kurzer Internetsuche habe ich erfahren, dass wohl Nvidia Experience massiv nach Hause telefoniert und Telemetriedaten schickt.

Diese beinhalten die installierten Spiele, Grafikeinstellungen und wie oft was gespielt wird.

Der Datenverkehr lässt sich aber auch ganz einfach für Leute, die das PiHole nicht im betrieb haben, abschalten.

Folgende Schritte sind durchzuführen:

1. Rechtsklick auf die Windows Startfläche –> suchen
2. Editor eingeben, es wird daraufhin der Editor gefunden. Rechtsklick drauf und als Administrator ausführen.
3. Datei –> Öffnen: C:\Windows\system32\drivers\etc – Hier findet hier eine Datei namens „hosts“ diese öffnen.
4. Folgenden Abschnitt einfach ans Ende der Datei anfügen:

# nVidia Telemetry

127.0.0.1 gfswl.geforce.com
127.0.0.1 gfe.geforce.com
127.0.0.1 telemetry.nvidia.com
127.0.0.1 gfe.nvidia.com
127.0.0.1 telemetry.gfe.nvidia.com
127.0.0.1 events.gfe.nvidia.com
::1 gfswl.geforce.com
::1 gfe.geforce.com
::1 telemetry.nvidia.com
::1 gfe.nvidia.com
::1 telemetry.gfe.nvidia.com
::1 events.gfe.nvidia.com

5. Speichern und schließen.

Nun sollten die Telemetrieübermittlungen gestoppt sein.

Was wird geändert?

Experience ermittelt auch weiterhin seine Telemetriedaten und versucht diese zu übermitteln.
Die Hosts Datei lenkt diese aber um, sodass die Daten nicht zu Nvidia gesendet werden, sondern an die IP 127.0.0.1 was letztlich der eigene PC ist.
Experience wird somit nicht in seiner Funktion beschränkt, die Daten verlaufen aber auf dem eigenen PC im Sande.

Archiv

Kategorien