Habt Ihr eine Idee, einen Tipp oder ein Best-Practice für solch ein Tracking zur Hand?
Werkzeug reicht nicht. Ideen muss haben.
#!/bin/bash
### Configuration: ###
proto="http";
host="www.deinkunde.example.org";
seite="track.txt"; # Möglichst kleine, statische Ressource
logname="WebseitenTracking";
### Config. But if you doubt let this as is: ###
agent='Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:58.0) Gecko/20100101 Firefox/58.0"';
testname='google-public-dns-a.google.com';
### Program: ###
cd /tmp;
url="${proto}://${host}/${seite}";
while [ 1 = 1 ]; do
testhost=$(nslookup ${testname} 8.8.8.8);
if [ "0" = "${?}" ]; then
logger -t "${logname}" "Namensauflösung/Internetverbindung funktioniert.";
wget --delete-after --user-agent="$agent" ${url};
if [ "0" = "${?}" ]; then
logger -t "${logname}" "Notiz: ${url} erfolgreich abgerufen";
else
logger -t "${logname}" "Fehler: ${url} konnte trotz bestehender Verbindung nicht abgerufen werden.";
nslookup ${host} | logger -t "${logname}";
ping -c1 ${host} | logger -t "${logname}";
fi
else
logger -t "${logname}" "Fehler: Namensauflösung/Internetverbindung funktioniert nicht.";
fi
sleep 30;
done;
-
Starten auf einem Linux-Rechner (am besten ein stromsparender Dauerläufer wie einem Raspi, Banana ...) mit
screen DeinSkriptName.sh
. -
Die Ergebnisse finden sich, wenn nicht von Dir anders konfiguriert, im Standard-Logfile Deines Systems.
-
Man kann das soweit treiben, dass es als Service läuft, in Datenbanken loggt, mails verschickt und Dir die Schuhe putzt.
-
Freilich nur unter Linux.
-
Manuals:
man 1 bash
,man 1 screen
,man 1 logger
,- `man 1 logrotate,
man 1
[syslog
,syslog-ng
,rsyslog
, ...],man 1 wget
,man 1
[tail
,grep
].man 1 test
oderman 1 [
,
Das Letzte ist kein Scherz.