ffmuer@map:~$ crontab -l | grep ffmap-backend-tng
* * * * * (cd $HOME/ffmap-backend-tng ; PATH=$HOME:$PATH ./backend.py -m bat-mueritz -a aliases.json -d $HOME/ffmap-d3/build/tng/ --prune 14 --vpn de:ca:fb:ad:00:06 de:ad:be:ef:00:00)
ffmuer@map:~$ ls -la alfred alfred-json batadv-vis batctl
-rwxrwxr-x 1 ffmuer ffmuer 55 Apr 19 2015 alfred
-rwxrwxr-x 1 ffmuer ffmuer 57 Apr 19 2015 alfred-json
-rwxrwxr-x 1 ffmuer ffmuer 63 Apr 19 2015 batadv-vis
-rwxrwxr-x 1 ffmuer ffmuer 53 Apr 19 2015 batctl
ffmuer@map:~$ cat alfred
#!/bin/sh
ssh root@gw05.4830.org /opt/alfred/alfred $*
Für die anderen drei analog. Der alfred-Master läuft in diesem Fall (Freifunk Müritz) auf gw05.4830.org, alfred, alfred-json, batctl und batadv-vis ruft backend.py durch den PATH aus dem Homedir auf, dort sind es eben Skripte, die das Kommando auf dem Zielrechner ausführen. Hier eigentlich nicht mehr nötig, da per ssh separiert, aber bei lokalem Einsatz braucht’s sudo:
ffmuer@map:~$ sudo grep alfred /etc/sudoers
%ffmuer ALL=(ALL:ALL) NOPASSWD: /usr/sbin/batctl,/usr/sbin/batadv-vis,/usr/sbin/alfred,/usr/local/sbin/batadv-vis,/usr/local/bin/alfred-json,/usr/local/sbin/alfred
%ffgt ALL=(ALL:ALL) NOPASSWD: /usr/sbin/batctl,/opt/alfred/vis/batadv-vis,/opt/alfred/alfred,/usr/local/bin/alfred-json
Meshviewer:
ffmuer@map:~/meshviewer$ cat config.js
define({
"dataPath": "http://map.4830.org/mueritz/tng/",
"siteName": "Freifunk Müritz",
"mapSigmaScale": 0.4,
"showContact": false,
"maxAge": 14
})
Sprich: ffmap-backend holt sich die Daten mit alfred[-json], batadv-vis (, batctl?) vom alfred-Master. ffmap-backend kann, muß aber nicht auf der gleichen Maschine laufen (da es CPU-intensiv ist, würde ich es nicht auf einem GW mitlaufen lassen). Meshviewer holt sich die Ergebnisse aus einer URL — bei uns hier effektiv localhost, aber dadrauf läuft kein namedvhost. (mueritz/tng, da wir auch noch ffmap-d3 laufen haben, das alte backend schreibt nach /mueritz, das neue nach /mueritz/tng; ja, das aktuelle Backend kann wohl beides bzw. gibt’s nun »Übersetzungsanweisungen« — kommt Zeit, kommt Vereinfachung. Und /mueritz des Apachen ist ~ffmuer/ffmap-d3/build/ im FS. Ggf. chown/chmod/chgrp nutzen. Und ~ffmuer/ffmap-d3/build/ ist letztlich der Inhalt aus meshviewer/build (plus, bei uns, was ffmap-d3 mitbringt) …)
Nachtrag: natürlich sollte man statt ssh root@ cmd
besser ssh user@ sudo cmd
nehmen